[Bf-blender-cvs] [dec3cbc818a] greasepencil-object: GPencil: Remove unpredicatble behavior when rendering without depth pass

Clément Foucault noreply at git.blender.org
Wed Feb 12 01:40:04 CET 2020


Commit: dec3cbc818abc236ddcfe40473b9246eeb078834
Author: Clément Foucault
Date:   Wed Feb 12 01:04:20 2020 +0100
Branches: greasepencil-object
https://developer.blender.org/rBdec3cbc818abc236ddcfe40473b9246eeb078834

GPencil: Remove unpredicatble behavior when rendering without depth pass

We clear the reconstructed buffers if they have not be initialized.

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

M	source/blender/draw/engines/gpencil/gpencil_render.c

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_render.c b/source/blender/draw/engines/gpencil/gpencil_render.c
index ebb87880ce7..3e818f1a4c4 100644
--- a/source/blender/draw/engines/gpencil/gpencil_render.c
+++ b/source/blender/draw/engines/gpencil/gpencil_render.c
@@ -69,8 +69,8 @@ void GPENCIL_render_init(GPENCIL_Data *vedata,
   float *pix_col = (rpass_col_src) ? rpass_col_src->rect : NULL;
 
   if (!pix_z || !pix_col) {
-    /* TODO: put this message in a better place */
-    printf("Warning: To render grease pencil, enable Combined and Z passes.\n");
+    RE_engine_set_error_message(engine,
+                                "Warning: To render grease pencil, enable Combined and Z passes.");
   }
 
   if (pix_z) {
@@ -108,6 +108,18 @@ void GPENCIL_render_init(GPENCIL_Data *vedata,
                                     GPU_ATTACHMENT_TEXTURE(txl->render_color_tx),
                                 });
 
+  if (!pix_z || !pix_col) {
+    /* To avoid unpredictable result, clear buffers that have not be initialized. */
+    GPU_framebuffer_bind(fbl->render_fb);
+    if (!pix_col) {
+      float clear_col[4] = {0.0f, 0.0f, 0.0f, 0.0f};
+      GPU_framebuffer_clear_color(fbl->render_fb, clear_col);
+    }
+    if (!pix_z) {
+      GPU_framebuffer_clear_depth(fbl->render_fb, 1.0f);
+    }
+  }
+
   MEM_SAFE_FREE(pix_z);
 }



More information about the Bf-blender-cvs mailing list