[Bf-blender-cvs] [9469f13b732] greasepencil-refactor: GPencil: Refactor: Fix crash caused by material preview render

Clément Foucault noreply at git.blender.org
Sun Dec 15 03:43:19 CET 2019


Commit: 9469f13b732d4d145056b9e82a9eabd9d6e41b57
Author: Clément Foucault
Date:   Sun Dec 15 03:16:08 2019 +0100
Branches: greasepencil-refactor
https://developer.blender.org/rB9469f13b732d4d145056b9e82a9eabd9d6e41b57

GPencil: Refactor: Fix crash caused by material preview render

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

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

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

diff --git a/source/blender/draw/engines/gpencil/gpencil_engine.c b/source/blender/draw/engines/gpencil/gpencil_engine.c
index c2df1e3ae73..767f1a46923 100644
--- a/source/blender/draw/engines/gpencil/gpencil_engine.c
+++ b/source/blender/draw/engines/gpencil/gpencil_engine.c
@@ -1354,14 +1354,19 @@ static void GPENCIL_draw_scene_new(void *ved)
     pd->object_depth = ob->camera_z - pd->camera_z_offset;
     pd->is_stroke_order_3d = ob->is_drawmode3d;
 
-    GPU_framebuffer_bind(dfbl->depth_only_fb);
-    DRW_draw_pass(psl->merge_depth_ps);
+    /* TODO fix for render */
+    if (dfbl->depth_only_fb) {
+      GPU_framebuffer_bind(dfbl->depth_only_fb);
+      DRW_draw_pass(psl->merge_depth_ps);
+    }
 
     DRW_stats_group_end();
   }
 
-  GPU_framebuffer_bind(dfbl->default_fb);
-  DRW_draw_pass(psl->composite_ps);
+  if (dfbl->default_fb) {
+    GPU_framebuffer_bind(dfbl->default_fb);
+    DRW_draw_pass(psl->composite_ps);
+  }
 
   pd->gp_object_pool = pd->gp_layer_pool = pd->gp_vfx_pool = NULL;
 }
diff --git a/source/blender/draw/engines/gpencil/gpencil_render.c b/source/blender/draw/engines/gpencil/gpencil_render.c
index 8c126310ea2..8cd6ecab3c9 100644
--- a/source/blender/draw/engines/gpencil/gpencil_render.c
+++ b/source/blender/draw/engines/gpencil/gpencil_render.c
@@ -106,12 +106,6 @@ void GPENCIL_render_init(GPENCIL_Data *ved, RenderEngine *engine, struct Depsgra
   DRW_view_set_active(view);
 
   DRW_view_persmat_get(NULL, persmat, false);
-
-  /* calculate pixel size for render */
-  stl->storage->render_pixsize = get_render_pixelsize(persmat, viewport_size[0], viewport_size[1]);
-
-  /* INIT CACHE */
-  GPENCIL_cache_init(vedata);
 }
 
 /* render all objects and select only grease pencil */
@@ -285,9 +279,11 @@ void GPENCIL_render_to_image(void *vedata,
     printf("Warning: To render grease pencil, enable Combined and Z passes.\n");
   }
 
-  GPENCIL_engine_init(vedata);
   GPENCIL_render_init(vedata, engine, draw_ctx->depsgraph);
 
+  GPENCIL_engine_init(vedata);
+  GPENCIL_cache_init(vedata);
+
   GPENCIL_StorageList *stl = ((GPENCIL_Data *)vedata)->stl;
   Object *camera = DEG_get_evaluated_object(draw_ctx->depsgraph, RE_GetCamera(engine->re));
   stl->storage->camera = camera; /* save current camera */



More information about the Bf-blender-cvs mailing list