[Bf-blender-cvs] [443a1a1] opensubdiv-modifier: OpenSubdiv: Fix CCGDM drawing when not using GPU backend
Sergey Sharybin
noreply at git.blender.org
Mon Jul 14 21:37:02 CEST 2014
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");
More information about the Bf-blender-cvs
mailing list