[Bf-blender-cvs] [a2457dd7bba] master: Debug: add 888 and 889 debug values for redraw and PBVH node visualizatons

Brecht Van Lommel noreply at git.blender.org
Sat Sep 28 01:37:20 CEST 2019


Commit: a2457dd7bba136dcfd4065f770b75ec5ce28004b
Author: Brecht Van Lommel
Date:   Sat Sep 28 01:29:59 2019 +0200
Branches: master
https://developer.blender.org/rBa2457dd7bba136dcfd4065f770b75ec5ce28004b

Debug: add 888 and 889 debug values for redraw and PBVH node visualizatons

More convenient to use the debug menu than having to modify code every time.

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

M	source/blender/draw/intern/draw_manager_data.c
M	source/blender/editors/screen/area.c

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

diff --git a/source/blender/draw/intern/draw_manager_data.c b/source/blender/draw/intern/draw_manager_data.c
index 7887f6874b3..78353a58e33 100644
--- a/source/blender/draw/intern/draw_manager_data.c
+++ b/source/blender/draw/intern/draw_manager_data.c
@@ -807,8 +807,7 @@ void DRW_shgroup_call_instances_with_attribs(DRWShadingGroup *shgroup,
   drw_command_draw(shgroup, batch, handle);
 }
 
-// #define SCULPT_DEBUG_BUFFERS
-
+#define SCULPT_DEBUG_BUFFERS (G.debug_value == 889)
 typedef struct DRWSculptCallbackData {
   Object *ob;
   DRWShadingGroup **shading_groups;
@@ -816,13 +815,11 @@ typedef struct DRWSculptCallbackData {
   bool use_mats;
   bool use_mask;
   bool fast_mode; /* Set by draw manager. Do not init. */
-#ifdef SCULPT_DEBUG_BUFFERS
-  int node_nr;
-#endif
+
+  int debug_node_nr;
 } DRWSculptCallbackData;
 
-#ifdef SCULPT_DEBUG_BUFFERS
-#  define SCULPT_DEBUG_COLOR(id) (sculpt_debug_colors[id % 9])
+#define SCULPT_DEBUG_COLOR(id) (sculpt_debug_colors[id % 9])
 static float sculpt_debug_colors[9][4] = {
     {1.0f, 0.2f, 0.2f, 1.0f},
     {0.2f, 1.0f, 0.2f, 1.0f},
@@ -834,7 +831,6 @@ static float sculpt_debug_colors[9][4] = {
     {0.2f, 1.0f, 0.7f, 1.0f},
     {0.7f, 0.2f, 1.0f, 1.0f},
 };
-#endif
 
 static void sculpt_draw_cb(DRWSculptCallbackData *scd, GPU_PBVH_Buffers *buffers)
 {
@@ -852,41 +848,40 @@ static void sculpt_draw_cb(DRWSculptCallbackData *scd, GPU_PBVH_Buffers *buffers
 
   DRWShadingGroup *shgrp = scd->shading_groups[index];
   if (geom != NULL && shgrp != NULL) {
-#ifdef SCULPT_DEBUG_BUFFERS
-    /* Color each buffers in different colors. Only work in solid/Xray mode. */
-    shgrp = DRW_shgroup_create_sub(shgrp);
-    DRW_shgroup_uniform_vec3(shgrp, "materialDiffuseColor", SCULPT_DEBUG_COLOR(scd->node_nr++), 1);
-#endif
+    if (SCULPT_DEBUG_BUFFERS) {
+      /* Color each buffers in different colors. Only work in solid/Xray mode. */
+      shgrp = DRW_shgroup_create_sub(shgrp);
+      DRW_shgroup_uniform_vec3(
+          shgrp, "materialDiffuseColor", SCULPT_DEBUG_COLOR(scd->debug_node_nr++), 1);
+    }
     /* DRW_shgroup_call_no_cull reuses matrices calculations for all the drawcalls of this
      * object. */
     DRW_shgroup_call_no_cull(shgrp, geom, scd->ob);
   }
 }
 
-#ifdef SCULPT_DEBUG_BUFFERS
 static void sculpt_debug_cb(void *user_data,
                             const float bmin[3],
                             const float bmax[3],
                             PBVHNodeFlags flag)
 {
-  int *node_nr = (int *)user_data;
+  int *debug_node_nr = (int *)user_data;
   BoundBox bb;
   BKE_boundbox_init_from_minmax(&bb, bmin, bmax);
 
-#  if 0 /* Nodes hierarchy. */
+#if 0 /* Nodes hierarchy. */
   if (flag & PBVH_Leaf) {
     DRW_debug_bbox(&bb, (float[4]){0.0f, 1.0f, 0.0f, 1.0f});
   }
   else {
     DRW_debug_bbox(&bb, (float[4]){0.5f, 0.5f, 0.5f, 0.6f});
   }
-#  else /* Color coded leaf bounds. */
+#else /* Color coded leaf bounds. */
   if (flag & PBVH_Leaf) {
-    DRW_debug_bbox(&bb, SCULPT_DEBUG_COLOR((*node_nr)++));
+    DRW_debug_bbox(&bb, SCULPT_DEBUG_COLOR((*debug_node_nr)++));
   }
-#  endif
-}
 #endif
+}
 
 static void drw_sculpt_get_frustum_planes(Object *ob, float planes[6][4])
 {
@@ -931,14 +926,15 @@ static void drw_sculpt_generate_calls(DRWSculptCallbackData *scd, bool use_vcol)
 
   BKE_pbvh_draw_cb(pbvh, &frustum, (void (*)(void *, GPU_PBVH_Buffers *))sculpt_draw_cb, scd);
 
-#ifdef SCULPT_DEBUG_BUFFERS
-  int node_nr = 0;
-  DRW_debug_modelmat(scd->ob->obmat);
-  BKE_pbvh_draw_debug_cb(
-      pbvh,
-      (void (*)(void *d, const float min[3], const float max[3], PBVHNodeFlags f))sculpt_debug_cb,
-      &node_nr);
-#endif
+  if (SCULPT_DEBUG_BUFFERS) {
+    int debug_node_nr = 0;
+    DRW_debug_modelmat(scd->ob->obmat);
+    BKE_pbvh_draw_debug_cb(
+        pbvh,
+        (void (*)(
+            void *d, const float min[3], const float max[3], PBVHNodeFlags f))sculpt_debug_cb,
+        &debug_node_nr);
+  }
 }
 
 void DRW_shgroup_call_sculpt(
diff --git a/source/blender/editors/screen/area.c b/source/blender/editors/screen/area.c
index 32b5c6ba6d4..6be571f692d 100644
--- a/source/blender/editors/screen/area.c
+++ b/source/blender/editors/screen/area.c
@@ -542,20 +542,20 @@ void ED_region_do_draw(bContext *C, ARegion *ar)
   region_draw_azones(sa, ar);
 
   /* for debugging unneeded area redraws and partial redraw */
-#if 0
-  GPU_blend(true);
-  GPUVertFormat *format = immVertexFormat();
-  uint pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
-  immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR);
-  immUniformColor4f(drand48(), drand48(), drand48(), 0.1f);
-  immRectf(pos,
-           ar->drawrct.xmin - ar->winrct.xmin,
-           ar->drawrct.ymin - ar->winrct.ymin,
-           ar->drawrct.xmax - ar->winrct.xmin,
-           ar->drawrct.ymax - ar->winrct.ymin);
-  immUnbindProgram();
-  GPU_blend(false);
-#endif
+  if (G.debug_value == 888) {
+    GPU_blend(true);
+    GPUVertFormat *format = immVertexFormat();
+    uint pos = GPU_vertformat_attr_add(format, "pos", GPU_COMP_F32, 2, GPU_FETCH_FLOAT);
+    immBindBuiltinProgram(GPU_SHADER_2D_UNIFORM_COLOR);
+    immUniformColor4f(drand48(), drand48(), drand48(), 0.1f);
+    immRectf(pos,
+             ar->drawrct.xmin - ar->winrct.xmin,
+             ar->drawrct.ymin - ar->winrct.ymin,
+             ar->drawrct.xmax - ar->winrct.xmin,
+             ar->drawrct.ymax - ar->winrct.ymin);
+    immUnbindProgram();
+    GPU_blend(false);
+  }
 
   memset(&ar->drawrct, 0, sizeof(ar->drawrct));



More information about the Bf-blender-cvs mailing list