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
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user