[Bf-blender-cvs] [c7f228c] wiggly-widgets: Always draw face map widgets using backface culling

Julian Eisel noreply at git.blender.org
Thu Nov 19 22:55:00 CET 2015


Commit: c7f228cc7a6b71d9d36e0b53e86db14d805aee75
Author: Julian Eisel
Date:   Thu Nov 19 22:23:21 2015 +0100
Branches: wiggly-widgets
https://developer.blender.org/rBc7f228cc7a6b71d9d36e0b53e86db14d805aee75

Always draw face map widgets using backface culling

Also minor cleanup.

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

M	source/blender/editors/include/ED_view3d.h
M	source/blender/editors/space_view3d/drawobject.c
M	source/blender/windowmanager/intern/wm_generic_widgets.c

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

diff --git a/source/blender/editors/include/ED_view3d.h b/source/blender/editors/include/ED_view3d.h
index 453da49..47ac51b 100644
--- a/source/blender/editors/include/ED_view3d.h
+++ b/source/blender/editors/include/ED_view3d.h
@@ -325,7 +325,7 @@ int ED_view3d_scene_layer_set(int lay, const int *values, int *active);
 
 void *ED_view3d_mats_rv3d_backup(struct RegionView3D *rv3d);
 void  ED_view3d_mats_rv3d_restore(struct RegionView3D *rv3d, void *rv3dmat_pt);
-void ED_draw_object_facemap(struct Scene *scene, struct Object *ob, float col[4], int facemap);
+void  ED_draw_object_facemap(struct Scene *scene, struct Object *ob, const float col[4], const int facemap);
 
 bool ED_view3d_context_activate(struct bContext *C);
 void ED_view3d_draw_offscreen_init(struct Scene *scene, struct View3D *v3d);
diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c
index bfb3dd7..256d34c 100644
--- a/source/blender/editors/space_view3d/drawobject.c
+++ b/source/blender/editors/space_view3d/drawobject.c
@@ -8699,7 +8699,7 @@ static void draw_object_mesh_instance(Scene *scene, View3D *v3d, RegionView3D *r
 	if (dm) dm->release(dm);
 }
 
-void ED_draw_object_facemap(Scene *scene, struct Object *ob, float col[4], int facemap)
+void ED_draw_object_facemap(Scene *scene, Object *ob, const float col[4], const int facemap)
 {
 	DerivedMesh *dm = NULL;
 
@@ -8728,6 +8728,10 @@ void ED_draw_object_facemap(Scene *scene, struct Object *ob, float col[4], int f
 	glEnable(GL_BLEND);
 	glDisable(GL_LIGHTING);
 
+	/* always draw using backface culling */
+	glEnable(GL_CULL_FACE);
+	glCullFace(GL_BACK);
+
 	if (dm->drawObject->facemapindices) {
 		if (dm->drawObject->facemapindices->use_vbo)
 			glDrawElements(GL_TRIANGLES, dm->drawObject->facemap_count[facemap] * 3, GL_UNSIGNED_INT,
diff --git a/source/blender/windowmanager/intern/wm_generic_widgets.c b/source/blender/windowmanager/intern/wm_generic_widgets.c
index 7699098..6cd7faf 100644
--- a/source/blender/windowmanager/intern/wm_generic_widgets.c
+++ b/source/blender/windowmanager/intern/wm_generic_widgets.c
@@ -1563,7 +1563,7 @@ typedef struct FacemapWidget {
 static void widget_facemap_draw(const bContext *C, wmWidget *widget)
 {
 	FacemapWidget *fmap_widget = (FacemapWidget *)widget;
-	float *col = (widget->flag & WM_WIDGET_SELECTED) ? widget->col_hi : widget->col;
+	const float *col = (widget->flag & WM_WIDGET_SELECTED) ? widget->col_hi : widget->col;
 
 	glPushMatrix();
 	glMultMatrixf(fmap_widget->ob->obmat);




More information about the Bf-blender-cvs mailing list