From 00f1bc168505bcffe150f5f75db79778bdead51e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Foucault?= Date: Thu, 1 Feb 2018 20:45:21 +0100 Subject: Eevee: Render: Add support for multiview. --- source/blender/draw/engines/eevee/eevee_render.c | 2 +- source/blender/draw/intern/draw_manager.c | 11 ++++++++++- 2 files changed, 11 insertions(+), 2 deletions(-) (limited to 'source/blender') diff --git a/source/blender/draw/engines/eevee/eevee_render.c b/source/blender/draw/engines/eevee/eevee_render.c index 92ea737906c..cccaf03b033 100644 --- a/source/blender/draw/engines/eevee/eevee_render.c +++ b/source/blender/draw/engines/eevee/eevee_render.c @@ -339,7 +339,7 @@ void EEVEE_render_draw(EEVEE_Data *vedata, struct RenderEngine *engine, struct D } /* Init render result. */ - const char *viewname = NULL; + const char *viewname = RE_GetActiveRenderView(engine->re); const float *render_size = DRW_viewport_size_get(); RenderResult *rr = RE_engine_begin_result(engine, 0, 0, (int)render_size[0], (int)render_size[1], NULL, viewname); diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index baa2f46a87a..27496d31171 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -75,6 +75,7 @@ #include "IMB_colormanagement.h" #include "RE_engine.h" +#include "RE_pipeline.h" #include "UI_interface.h" #include "UI_resources.h" @@ -3603,6 +3604,7 @@ void DRW_render_to_image(RenderEngine *re, struct Depsgraph *depsgraph) RenderEngineType *engine_type = re->type; DrawEngineType *draw_engine_type = engine_type->draw_engine; RenderData *r = &scene->r; + Render *render = re->re; /* Reset before using it. */ memset(&DST, 0x0, sizeof(DST)); @@ -3626,7 +3628,14 @@ void DRW_render_to_image(RenderEngine *re, struct Depsgraph *depsgraph) glDisable(GL_SCISSOR_TEST); glViewport(0, 0, size[0], size[1]); - engine_type->draw_engine->render_to_image(data, re, depsgraph); + for (SceneRenderView *srv = r->views.first; srv; srv = srv->next) { + if (BKE_scene_multiview_is_render_view_active(r, srv) == false) + continue; + + RE_SetActiveRenderView(render, srv->name); + + engine_type->draw_engine->render_to_image(data, re, depsgraph); + } /* TODO grease pencil */ -- cgit v1.2.3