[Bf-blender-cvs] [22c9e53] master: Color control for bl_debug_draw functions

Howard Trickey noreply at git.blender.org
Mon Jan 13 18:00:12 CET 2014


Commit: 22c9e532dc88a9615a66ea7b47269f91e4916917
Author: Howard Trickey
Date:   Tue Jan 14 03:58:06 2014 +1100
https://developer.blender.org/rB22c9e532dc88a9615a66ea7b47269f91e4916917

Color control for bl_debug_draw functions

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

M	source/blender/editors/space_view3d/view3d_draw.c

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

diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index f0a943d..d43cfa9 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -105,6 +105,7 @@ static void bl_debug_draw(void);
 extern void bl_debug_draw_quad_clear(void);
 extern void bl_debug_draw_quad_add(const float v0[3], const float v1[3], const float v2[3], const float v3[3]);
 extern void bl_debug_draw_edge_add(const float v0[3], const float v1[3]);
+extern void bl_debug_color_set(const unsigned int col);
 #endif
 
 void circf(float x, float y, float rad)
@@ -3488,11 +3489,19 @@ static float _bl_debug_draw_quads[_DEBUG_DRAW_QUAD_TOT][4][3];
 static int   _bl_debug_draw_quads_tot = 0;
 static float _bl_debug_draw_edges[_DEBUG_DRAW_QUAD_TOT][2][3];
 static int   _bl_debug_draw_edges_tot = 0;
+static unsigned int _bl_debug_draw_quads_color[_DEBUG_DRAW_QUAD_TOT];
+static unsigned int _bl_debug_draw_edges_color[_DEBUG_DRAW_EDGE_TOT];
+static unsigned int _bl_debug_draw_color;
 
 void bl_debug_draw_quad_clear(void)
 {
 	_bl_debug_draw_quads_tot = 0;
 	_bl_debug_draw_edges_tot = 0;
+	_bl_debug_draw_color = 0x00FF0000;
+}
+void bl_debug_color_set(const unsigned int color)
+{
+	_bl_debug_draw_color = color;
 }
 void bl_debug_draw_quad_add(const float v0[3], const float v1[3], const float v2[3], const float v3[3])
 {
@@ -3505,6 +3514,7 @@ void bl_debug_draw_quad_add(const float v0[3], const float v1[3], const float v2
 		copy_v3_v3(pt, v1); pt += 3;
 		copy_v3_v3(pt, v2); pt += 3;
 		copy_v3_v3(pt, v3); pt += 3;
+		_bl_debug_draw_quads_color[_bl_debug_draw_quads_tot] = _bl_debug_draw_color;
 		_bl_debug_draw_quads_tot++;
 	}
 }
@@ -3517,15 +3527,22 @@ void bl_debug_draw_edge_add(const float v0[3], const float v1[3])
 		float *pt = &_bl_debug_draw_edges[_bl_debug_draw_edges_tot][0][0];
 		copy_v3_v3(pt, v0); pt += 3;
 		copy_v3_v3(pt, v1); pt += 3;
+		_bl_debug_draw_edges_color[_bl_debug_draw_edges_tot] = _bl_debug_draw_color;
 		_bl_debug_draw_edges_tot++;
 	}
 }
 static void bl_debug_draw(void)
 {
+	unsigned int color;
 	if (_bl_debug_draw_quads_tot) {
 		int i;
-		cpack(0x00FF0000);
+		color = _bl_debug_draw_quads_color[0];
+		cpack(color);
 		for (i = 0; i < _bl_debug_draw_quads_tot; i ++) {
+			if (_bl_debug_draw_quads_color[i] != color) {
+				color = _bl_debug_draw_quads_color[i];
+				cpack(color);
+			}
 			glBegin(GL_LINE_LOOP);
 			glVertex3fv(_bl_debug_draw_quads[i][0]);
 			glVertex3fv(_bl_debug_draw_quads[i][1]);
@@ -3536,16 +3553,27 @@ static void bl_debug_draw(void)
 	}
 	if (_bl_debug_draw_edges_tot) {
 		int i;
-		cpack(0x00FFFF00);
+		color = _bl_debug_draw_edges_color[0];
+		cpack(color);
 		glBegin(GL_LINES);
 		for (i = 0; i < _bl_debug_draw_edges_tot; i ++) {
+			if (_bl_debug_draw_edges_color[i] != color) {
+				color = _bl_debug_draw_edges_color[i];
+				cpack(color);
+			}
 			glVertex3fv(_bl_debug_draw_edges[i][0]);
 			glVertex3fv(_bl_debug_draw_edges[i][1]);
 		}
 		glEnd();
+		color = _bl_debug_draw_edges_color[0];
+		cpack(color);
 		glPointSize(4.0);
 		glBegin(GL_POINTS);
 		for (i = 0; i < _bl_debug_draw_edges_tot; i ++) {
+			if (_bl_debug_draw_edges_color[i] != color) {
+				color = _bl_debug_draw_edges_color[i];
+				cpack(color);
+			}
 			glVertex3fv(_bl_debug_draw_edges[i][0]);
 			glVertex3fv(_bl_debug_draw_edges[i][1]);
 		}




More information about the Bf-blender-cvs mailing list