Commit: 443a1a167ba9da78887de8c546e00cf853fc1288
Author: Sergey Sharybin
Date:   Mon Jul 14 22:47:25 2014 +0600
https://developer.blender.org/rB443a1a167ba9da78887de8c546e00cf853fc1288

OpenSubdiv: Fix CCGDM drawing when not using GPU backend

===================================================================

M       source/blender/blenkernel/BKE_subsurf.h
M       source/blender/blenkernel/intern/subsurf_ccg.c

===================================================================

diff --git a/source/blender/blenkernel/BKE_subsurf.h 
b/source/blender/blenkernel/BKE_subsurf.h
index 91ab9e5..c2a07ac 100644
--- a/source/blender/blenkernel/BKE_subsurf.h
+++ b/source/blender/blenkernel/BKE_subsurf.h
@@ -103,7 +103,7 @@ typedef struct CCGDerivedMesh {
 
        struct CCGSubSurf *ss;
        int freeSS;
-       int drawInteriorEdges, useSubsurfUv;
+       int drawInteriorEdges, useSubsurfUv, useGpuBackend;
 
        struct {int startVert; struct CCGVert *vert; } *vertMap;
        struct {int startVert; int startEdge; struct CCGEdge *edge; } *edgeMap;
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c 
b/source/blender/blenkernel/intern/subsurf_ccg.c
index 45c0b63..dfe2e1e 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -1661,7 +1661,7 @@ static void ccgDM_drawEdges(DerivedMesh *dm, bool 
drawLooseEdges, bool drawAllEd
        int useAging;
 
 #ifdef WITH_OPENSUBDIV
-       {
+       if (ccgdm->useGpuBackend) {
                /* TODO(sergey): We currently only support all edges drawing. */
                ccgSubSurf_prepareGLMesh(ss);
                ccgSubSurf_drawGLMesh(ss, false, -1);
@@ -1786,7 +1786,7 @@ static void ccgDM_drawFacesSolid(DerivedMesh *dm, float 
(*partial_redraw_planes)
        int drawcurrent = 0, matnr = -1, shademodel = -1;
 
 #ifdef WITH_OPENSUBDIV
-       {
+       if (ccgdm->useGpuBackend) {
                int i, matnr = -1, shademodel = -1;
                CCGFaceIterator *fi;
                ccgSubSurf_prepareGLMesh(ss);
@@ -2020,7 +2020,7 @@ static void ccgDM_drawMappedFacesGLSL(DerivedMesh *dm,
        int a, i, do_draw, numVerts, matnr, new_matnr, totface;
 
 #ifdef WITH_OPENSUBDIV
-       {
+       if (ccgdm->useGpuBackend) {
                int i, matnr = -1, shademodel = -1;
                CCGFaceIterator *fi;
                ccgSubSurf_prepareGLMesh(ss);
@@ -4013,6 +4013,7 @@ static CCGDerivedMesh *getCCGDerivedMesh(CCGSubSurf *ss,
        ccgdm->ss = ss;
        ccgdm->drawInteriorEdges = drawInteriorEdges;
        ccgdm->useSubsurfUv = useSubsurfUv;
+       ccgdm->useGpuBackend = use_gpu_backend;
 
        /* CDDM hack. */
        ccgdm->edgeFlags = MEM_callocN(sizeof(short) * totedge, "edgeFlags");

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to