diff options
author | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-08-03 17:44:46 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2015-08-03 17:44:46 +0300 |
commit | e5f7b0f330c09d6944969a0cc1e496ca112f0711 (patch) | |
tree | 94302281fda57fea1121ae39ca9b33dc471aa838 /source/blender/blenkernel/intern/CCGSubSurf.c | |
parent | 4a0f3bece31be4997dd19c8ee8faa5ae6a1914e3 (diff) |
OpenSubdiv: Avoid crashes when GPU subsurf is tried to be used on CPU
The issue was caused by CCG code being confused by number of geometry returned
by utility functions in the case of the skipped grids.
Made it so that code is always only working with CCG data and handled drawing
code in a bit special way now.
This solves such crashes as i.e. snapping.
Diffstat (limited to 'source/blender/blenkernel/intern/CCGSubSurf.c')
-rw-r--r-- | source/blender/blenkernel/intern/CCGSubSurf.c | 30 |
1 files changed, 3 insertions, 27 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) |