[Bf-blender-cvs] [a696053545e] master: Python API: add bl_use_stereo_viewport for RenderEngine
Brecht Van Lommel
noreply at git.blender.org
Fri Mar 20 16:16:09 CET 2020
Commit: a696053545e9e5c50302da668b9fd2f7c8edc605
Author: Brecht Van Lommel
Date: Fri Mar 20 16:05:55 2020 +0100
Branches: master
https://developer.blender.org/rBa696053545e9e5c50302da668b9fd2f7c8edc605
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
===================================================================
M source/blender/draw/engines/eevee/eevee_engine.c
M source/blender/draw/engines/external/external_engine.c
M source/blender/draw/engines/select/select_engine.c
M source/blender/draw/engines/workbench/workbench_engine.c
M source/blender/makesrna/intern/rna_render.c
M source/blender/render/extern/include/RE_engine.h
M source/blender/windowmanager/intern/wm_draw.c
===================================================================
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;
More information about the Bf-blender-cvs
mailing list