[Bf-blender-cvs] [08d1df4729b] master: Fix T66349: Add missing update for face orientation overlay

Pablo Dobarro noreply at git.blender.org
Mon Feb 10 19:32:37 CET 2020


Commit: 08d1df4729b670962ce0d61b275f9c5efe05c761
Author: Pablo Dobarro
Date:   Thu Jan 23 21:36:58 2020 +0100
Branches: master
https://developer.blender.org/rB08d1df4729b670962ce0d61b275f9c5efe05c761

Fix T66349: Add missing update for face orientation overlay

This forces the full geometry when that overlay is enabled.
I would rather not support this and leave that bug as a know issues/
limitation because this is terrible for performance and people may not
be aware that by enabling the option they are disabling the
optimization.

Reviewed By: jbakker

Maniphest Tasks: T66349

Differential Revision: https://developer.blender.org/D6552

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

M	source/blender/draw/engines/overlay/overlay_facing.c

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

diff --git a/source/blender/draw/engines/overlay/overlay_facing.c b/source/blender/draw/engines/overlay/overlay_facing.c
index fd974e9b8b8..74d82262019 100644
--- a/source/blender/draw/engines/overlay/overlay_facing.c
+++ b/source/blender/draw/engines/overlay/overlay_facing.c
@@ -21,6 +21,7 @@
  */
 
 #include "DRW_render.h"
+#include "BKE_paint.h"
 
 #include "overlay_private.h"
 
@@ -45,9 +46,17 @@ void OVERLAY_facing_cache_populate(OVERLAY_Data *vedata, Object *ob)
 {
   OVERLAY_PrivateData *pd = vedata->stl->pd;
 
-  struct GPUBatch *geom = DRW_cache_object_surface_get(ob);
-  if (geom) {
-    DRW_shgroup_call(pd->facing_grp, geom, ob);
+  const DRWContextState *draw_ctx = DRW_context_state_get();
+  const bool use_sculpt_pbvh = BKE_sculptsession_use_pbvh_draw(ob, draw_ctx->v3d) &&
+                               !DRW_state_is_image_render();
+  if (use_sculpt_pbvh) {
+    DRW_shgroup_call_sculpt(pd->facing_grp, ob, false, false, false);
+  }
+  else {
+    struct GPUBatch *geom = DRW_cache_object_surface_get(ob);
+    if (geom) {
+      DRW_shgroup_call(pd->facing_grp, geom, ob);
+    }
   }
 }



More information about the Bf-blender-cvs mailing list