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:
parent
6777956005
commit
a696053545
Notes:
blender-bot
2024-04-11 14:26:06 +02:00
Referenced by issue #74692, Sculpt Mode significantly laggy after the addition of Face Sets? Referenced by issue #62582, Cycles viewport render stuck with stereoscopic viewport Referenced by issue #109592, Viewport: Switching to anaglyph 3D viewing mode not possible with Cycles.
|
@ -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;
|
||||
|
|
Loading…
Reference in New Issue