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:
authorBrecht Van Lommel <brechtvanlommel@gmail.com>2020-03-20 18:05:55 +0300
committerBrecht Van Lommel <brechtvanlommel@gmail.com>2020-03-20 18:09:49 +0300
commita696053545e9e5c50302da668b9fd2f7c8edc605 (patch)
tree7f383085af40dd89c426025123c97024acdaf4e4
parent6777956005f59a1f52851a50d5498bb17c910c4e (diff)
Python API: add bl_use_stereo_viewport for RenderEngine
To indicate if the render engine supports rendering a stereo 3D viewport. This is not currently supported for Cycles. Fixes T62582
-rw-r--r--source/blender/draw/engines/eevee/eevee_engine.c2
-rw-r--r--source/blender/draw/engines/external/external_engine.c2
-rw-r--r--source/blender/draw/engines/select/select_engine.c2
-rw-r--r--source/blender/draw/engines/workbench/workbench_engine.c2
-rw-r--r--source/blender/makesrna/intern/rna_render.c5
-rw-r--r--source/blender/render/extern/include/RE_engine.h1
-rw-r--r--source/blender/windowmanager/intern/wm_draw.c6
7 files changed, 16 insertions, 4 deletions
diff --git a/source/blender/draw/engines/eevee/eevee_engine.c b/source/blender/draw/engines/eevee/eevee_engine.c
index 70933e21719..a1112eb92df 100644
--- a/source/blender/draw/engines/eevee/eevee_engine.c
+++ b/source/blender/draw/engines/eevee/eevee_engine.c
@@ -478,7 +478,7 @@ RenderEngineType DRW_engine_viewport_eevee_type = {
NULL,
EEVEE_ENGINE,
N_("Eevee"),
- RE_INTERNAL | RE_USE_PREVIEW,
+ RE_INTERNAL | RE_USE_PREVIEW | RE_USE_STEREO_VIEWPORT,
NULL,
&DRW_render_to_image,
NULL,
diff --git a/source/blender/draw/engines/external/external_engine.c b/source/blender/draw/engines/external/external_engine.c
index f78826b2980..ee4bd58ab80 100644
--- a/source/blender/draw/engines/external/external_engine.c
+++ b/source/blender/draw/engines/external/external_engine.c
@@ -286,7 +286,7 @@ RenderEngineType DRW_engine_viewport_external_type = {
NULL,
EXTERNAL_ENGINE,
N_("External"),
- RE_INTERNAL,
+ RE_INTERNAL | RE_USE_STEREO_VIEWPORT,
NULL,
NULL,
NULL,
diff --git a/source/blender/draw/engines/select/select_engine.c b/source/blender/draw/engines/select/select_engine.c
index f357beb0bd8..08ec0038755 100644
--- a/source/blender/draw/engines/select/select_engine.c
+++ b/source/blender/draw/engines/select/select_engine.c
@@ -381,7 +381,7 @@ RenderEngineType DRW_engine_viewport_select_type = {
NULL,
SELECT_ENGINE,
N_("Select ID"),
- RE_INTERNAL,
+ RE_INTERNAL | RE_USE_STEREO_VIEWPORT,
NULL,
NULL,
NULL,
diff --git a/source/blender/draw/engines/workbench/workbench_engine.c b/source/blender/draw/engines/workbench/workbench_engine.c
index e9525af5682..c6c594dc04d 100644
--- a/source/blender/draw/engines/workbench/workbench_engine.c
+++ b/source/blender/draw/engines/workbench/workbench_engine.c
@@ -597,7 +597,7 @@ RenderEngineType DRW_engine_viewport_workbench_type = {
NULL,
WORKBENCH_ENGINE,
N_("Workbench"),
- RE_INTERNAL,
+ RE_INTERNAL | RE_USE_STEREO_VIEWPORT,
NULL,
&DRW_render_to_image,
NULL,
diff --git a/source/blender/makesrna/intern/rna_render.c b/source/blender/makesrna/intern/rna_render.c
index 03c7ffb75b6..40a2aeb5bd5 100644
--- a/source/blender/makesrna/intern/rna_render.c
+++ b/source/blender/makesrna/intern/rna_render.c
@@ -885,6 +885,11 @@ static void rna_def_render_engine(BlenderRNA *brna)
RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL);
RNA_def_property_ui_text(prop, "Use Spherical Stereo", "Support spherical stereo camera models");
+ prop = RNA_def_property(srna, "bl_use_stereo_viewport", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_boolean_sdna(prop, NULL, "type->flag", RE_USE_STEREO_VIEWPORT);
+ RNA_def_property_flag(prop, PROP_REGISTER_OPTIONAL);
+ RNA_def_property_ui_text(prop, "Use Stereo Viewport", "Support rendering stereo 3D viewport");
+
RNA_define_verify_sdna(1);
}
diff --git a/source/blender/render/extern/include/RE_engine.h b/source/blender/render/extern/include/RE_engine.h
index ac05c6c963c..0b5b62e2f08 100644
--- a/source/blender/render/extern/include/RE_engine.h
+++ b/source/blender/render/extern/include/RE_engine.h
@@ -59,6 +59,7 @@ struct bNodeTree;
#define RE_USE_SAVE_BUFFERS 32
#define RE_USE_SHADING_NODES_CUSTOM 64
#define RE_USE_SPHERICAL_STEREO 128
+#define RE_USE_STEREO_VIEWPORT 256
/* RenderEngine.flag */
#define RE_ENGINE_ANIMATION 1
diff --git a/source/blender/windowmanager/intern/wm_draw.c b/source/blender/windowmanager/intern/wm_draw.c
index b1cfb155df0..6df8440f90f 100644
--- a/source/blender/windowmanager/intern/wm_draw.c
+++ b/source/blender/windowmanager/intern/wm_draw.c
@@ -140,6 +140,12 @@ static bool wm_draw_region_stereo_set(Main *bmain,
if (region->regiontype == RGN_TYPE_WINDOW) {
View3D *v3d = sa->spacedata.first;
if (v3d->camera && v3d->camera->type == OB_CAMERA) {
+ RegionView3D *rv3d = region->regiondata;
+ RenderEngine *engine = rv3d->render_engine;
+ if (engine && !(engine->type->flag & RE_USE_STEREO_VIEWPORT)) {
+ return false;
+ }
+
Camera *cam = v3d->camera->data;
CameraBGImage *bgpic = cam->bg_images.first;
v3d->multiview_eye = sview;