[Bf-blender-cvs] [662c0ac970b] master: Overlay: Fix Line antialiasing broken for some objects

Clément Foucault noreply at git.blender.org
Mon Oct 12 15:04:54 CEST 2020


Commit: 662c0ac970b3fe9fd63105f9ff1f2bb2553378f4
Author: Clément Foucault
Date:   Mon Oct 12 15:04:28 2020 +0200
Branches: master
https://developer.blender.org/rB662c0ac970b3fe9fd63105f9ff1f2bb2553378f4

Overlay: Fix Line antialiasing broken for some objects

Fix regression introduced in rBe12767a0352a9e113892b4a07c6c8446d3ff361f

The volumes are not a line type and should not be render into the line
framebuffer nor it should change the framebuffer.

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

M	source/blender/draw/engines/overlay/overlay_engine.c
M	source/blender/draw/engines/overlay/overlay_volume.c

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

diff --git a/source/blender/draw/engines/overlay/overlay_engine.c b/source/blender/draw/engines/overlay/overlay_engine.c
index 76697b42a52..30b39e5d5e1 100644
--- a/source/blender/draw/engines/overlay/overlay_engine.c
+++ b/source/blender/draw/engines/overlay/overlay_engine.c
@@ -547,6 +547,7 @@ static void OVERLAY_draw_scene(void *vedata)
   OVERLAY_fade_draw(vedata);
   OVERLAY_facing_draw(vedata);
   OVERLAY_extra_blend_draw(vedata);
+  OVERLAY_volume_draw(vedata);
 
   if (DRW_state_is_fbo()) {
     GPU_framebuffer_bind(fbl->overlay_line_fb);
@@ -557,7 +558,6 @@ static void OVERLAY_draw_scene(void *vedata)
   OVERLAY_particle_draw(vedata);
   OVERLAY_metaball_draw(vedata);
   OVERLAY_gpencil_draw(vedata);
-  OVERLAY_volume_draw(vedata);
   OVERLAY_extra_draw(vedata);
 
   if (DRW_state_is_fbo()) {
diff --git a/source/blender/draw/engines/overlay/overlay_volume.c b/source/blender/draw/engines/overlay/overlay_volume.c
index ffa664c90d5..ad0ccf1c7c4 100644
--- a/source/blender/draw/engines/overlay/overlay_volume.c
+++ b/source/blender/draw/engines/overlay/overlay_volume.c
@@ -39,6 +39,10 @@ void OVERLAY_volume_cache_init(OVERLAY_Data *vedata)
     pd->volume_selection_surface_grp = grp;
     DRW_shgroup_uniform_block(grp, "globalsBlock", G_draw.block_ubo);
   }
+  else {
+    psl->volume_ps = NULL;
+    pd->volume_selection_surface_grp = NULL;
+  }
 }
 
 void OVERLAY_volume_cache_populate(OVERLAY_Data *vedata, Object *ob)
@@ -57,11 +61,8 @@ void OVERLAY_volume_cache_populate(OVERLAY_Data *vedata, Object *ob)
 void OVERLAY_volume_draw(OVERLAY_Data *vedata)
 {
   OVERLAY_PassList *psl = vedata->psl;
-  OVERLAY_FramebufferList *fbl = vedata->fbl;
 
-  if (DRW_state_is_fbo()) {
-    GPU_framebuffer_bind(fbl->overlay_default_fb);
+  if (psl->volume_ps) {
+    DRW_draw_pass(psl->volume_ps);
   }
-
-  DRW_draw_pass(psl->volume_ps);
 }



More information about the Bf-blender-cvs mailing list