Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/rna_layer.c
| Show First 20 Lines • Show All 66 Lines • ▼ Show 20 Lines | |||||
| #include "RNA_access.h" | #include "RNA_access.h" | ||||
| #include "BKE_idprop.h" | #include "BKE_idprop.h" | ||||
| #include "BKE_layer.h" | #include "BKE_layer.h" | ||||
| #include "BKE_node.h" | #include "BKE_node.h" | ||||
| #include "BKE_scene.h" | #include "BKE_scene.h" | ||||
| #include "BKE_mesh.h" | #include "BKE_mesh.h" | ||||
| #include "BKE_scene.h" | |||||
| #include "DEG_depsgraph_build.h" | #include "DEG_depsgraph_build.h" | ||||
| #include "DEG_depsgraph_query.h" | #include "DEG_depsgraph_query.h" | ||||
| static StructRNA *rna_SceneCollection_refine(PointerRNA *ptr) | static StructRNA *rna_SceneCollection_refine(PointerRNA *ptr) | ||||
| { | { | ||||
| SceneCollection *scene_collection = (SceneCollection *)ptr->data; | SceneCollection *scene_collection = (SceneCollection *)ptr->data; | ||||
| switch (scene_collection->type) { | switch (scene_collection->type) { | ||||
| ▲ Show 20 Lines • Show All 848 Lines • ▼ Show 20 Lines | |||||
| static char *rna_ViewRenderSettings_path(PointerRNA *UNUSED(ptr)) | static char *rna_ViewRenderSettings_path(PointerRNA *UNUSED(ptr)) | ||||
| { | { | ||||
| return BLI_sprintfN("viewport_render"); | return BLI_sprintfN("viewport_render"); | ||||
| } | } | ||||
| static void rna_ViewRenderSettings_engine_set(PointerRNA *ptr, int value) | static void rna_ViewRenderSettings_engine_set(PointerRNA *ptr, int value) | ||||
| { | { | ||||
| ViewRender *view_render = (ViewRender *)ptr->data; | ViewRender *view_render = (ViewRender *)ptr->data; | ||||
| RenderEngineType *type = BLI_findlink(&R_engines, value); | |||||
| if (type) { | BKE_viewrender_set_engine_by_index(view_render, value); | ||||
| 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); | DEG_id_tag_update(ptr->id.data, DEG_TAG_COPY_ON_WRITE); | ||||
| } | } | ||||
| } | |||||
| static const EnumPropertyItem *rna_ViewRenderSettings_engine_itemf( | static const EnumPropertyItem *rna_ViewRenderSettings_engine_itemf( | ||||
| bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) | bContext *UNUSED(C), PointerRNA *UNUSED(ptr), PropertyRNA *UNUSED(prop), bool *r_free) | ||||
| { | { | ||||
| RenderEngineType *type; | RenderEngineType *type; | ||||
| EnumPropertyItem *item = NULL; | EnumPropertyItem *item = NULL; | ||||
| EnumPropertyItem tmp = {0, "", 0, "", ""}; | EnumPropertyItem tmp = {0, "", 0, "", ""}; | ||||
| int a = 0, totitem = 0; | int a = 0, totitem = 0; | ||||
| Show All 9 Lines | static const EnumPropertyItem *rna_ViewRenderSettings_engine_itemf( | ||||
| *r_free = true; | *r_free = true; | ||||
| return item; | return item; | ||||
| } | } | ||||
| static int rna_ViewRenderSettings_engine_get(PointerRNA *ptr) | static int rna_ViewRenderSettings_engine_get(PointerRNA *ptr) | ||||
| { | { | ||||
| ViewRender *view_render = (ViewRender *)ptr->data; | ViewRender *view_render = (ViewRender *)ptr->data; | ||||
| RenderEngineType *type; | |||||
| int a = 0; | |||||
| for (type = R_engines.first; type; type = type->next, a++) | return BKE_viewrender_get_engine_by_index(view_render); | ||||
| 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)) | static void rna_ViewRenderSettings_engine_update(bContext *C, PointerRNA *UNUSED(ptr)) | ||||
| { | { | ||||
| ED_render_engine_changed(bmain); | ED_render_engine_changed(C, CTX_data_main(C)); | ||||
| } | } | ||||
| static int rna_ViewRenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr)) | static int rna_ViewRenderSettings_multiple_engines_get(PointerRNA *UNUSED(ptr)) | ||||
| { | { | ||||
| return (BLI_listbase_count(&R_engines) > 1); | return (BLI_listbase_count(&R_engines) > 1); | ||||
| } | } | ||||
campbellbarton: The state of the flag doesn't matter - it could be enabled or disabled AFAICS.
Also, this… | |||||
| static int rna_ViewRenderSettings_use_shading_nodes_get(PointerRNA *ptr) | static int rna_ViewRenderSettings_use_shading_nodes_get(PointerRNA *ptr) | ||||
| { | { | ||||
| ViewRender *view_render = (ViewRender *)ptr->data; | ViewRender *view_render = (ViewRender *)ptr->data; | ||||
| return BKE_viewrender_use_new_shading_nodes(view_render); | return BKE_viewrender_use_new_shading_nodes(view_render); | ||||
| } | } | ||||
| static int rna_ViewRenderSettings_use_spherical_stereo_get(PointerRNA *ptr) | static int rna_ViewRenderSettings_use_spherical_stereo_get(PointerRNA *ptr) | ||||
| { | { | ||||
| ▲ Show 20 Lines • Show All 1,208 Lines • ▼ Show 20 Lines | static void rna_def_scene_view_render(BlenderRNA *brna) | ||||
| /* engine */ | /* engine */ | ||||
| prop = RNA_def_property(srna, "engine", PROP_ENUM, PROP_NONE); | prop = RNA_def_property(srna, "engine", PROP_ENUM, PROP_NONE); | ||||
| RNA_def_property_enum_items(prop, engine_items); | RNA_def_property_enum_items(prop, engine_items); | ||||
| RNA_def_property_enum_funcs(prop, "rna_ViewRenderSettings_engine_get", "rna_ViewRenderSettings_engine_set", | RNA_def_property_enum_funcs(prop, "rna_ViewRenderSettings_engine_get", "rna_ViewRenderSettings_engine_set", | ||||
| "rna_ViewRenderSettings_engine_itemf"); | "rna_ViewRenderSettings_engine_itemf"); | ||||
| RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); | RNA_def_property_clear_flag(prop, PROP_ANIMATABLE); | ||||
| RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering"); | RNA_def_property_ui_text(prop, "Engine", "Engine to use for rendering"); | ||||
| RNA_def_property_flag(prop, PROP_CONTEXT_UPDATE); | |||||
| RNA_def_property_update(prop, NC_WINDOW, "rna_ViewRenderSettings_engine_update"); | RNA_def_property_update(prop, NC_WINDOW, "rna_ViewRenderSettings_engine_update"); | ||||
| prop = RNA_def_property(srna, "has_multiple_engines", PROP_BOOLEAN, PROP_NONE); | 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_boolean_funcs(prop, "rna_ViewRenderSettings_multiple_engines_get", NULL); | ||||
| RNA_def_property_clear_flag(prop, PROP_EDITABLE); | RNA_def_property_clear_flag(prop, PROP_EDITABLE); | ||||
| RNA_def_property_ui_text(prop, "Multiple Engines", "More than one rendering engine is available"); | 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); | prop = RNA_def_property(srna, "use_shading_nodes", PROP_BOOLEAN, PROP_NONE); | ||||
| ▲ Show 20 Lines • Show All 98 Lines • Show Last 20 Lines | |||||
The state of the flag doesn't matter - it could be enabled or disabled AFAICS.
Also, this function could be generalized so we don't need to write a new one for each struct member. SequenceSearchData can store an offset. then access the member with POINTER_OFFSET
See: source/blender/editors/armature/armature_select.c:933: for similar code.