diff options
Diffstat (limited to 'source/blender/makesrna/intern')
-rw-r--r-- | source/blender/makesrna/intern/rna_context.c | 11 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_layer.c | 113 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_nodetree.c | 2 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_scene.c | 102 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_space.c | 4 | ||||
-rw-r--r-- | source/blender/makesrna/intern/rna_workspace.c | 6 |
6 files changed, 99 insertions, 139 deletions
diff --git a/source/blender/makesrna/intern/rna_context.c b/source/blender/makesrna/intern/rna_context.c index bcd805b0f3a..fd128548ed1 100644 --- a/source/blender/makesrna/intern/rna_context.c +++ b/source/blender/makesrna/intern/rna_context.c @@ -139,12 +139,6 @@ static PointerRNA rna_Context_view_layer_get(PointerRNA *ptr) return rna_pointer_inherit_refine(&scene_ptr, &RNA_ViewLayer, CTX_data_view_layer(C)); } -static PointerRNA rna_Context_view_render_get(PointerRNA *ptr) -{ - bContext *C = (bContext *)ptr->data; - return rna_pointer_inherit_refine(ptr, &RNA_ViewRenderSettings, CTX_data_view_render(C)); -} - static void rna_Context_engine_get(PointerRNA *ptr, char *value) { bContext *C = (bContext *)ptr->data; @@ -289,11 +283,6 @@ void RNA_def_context(BlenderRNA *brna) RNA_def_property_struct_type(prop, "ViewLayer"); RNA_def_property_pointer_funcs(prop, "rna_Context_view_layer_get", NULL, NULL, NULL); - prop = RNA_def_property(srna, "view_render", PROP_POINTER, PROP_NONE); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_struct_type(prop, "ViewRenderSettings"); - RNA_def_property_pointer_funcs(prop, "rna_Context_view_render_get", NULL, NULL, NULL); - prop = RNA_def_property(srna, "engine", PROP_STRING, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_EDITABLE); RNA_def_property_string_funcs(prop, "rna_Context_engine_get", "rna_Context_engine_length", NULL); diff --git a/source/blender/makesrna/intern/rna_layer.c b/source/blender/makesrna/intern/rna_layer.c index e6fa7bb26dd..dce85f0e91c 100644 --- a/source/blender/makesrna/intern/rna_layer.c +++ b/source/blender/makesrna/intern/rna_layer.c @@ -928,78 +928,6 @@ static void rna_ObjectBase_select_update(Main *UNUSED(bmain), Scene *UNUSED(scen ED_object_base_select(base, mode); } -static char *rna_ViewRenderSettings_path(PointerRNA *UNUSED(ptr)) -{ - return BLI_sprintfN("view_render"); -} - -static void rna_ViewRenderSettings_engine_set(PointerRNA *ptr, int value) -{ - ViewRender *view_render = (ViewRender *)ptr->data; - RenderEngineType *type = BLI_findlink(&R_engines, value); - - if (type) { - BLI_strncpy_utf8(view_render->engine_id, type->idname, sizeof(view_render->engine_id)); - DEG_id_tag_update(ptr->id.data, DEG_TAG_COPY_ON_WRITE); - } -} - -static const EnumPropertyItem *rna_ViewRenderSettings_engine_itemf( - bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) -{ - RenderEngineType *type; - EnumPropertyItem *item = NULL; - EnumPropertyItem tmp = {0, "", 0, "", ""}; - int a = 0, totitem = 0; - - for (type = R_engines.first; type; type = type->next, a++) { - tmp.value = a; - tmp.identifier = type->idname; - tmp.name = type->name; - RNA_enum_item_add(&item, &totitem, &tmp); - } - - RNA_enum_item_end(&item, &totitem); - *r_free = true; - - return item; -} - -static int rna_ViewRenderSettings_engine_get(PointerRNA *ptr) -{ - ViewRender *view_render = (ViewRender *)ptr->data; - RenderEngineType *type; - int a = 0; - - for (type = R_engines.first; type; type = type->next, a++) - if (STREQ(type->idname, view_render->engine_id)) - return a; - - return 0; -} - -static void rna_ViewRenderSettings_engine_update(Main *bmain, Scene *UNUSED(unused), PointerRNA *UNUSED(ptr)) -{ - ED_render_engine_changed(bmain); -} - -static int rna_ViewRenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr)) -{ - return (BLI_listbase_count(&R_engines) > 1); -} - -static int rna_ViewRenderSettings_use_shading_nodes_get(PointerRNA *ptr) -{ - ViewRender *view_render = (ViewRender *)ptr->data; - return BKE_viewrender_use_new_shading_nodes(view_render); -} - -static int rna_ViewRenderSettings_use_spherical_stereo_get(PointerRNA *ptr) -{ - ViewRender *view_render = (ViewRender *)ptr->data; - return BKE_viewrender_use_spherical_stereo(view_render); -} - #else static void rna_def_scene_collections(BlenderRNA *brna, PropertyRNA *cprop) @@ -2183,46 +2111,6 @@ static void rna_def_object_base(BlenderRNA *brna) RNA_def_property_update(prop, NC_OBJECT | ND_DRAW, "rna_ObjectBase_select_update"); } -static void rna_def_scene_view_render(BlenderRNA *brna) -{ - StructRNA *srna; - PropertyRNA *prop; - - static const EnumPropertyItem engine_items[] = { - {0, "BLENDER_RENDER", 0, "Blender Render", "Use the Blender internal rendering engine for rendering"}, - {0, NULL, 0, NULL, NULL} - }; - - srna = RNA_def_struct(brna, "ViewRenderSettings", NULL); - RNA_def_struct_sdna(srna, "ViewRender"); - RNA_def_struct_path_func(srna, "rna_ViewRenderSettings_path"); - RNA_def_struct_ui_text(srna, "View Render", "Rendering settings related to viewport drawing/rendering"); - - /* engine */ - prop = RNA_def_property(srna, "engine", PROP_ENUM, PROP_NONE); - RNA_def_property_enum_items(prop, engine_items); - RNA_def_property_enum_funcs(prop, "rna_ViewRenderSettings_engine_get", "rna_ViewRenderSettings_engine_set", - "rna_ViewRenderSettings_engine_itemf"); - RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); - RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering"); - RNA_def_property_update(prop, NC_WINDOW, "rna_ViewRenderSettings_engine_update"); - - prop = RNA_def_property(srna, "has_multiple_engines", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_funcs(prop, "rna_ViewRenderSettings_multiple_engines_get", NULL); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Multiple Engines", "More than one rendering engine is available"); - - prop = RNA_def_property(srna, "use_shading_nodes", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_funcs(prop, "rna_ViewRenderSettings_use_shading_nodes_get", NULL); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Use Shading Nodes", "Active render engine uses new shading nodes system"); - - prop = RNA_def_property(srna, "use_spherical_stereo", PROP_BOOLEAN, PROP_NONE); - RNA_def_property_boolean_funcs(prop, "rna_ViewRenderSettings_use_spherical_stereo_get", NULL); - RNA_def_property_clear_flag(prop, PROP_EDITABLE); - RNA_def_property_ui_text(prop, "Use Spherical Stereo", "Active render engine supports spherical stereo rendering"); -} - void RNA_def_view_layer(BlenderRNA *brna) { FunctionRNA *func; @@ -2302,7 +2190,6 @@ void RNA_def_view_layer(BlenderRNA *brna) /* *** Animated *** */ rna_def_view_layer_settings(brna); rna_def_layer_collection_settings(brna); - rna_def_scene_view_render(brna); } #endif diff --git a/source/blender/makesrna/intern/rna_nodetree.c b/source/blender/makesrna/intern/rna_nodetree.c index 0caffb4867c..40c36b9bd44 100644 --- a/source/blender/makesrna/intern/rna_nodetree.c +++ b/source/blender/makesrna/intern/rna_nodetree.c @@ -3035,7 +3035,7 @@ static void rna_ShaderNodeScript_update(Main *bmain, Scene *scene, PointerRNA *p { bNodeTree *ntree = (bNodeTree *)ptr->id.data; bNode *node = (bNode *)ptr->data; - RenderEngineType *engine_type = RE_engines_find(scene->view_render.engine_id); + RenderEngineType *engine_type = RE_engines_find(scene->r.engine); if (engine_type && engine_type->update_script_node) { /* auto update node */ diff --git a/source/blender/makesrna/intern/rna_scene.c b/source/blender/makesrna/intern/rna_scene.c index 6f9b1ccebf5..339465d1ac0 100644 --- a/source/blender/makesrna/intern/rna_scene.c +++ b/source/blender/makesrna/intern/rna_scene.c @@ -1393,6 +1393,73 @@ static void rna_RenderSettings_views_format_set(PointerRNA *ptr, int value) rd->views_format = value; } +static void rna_RenderSettings_engine_set(PointerRNA *ptr, int value) +{ + RenderData *rd = (RenderData *)ptr->data; + RenderEngineType *type = BLI_findlink(&R_engines, value); + + if (type) { + BLI_strncpy_utf8(rd->engine, type->idname, sizeof(rd->engine)); + DEG_id_tag_update(ptr->id.data, DEG_TAG_COPY_ON_WRITE); + } +} + +static const EnumPropertyItem *rna_RenderSettings_engine_itemf( + bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) +{ + RenderEngineType *type; + EnumPropertyItem *item = NULL; + EnumPropertyItem tmp = {0, "", 0, "", ""}; + int a = 0, totitem = 0; + + for (type = R_engines.first; type; type = type->next, a++) { + tmp.value = a; + tmp.identifier = type->idname; + tmp.name = type->name; + RNA_enum_item_add(&item, &totitem, &tmp); + } + + RNA_enum_item_end(&item, &totitem); + *r_free = true; + + return item; +} + +static int rna_RenderSettings_engine_get(PointerRNA *ptr) +{ + RenderData *rd = (RenderData *)ptr->data; + RenderEngineType *type; + int a = 0; + + for (type = R_engines.first; type; type = type->next, a++) + if (STREQ(type->idname, rd->engine)) + return a; + + return 0; +} + +static void rna_RenderSettings_engine_update(Main *bmain, Scene *UNUSED(unused), PointerRNA *UNUSED(ptr)) +{ + ED_render_engine_changed(bmain); +} + +static int rna_RenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr)) +{ + return (BLI_listbase_count(&R_engines) > 1); +} + +static int rna_RenderSettings_use_shading_nodes_get(PointerRNA *ptr) +{ + Scene *scene = (Scene *)ptr->id.data; + return BKE_scene_use_new_shading_nodes(scene); +} + +static int rna_RenderSettings_use_spherical_stereo_get(PointerRNA *ptr) +{ + Scene *scene = (Scene *)ptr->id.data; + return BKE_scene_use_spherical_stereo(scene); +} + void rna_Scene_glsl_update(Main *UNUSED(bmain), Scene *UNUSED(scene), PointerRNA *ptr) { Scene *scene = (Scene *)ptr->id.data; @@ -5031,6 +5098,11 @@ static void rna_def_scene_render_data(BlenderRNA *brna) {0, NULL, 0, NULL, NULL} }; + static const EnumPropertyItem engine_items[] = { + {0, "BLENDER_EEVEE", 0, "Eevee", ""}, + {0, NULL, 0, NULL, NULL} + }; + static const EnumPropertyItem freestyle_thickness_items[] = { {R_LINE_THICKNESS_ABSOLUTE, "ABSOLUTE", 0, "Absolute", "Specify unit line thickness in pixels"}, {R_LINE_THICKNESS_RELATIVE, "RELATIVE", 0, "Relative", @@ -5772,6 +5844,30 @@ static void rna_def_scene_render_data(BlenderRNA *brna) RNA_def_property_enum_funcs(prop, NULL, "rna_RenderSettings_views_format_set", NULL); RNA_def_property_update(prop, NC_SPACE | ND_SPACE_VIEW3D, NULL); + /* engine */ + prop = RNA_def_property(srna, "engine", PROP_ENUM, PROP_NONE); + RNA_def_property_enum_items(prop, engine_items); + RNA_def_property_enum_funcs(prop, "rna_RenderSettings_engine_get", "rna_RenderSettings_engine_set", + "rna_RenderSettings_engine_itemf"); + RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); + RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering"); + RNA_def_property_update(prop, NC_WINDOW, "rna_RenderSettings_engine_update"); + + prop = RNA_def_property(srna, "has_multiple_engines", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_multiple_engines_get", NULL); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Multiple Engines", "More than one rendering engine is available"); + + prop = RNA_def_property(srna, "use_shading_nodes", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_shading_nodes_get", NULL); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Use Shading Nodes", "Active render engine uses new shading nodes system"); + + prop = RNA_def_property(srna, "use_spherical_stereo", PROP_BOOLEAN, PROP_NONE); + RNA_def_property_boolean_funcs(prop, "rna_RenderSettings_use_spherical_stereo_get", NULL); + RNA_def_property_clear_flag(prop, PROP_EDITABLE); + RNA_def_property_ui_text(prop, "Use Spherical Stereo", "Active render engine supports spherical stereo rendering"); + /* simplify */ prop = RNA_def_property(srna, "use_simplify", PROP_BOOLEAN, PROP_NONE); RNA_def_property_boolean_sdna(prop, NULL, "mode", R_SIMPLIFY); @@ -6345,12 +6441,6 @@ void RNA_def_scene(BlenderRNA *brna) RNA_def_property_struct_type(prop, "RenderSettings"); RNA_def_property_ui_text(prop, "Render Data", ""); - /* View Render */ - prop = RNA_def_property(srna, "view_render", PROP_POINTER, PROP_NONE); - RNA_def_property_flag(prop, PROP_NEVER_NULL); - RNA_def_property_struct_type(prop, "ViewRenderSettings"); - RNA_def_property_ui_text(prop, "View Render", ""); - /* Render Engine Data */ prop = RNA_def_property(srna, "layer_properties", PROP_COLLECTION, PROP_NONE); RNA_def_property_collection_sdna(prop, NULL, "layer_properties->data.group", NULL); diff --git a/source/blender/makesrna/intern/rna_space.c b/source/blender/makesrna/intern/rna_space.c index 2d7dc477fe3..47ae2cb8951 100644 --- a/source/blender/makesrna/intern/rna_space.c +++ b/source/blender/makesrna/intern/rna_space.c @@ -670,7 +670,7 @@ static int rna_SpaceView3D_viewport_shade_get(PointerRNA *ptr) { bScreen *screen = ptr->id.data; Scene *scene = WM_windows_scene_get_from_screen(G.main->wm.first, screen); - RenderEngineType *type = RE_engines_find(scene->view_render.engine_id); + RenderEngineType *type = RE_engines_find(scene->r.engine); View3D *v3d = (View3D *)ptr->data; if (BKE_scene_uses_blender_eevee(scene)) { @@ -702,7 +702,7 @@ static const EnumPropertyItem *rna_SpaceView3D_viewport_shade_itemf( { wmWindow *win = CTX_wm_window(C); Scene *scene = WM_window_get_active_scene(win); - RenderEngineType *type = RE_engines_find(scene->view_render.engine_id); + RenderEngineType *type = RE_engines_find(scene->r.engine); EnumPropertyItem *item = NULL; int totitem = 0; diff --git a/source/blender/makesrna/intern/rna_workspace.c b/source/blender/makesrna/intern/rna_workspace.c index 92c45998913..c48e80ad349 100644 --- a/source/blender/makesrna/intern/rna_workspace.c +++ b/source/blender/makesrna/intern/rna_workspace.c @@ -203,12 +203,6 @@ static void rna_def_workspace(BlenderRNA *brna) RNA_def_property_ui_text(prop, "Mode", "Object interaction mode used in this window"); #endif - /* View Render */ - prop = RNA_def_property(srna, "view_render", PROP_POINTER, PROP_NONE); - RNA_def_property_flag(prop, PROP_NEVER_NULL); - RNA_def_property_struct_type(prop, "ViewRenderSettings"); - RNA_def_property_ui_text(prop, "View Render", ""); - /* Flags */ prop = RNA_def_property(srna, "use_scene_settings", PROP_BOOLEAN, PROP_NONE); RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); |