diff options
4 files changed, 10 insertions, 73 deletions
diff --git a/source/blender/blenkernel/intern/CCGSubSurf.c b/source/blender/blenkernel/intern/CCGSubSurf.c index b78c3c77aa4..d952e68696e 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf.c +++ b/source/blender/blenkernel/intern/CCGSubSurf.c @@ -1191,39 +1191,15 @@ CCGError ccgSubSurf_stitchFaces(CCGSubSurf *ss, int lvl, CCGFace **effectedF, in int ccgSubSurf_getNumVerts(const CCGSubSurf *ss) { -#ifdef WITH_OPENSUBDIV - if (ss->skip_grids) { - return ccgSubSurf__getNumOsdBaseVerts(ss); - } - else -#endif - { - return ss->vMap->numEntries; - } + return ss->vMap->numEntries; } int ccgSubSurf_getNumEdges(const CCGSubSurf *ss) { -#ifdef WITH_OPENSUBDIV - if (ss->skip_grids) { - return ccgSubSurf__getNumOsdBaseEdges(ss); - } - else -#endif - { - return ss->eMap->numEntries; - } + return ss->eMap->numEntries; } int ccgSubSurf_getNumFaces(const CCGSubSurf *ss) { -#ifdef WITH_OPENSUBDIV - if (ss->skip_grids) { - return ccgSubSurf__getNumOsdBaseFaces(ss); - } - else -#endif - { - return ss->fMap->numEntries; - } + return ss->fMap->numEntries; } CCGVert *ccgSubSurf_getVert(CCGSubSurf *ss, CCGVertHDL v) diff --git a/source/blender/blenkernel/intern/CCGSubSurf_intern.h b/source/blender/blenkernel/intern/CCGSubSurf_intern.h index d80bdcdb7fc..95ea91461f8 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf_intern.h +++ b/source/blender/blenkernel/intern/CCGSubSurf_intern.h @@ -303,10 +303,6 @@ void ccgSubSurf__sync_legacy(CCGSubSurf *ss); void ccgSubSurf__sync_opensubdiv(CCGSubSurf *ss); -int ccgSubSurf__getNumOsdBaseVerts(const CCGSubSurf *ss); -int ccgSubSurf__getNumOsdBaseEdges(const CCGSubSurf *ss); -int ccgSubSurf__getNumOsdBaseFaces(const CCGSubSurf *ss); - /* * CCGSubSurf_opensubdiv_converter.c * */ struct OpenSubdiv_Converter; diff --git a/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c b/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c index c6c8f14dd2c..c7526521963 100644 --- a/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c +++ b/source/blender/blenkernel/intern/CCGSubSurf_opensubdiv.c @@ -863,46 +863,4 @@ void ccgSubSurf__sync_opensubdiv(CCGSubSurf *ss) #endif } -static const OpenSubdiv_TopologyRefinerDescr *get_effective_refiner( - const CCGSubSurf *ss) -{ - if (ss->osd_topology_refiner != NULL) { - return ss->osd_topology_refiner; - } - if (ss->osd_mesh != NULL) { - return openSubdiv_getGLMeshTopologyRefiner(ss->osd_mesh); - } - return 0; -} - -int ccgSubSurf__getNumOsdBaseVerts(const CCGSubSurf *ss) -{ - const OpenSubdiv_TopologyRefinerDescr *topology_refiner = - get_effective_refiner(ss); - if (topology_refiner == NULL) { - return 0; - } - return openSubdiv_topologyRefinerGetNumVerts(topology_refiner); -} - -int ccgSubSurf__getNumOsdBaseEdges(const CCGSubSurf *ss) -{ - const OpenSubdiv_TopologyRefinerDescr *topology_refiner = - get_effective_refiner(ss); - if (topology_refiner == NULL) { - return 0; - } - return openSubdiv_topologyRefinerGetNumEdges(topology_refiner); -} - -int ccgSubSurf__getNumOsdBaseFaces(const CCGSubSurf *ss) -{ - const OpenSubdiv_TopologyRefinerDescr *topology_refiner = - get_effective_refiner(ss); - if (topology_refiner == NULL) { - return 0; - } - return openSubdiv_topologyRefinerGetNumFaces(topology_refiner); -} - #endif /* WITH_OPENSUBDIV */ diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c index 71e14eba690..cfc9c32e81e 100644 --- a/source/blender/blenkernel/intern/subsurf_ccg.c +++ b/source/blender/blenkernel/intern/subsurf_ccg.c @@ -4551,13 +4551,20 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss, DerivedMesh *dm, bool use_gpu_backend) { +#ifdef WITH_OPENSUBDIV + const int totedge = dm->getNumEdges(dm); + const int totface = dm->getNumPolys(dm); +#else const int totedge = ccgSubSurf_getNumEdges(ss); const int totface = ccgSubSurf_getNumFaces(ss); +#endif CCGDerivedMesh *ccgdm = MEM_callocN(sizeof(*ccgdm), "ccgdm"); int numTex, numCol; int hasPCol, hasOrigSpace; if (use_gpu_backend == false) { + BLI_assert(totedge == ccgSubSurf_getNumEdges(ss)); + BLI_assert(totface == ccgSubSurf_getNumFaces(ss)); DM_from_template(&ccgdm->dm, dm, DM_TYPE_CCGDM, ccgSubSurf_getNumFinalVerts(ss), ccgSubSurf_getNumFinalEdges(ss), |