[Bf-blender-cvs] [6ef48b13186] master: DrawManager/GreasePencil: Select Correct ViewLayer
Jeroen Bakker
noreply at git.blender.org
Thu May 9 15:13:46 CEST 2019
Commit: 6ef48b13186c2de003c8f9d86630e66c7e5406f3
Author: Jeroen Bakker
Date: Tue May 7 15:01:12 2019 +0200
Branches: master
https://developer.blender.org/rB6ef48b13186c2de003c8f9d86630e66c7e5406f3
DrawManager/GreasePencil: Select Correct ViewLayer
The DrawManager assumed that the first render layer was the render layer
where GP needed to render on. In viewport this is always the case as we
only have a single view layer. When rendering this can be multiple when
multiple layers are rendered and composited in the compositor.
In stead of the assumption that the first render layer is the render
layer we need to draw on, we search for the render layer with the same
name as the viewlayer.
Reviewed By: fclem, brecht, antoniov
Maniphest Tasks: T63099
Differential Revision: https://developer.blender.org/D4818
===================================================================
M source/blender/draw/intern/draw_manager.c
===================================================================
diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c
index 3bf3eaae4a2..0b8740ea982 100644
--- a/source/blender/draw/intern/draw_manager.c
+++ b/source/blender/draw/intern/draw_manager.c
@@ -1883,9 +1883,9 @@ static void DRW_render_gpencil_to_image(RenderEngine *engine,
void DRW_render_gpencil(struct RenderEngine *engine, struct Depsgraph *depsgraph)
{
- /* This function is only valid for Cycles
- * Eevee done all work in the Eevee render directly.
- * Maybe it can be done equal for both engines?
+ /* This function is only valid for Cycles & Workbench
+ * Eevee does all work in the Eevee render directly.
+ * Maybe it can be done equal for all engines?
*/
if (STREQ(engine->type->name, "Eevee")) {
return;
@@ -1952,7 +1952,7 @@ void DRW_render_gpencil(struct RenderEngine *engine, struct Depsgraph *depsgraph
}
RenderResult *render_result = RE_engine_get_result(engine);
- RenderLayer *render_layer = render_result->layers.first;
+ RenderLayer *render_layer = RE_GetRenderLayer(render_result, view_layer->name);
DRW_render_gpencil_to_image(engine, render_layer, &render_rect);
More information about the Bf-blender-cvs
mailing list