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:
authorJulian Eisel <julian@blender.org>2020-08-14 18:18:09 +0300
committerJulian Eisel <julian@blender.org>2020-08-14 18:18:09 +0300
commite8dfe91767bd87c0499de1edbc721ef928e893d7 (patch)
treeab2d921a6eda9837efc7f9de4cb3abee72985192 /source/blender
parentd117520aa28f0d8a86eb6675836261e6426761cf (diff)
parentb3c08a3a0a9b0cd9e66bbf4bdeeedb6c2c5e7c76 (diff)
Merge branch 'blender-v2.90-release'
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenloader/intern/versioning_280.c8
-rw-r--r--source/blender/editors/space_view3d/view3d_view.c4
-rw-r--r--source/blender/render/intern/source/external_engine.c25
3 files changed, 22 insertions, 15 deletions
diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c
index fced95ee629..0d8f2eac99e 100644
--- a/source/blender/blenloader/intern/versioning_280.c
+++ b/source/blender/blenloader/intern/versioning_280.c
@@ -4953,8 +4953,6 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
const View3D *v3d_default = DNA_struct_default_get(View3D);
wm->xr.session_settings.shading = v3d_default->shading;
- /* Don't rotate light with the viewer by default, make it fixed. */
- wm->xr.session_settings.shading.flag |= V3D_SHADING_WORLD_ORIENTATION;
wm->xr.session_settings.draw_flags = (V3D_OFSDRAW_SHOW_GRIDFLOOR |
V3D_OFSDRAW_SHOW_ANNOTATION);
wm->xr.session_settings.clip_start = v3d_default->clip_start;
@@ -5112,6 +5110,12 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain)
}
}
+ for (wmWindowManager *wm = bmain->wm.first; wm; wm = wm->id.next) {
+ /* Don't rotate light with the viewer by default, make it fixed. Shading settings can't be
+ * edited and this flag should always be set. So we can always execute this. */
+ wm->xr.session_settings.shading.flag |= V3D_SHADING_WORLD_ORIENTATION;
+ }
+
/* Keep this block, even when empty. */
}
}
diff --git a/source/blender/editors/space_view3d/view3d_view.c b/source/blender/editors/space_view3d/view3d_view.c
index ff9673a4262..b986ebb75b6 100644
--- a/source/blender/editors/space_view3d/view3d_view.c
+++ b/source/blender/editors/space_view3d/view3d_view.c
@@ -1732,6 +1732,8 @@ void ED_view3d_xr_shading_update(wmWindowManager *wm, const View3D *v3d, const S
{
if (v3d->runtime.flag & V3D_RUNTIME_XR_SESSION_ROOT) {
View3DShading *xr_shading = &wm->xr.session_settings.shading;
+ /* Flags that shouldn't be overridden by the 3D View shading. */
+ const int flag_copy = V3D_SHADING_WORLD_ORIENTATION;
BLI_assert(WM_xr_session_exists(&wm->xr));
@@ -1749,7 +1751,9 @@ void ED_view3d_xr_shading_update(wmWindowManager *wm, const View3D *v3d, const S
}
/* Copy shading from View3D to VR view. */
+ const int old_xr_shading_flag = xr_shading->flag;
*xr_shading = v3d->shading;
+ xr_shading->flag = (xr_shading->flag & ~flag_copy) | (old_xr_shading_flag & flag_copy);
if (v3d->shading.prop) {
xr_shading->prop = IDP_CopyProperty(xr_shading->prop);
}
diff --git a/source/blender/render/intern/source/external_engine.c b/source/blender/render/intern/source/external_engine.c
index 075202e8a79..0790d40d56c 100644
--- a/source/blender/render/intern/source/external_engine.c
+++ b/source/blender/render/intern/source/external_engine.c
@@ -513,15 +513,15 @@ 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);
+ }
+ else {
+ return BKE_camera_multiview_shift_x(&re->r, camera, re->viewname);
}
-
- return BKE_camera_multiview_shift_x(re ? &re->r : NULL, camera, re->viewname);
}
void RE_engine_get_camera_model_matrix(RenderEngine *engine,
@@ -529,16 +529,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)