Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2015-08-05 19:29:43 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2015-08-05 19:29:43 +0300
commit02f553cc7a399767b0466cb92a071db885570443 (patch)
treeb7e8e25be26b7d12eeb70d32c4297674de0c4071 /source/blender/blenkernel/intern/subsurf_ccg.c
parent9a995c11d3fe6f3d2462b636dc14e5bed0804ac1 (diff)
OpenSubdiv: Changes to texturing
Use first material slot for until multiple materials are fully supported. Also respect setMaterial()'s return value to avoid drawing unnecessary geometry.
Diffstat (limited to 'source/blender/blenkernel/intern/subsurf_ccg.c')
-rw-r--r--source/blender/blenkernel/intern/subsurf_ccg.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/source/blender/blenkernel/intern/subsurf_ccg.c b/source/blender/blenkernel/intern/subsurf_ccg.c
index aa3001630ef..02a7f6c8693 100644
--- a/source/blender/blenkernel/intern/subsurf_ccg.c
+++ b/source/blender/blenkernel/intern/subsurf_ccg.c
@@ -2632,11 +2632,10 @@ static void ccgDM_drawFacesSolid(DerivedMesh *dm, float (*partial_redraw_planes)
draw_smooth = true;
new_matnr = 1;
}
- if (setMaterial) {
- setMaterial(new_matnr, NULL);
+ if (setMaterial && setMaterial(new_matnr, NULL)) {
+ glShadeModel(draw_smooth ? GL_SMOOTH : GL_FLAT);
+ ccgSubSurf_drawGLMesh(ss, true, -1, -1);
}
- glShadeModel(draw_smooth ? GL_SMOOTH : GL_FLAT);
- ccgSubSurf_drawGLMesh(ss, true, -1, -1);
return;
}
#endif
@@ -2691,8 +2690,9 @@ static void ccgDM_drawMappedFacesGLSL(DerivedMesh *dm,
new_matnr = 1;
}
glShadeModel(draw_smooth ? GL_SMOOTH : GL_FLAT);
- setMaterial(new_matnr, &gattribs);
- ccgSubSurf_drawGLMesh(ss, true, -1, -1);
+ if (setMaterial(new_matnr, &gattribs)) {
+ ccgSubSurf_drawGLMesh(ss, true, -1, -1);
+ }
return;
}
#endif
@@ -4544,7 +4544,8 @@ static void set_ccgdm_gpu_geometry(CCGDerivedMesh *ccgdm, DerivedMesh *dm)
for (index = 0; index < totface; index++) {
faceFlags->flag = mpoly ? mpoly[index].flag : 0;
- faceFlags->mat_nr = mpoly ? mpoly[index].mat_nr : 0;
+ /* faceFlags->mat_nr = mpoly ? mpoly[index].mat_nr : 0; */
+ faceFlags->mat_nr = 0;
faceFlags++;
}