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>2013-12-03 20:14:16 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-12-03 20:14:16 +0400
commit462751688449108899a821f500cffc03658d6e3d (patch)
treeb932e8a22d0ffd1be21932657bcabcc2ae23e575 /source/blender/editors/space_view3d
parentd3f3fb89cc2f5745df2b2c1adb0b4db047a3303c (diff)
Fix T37663: Black matcap when object located on a curve
Summary: Issue was caused by GLSL samplers not valid anymore after dupliobject was drawn into OpenGL displist. Solution for now is to not use displist for active object when matcap is used. The same issue exists for regular GLSL viewport draw, and this was solved by disabling diplist if draw_glsl_material returns truth for current dupliobject. Reviewers: brecht Reviewed By: brecht Maniphest Tasks: T37663 Differential Revision: http://developer.blender.org/D70
Diffstat (limited to 'source/blender/editors/space_view3d')
-rw-r--r--source/blender/editors/space_view3d/view3d_draw.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index 3d260378c77..19329765e1e 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -2019,7 +2019,9 @@ static void draw_dupli_objects_color(Scene *scene, ARegion *ar, View3D *v3d, Bas
/* lamp drawing messes with matrices, could be handled smarter... but this works */
(dob->ob->type == OB_LAMP) ||
(dob->type == OB_DUPLIGROUP && dob->animated) ||
- !(bb_tmp = BKE_object_boundbox_get(dob->ob)))
+ !(bb_tmp = BKE_object_boundbox_get(dob->ob)) ||
+ draw_glsl_material(scene, dob->ob, v3d, dt) ||
+ (base->object == OBACT && v3d->flag2 & V3D_SOLID_MATCAP))
{
// printf("draw_dupli_objects_color: skipping displist for %s\n", dob->ob->id.name + 2);
use_displist = false;