diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-06-05 19:54:41 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-06-05 19:54:41 +0400 |
commit | f18fad668f67428698f4a87d08ded5858be3f018 (patch) | |
tree | f7c8ccbe1a702406045437ab4d36063e9357849c /source/blender | |
parent | e66f3eb499eed2121b63c7189c81453315e7611e (diff) |
Fix textured draw mode + dyntopo crash fix to cover more cases.
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/gpu/intern/gpu_buffers.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/source/blender/gpu/intern/gpu_buffers.c b/source/blender/gpu/intern/gpu_buffers.c index 7c4c4ce7ced..1707414e26a 100644 --- a/source/blender/gpu/intern/gpu_buffers.c +++ b/source/blender/gpu/intern/gpu_buffers.c @@ -2313,19 +2313,21 @@ void GPU_draw_buffers(GPU_Buffers *buffers, DMSetMaterial setMaterial, { /* sets material from the first face, to solve properly face would need to * be sorted in buckets by materials */ - if (buffers->totface) { - const MFace *f = &buffers->mface[buffers->face_indices[0]]; - if (!setMaterial(f->mat_nr + 1, NULL)) - return; - } - else if (buffers->totgrid) { - const DMFlagMat *f = &buffers->grid_flag_mats[buffers->grid_indices[0]]; - if (!setMaterial(f->mat_nr + 1, NULL)) - return; - } - else if (setMaterial) { - if (!setMaterial(1, NULL)) - return; + if (setMaterial) { + if (buffers->totface) { + const MFace *f = &buffers->mface[buffers->face_indices[0]]; + if (!setMaterial(f->mat_nr + 1, NULL)) + return; + } + else if (buffers->totgrid) { + const DMFlagMat *f = &buffers->grid_flag_mats[buffers->grid_indices[0]]; + if (!setMaterial(f->mat_nr + 1, NULL)) + return; + } + else { + if (!setMaterial(1, NULL)) + return; + } } glShadeModel((buffers->smooth || buffers->totface) ? GL_SMOOTH : GL_FLAT); |