[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