Eevee: Render: Add support for multiview.
This commit is contained in:
parent
ab5f86a04e
commit
00f1bc1685
|
@ -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);
|
||||
|
|
|
@ -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 */
|
||||
|
||||
|
|
Loading…
Reference in New Issue