Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/render/intern/source/external_engine.c')
-rw-r--r--source/blender/render/intern/source/external_engine.c30
1 files changed, 14 insertions, 16 deletions
diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c
index 075202e8a79..440c54f5eeb 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -513,15 +513,14 @@ void RE_engine_active_view_set(RenderEngine *engine, const char *viewname)
float RE_engine_get_camera_shift_x(RenderEngine *engine, Object *camera, bool use_spherical_stereo)
{
- Render *re = engine->re;
-
/* When using spherical stereo, get camera shift without multiview,
* leaving stereo to be handled by the engine. */
- if (use_spherical_stereo) {
- re = NULL;
+ Render *re = engine->re;
+ if (use_spherical_stereo || re == NULL) {
+ return BKE_camera_multiview_shift_x(NULL, camera, NULL);
}
- return BKE_camera_multiview_shift_x(re ? &re->r : NULL, camera, re->viewname);
+ return BKE_camera_multiview_shift_x(&re->r, camera, re->viewname);
}
void RE_engine_get_camera_model_matrix(RenderEngine *engine,
@@ -529,16 +528,15 @@ void RE_engine_get_camera_model_matrix(RenderEngine *engine,
bool use_spherical_stereo,
float *r_modelmat)
{
- Render *re = engine->re;
-
/* When using spherical stereo, get model matrix without multiview,
* leaving stereo to be handled by the engine. */
- if (use_spherical_stereo) {
- re = NULL;
+ Render *re = engine->re;
+ if (use_spherical_stereo || re == NULL) {
+ BKE_camera_multiview_model_matrix(NULL, camera, NULL, (float(*)[4])r_modelmat);
+ }
+ else {
+ BKE_camera_multiview_model_matrix(&re->r, camera, re->viewname, (float(*)[4])r_modelmat);
}
-
- BKE_camera_multiview_model_matrix(
- re ? &re->r : NULL, camera, re->viewname, (float(*)[4])r_modelmat);
}
bool RE_engine_get_spherical_stereo(RenderEngine *engine, Object *camera)
@@ -611,13 +609,13 @@ static void engine_depsgraph_init(RenderEngine *engine, ViewLayer *view_layer)
if (engine->re->r.scemode & R_BUTS_PREVIEW) {
Depsgraph *depsgraph = engine->depsgraph;
- DEG_graph_relations_update(depsgraph, bmain, scene, view_layer);
- DEG_evaluate_on_framechange(bmain, depsgraph, CFRA);
+ DEG_graph_relations_update(depsgraph);
+ DEG_evaluate_on_framechange(depsgraph, CFRA);
DEG_ids_check_recalc(bmain, depsgraph, scene, view_layer, true);
DEG_ids_clear_recalc(bmain, depsgraph);
}
else {
- BKE_scene_graph_update_for_newframe(engine->depsgraph, bmain);
+ BKE_scene_graph_update_for_newframe(engine->depsgraph);
}
}
@@ -639,7 +637,7 @@ void RE_engine_frame_set(RenderEngine *engine, int frame, float subframe)
CLAMP(cfra, MINAFRAME, MAXFRAME);
BKE_scene_frame_set(re->scene, cfra);
- BKE_scene_graph_update_for_newframe(engine->depsgraph, re->main);
+ BKE_scene_graph_update_for_newframe(engine->depsgraph);
BKE_scene_camera_switch_update(re->scene);
}