Changeset View
Changeset View
Standalone View
Standalone View
source/blender/makesrna/intern/rna_layer.c
| Show First 20 Lines • Show All 799 Lines • ▼ Show 20 Lines | |||||
| { | { | ||||
| SceneLayer *scene_layer = (SceneLayer *)ptr->data; | SceneLayer *scene_layer = (SceneLayer *)ptr->data; | ||||
| if (value.data) | if (value.data) | ||||
| scene_layer->basact = BKE_scene_layer_base_find(scene_layer, (Object *)value.data); | scene_layer->basact = BKE_scene_layer_base_find(scene_layer, (Object *)value.data); | ||||
| else | else | ||||
| scene_layer->basact = NULL; | scene_layer->basact = NULL; | ||||
| } | } | ||||
| static void rna_SceneLayer_name_set(PointerRNA *ptr, const char *value) | static IDProperty *rna_SceneLayer_idprops(PointerRNA *ptr, bool create) | ||||
| { | { | ||||
| Scene *scene = (Scene *)ptr->id.data; | |||||
| SceneLayer *scene_layer = (SceneLayer *)ptr->data; | SceneLayer *scene_layer = (SceneLayer *)ptr->data; | ||||
| char oldname[sizeof(scene_layer->name)]; | |||||
| BLI_strncpy(oldname, scene_layer->name, sizeof(scene_layer->name)); | |||||
| BLI_strncpy_utf8(scene_layer->name, value, sizeof(scene_layer->name)); | |||||
| BLI_uniquename(&scene->render_layers, scene_layer, DATA_("SceneLayer"), '.', offsetof(SceneLayer, name), sizeof(scene_layer->name)); | |||||
| if (scene->nodetree) { | if (create && !scene_layer->id_properties) { | ||||
| bNode *node; | IDPropertyTemplate val = {0}; | ||||
| int index = BLI_findindex(&scene->render_layers, scene_layer); | scene_layer->id_properties = IDP_New(IDP_GROUP, &val, "SceneLayer ID properties"); | ||||
| for (node = scene->nodetree->nodes.first; node; node = node->next) { | |||||
| if (node->type == CMP_NODE_R_LAYERS && node->id == NULL) { | |||||
| if (node->custom1 == index) | |||||
| BLI_strncpy(node->name, scene_layer->name, NODE_MAXSTR); | |||||
| } | |||||
| } | } | ||||
| return scene_layer->id_properties; | |||||
| } | } | ||||
| static void rna_SceneLayer_update_render_passes(ID *id) | |||||
| { | |||||
| Scene *scene = (Scene *)id; | |||||
| if (scene->nodetree) | |||||
| ntreeCompositUpdateRLayers(scene->nodetree); | |||||
| } | } | ||||
| static PointerRNA rna_SceneLayer_objects_get(CollectionPropertyIterator *iter) | static PointerRNA rna_SceneLayer_objects_get(CollectionPropertyIterator *iter) | ||||
| { | { | ||||
| ListBaseIterator *internal = &iter->internal.listbase; | ListBaseIterator *internal = &iter->internal.listbase; | ||||
| /* we are actually iterating a ObjectBase list, so override get */ | /* we are actually iterating a ObjectBase list, so override get */ | ||||
| Base *base = (Base *)internal->link; | Base *base = (Base *)internal->link; | ||||
| ▲ Show 20 Lines • Show All 1,318 Lines • ▼ Show 20 Lines | |||||
| { | { | ||||
| FunctionRNA *func; | FunctionRNA *func; | ||||
| StructRNA *srna; | StructRNA *srna; | ||||
| PropertyRNA *prop; | PropertyRNA *prop; | ||||
| srna = RNA_def_struct(brna, "SceneLayer", NULL); | srna = RNA_def_struct(brna, "SceneLayer", NULL); | ||||
| RNA_def_struct_ui_text(srna, "Render Layer", "Render layer"); | RNA_def_struct_ui_text(srna, "Render Layer", "Render layer"); | ||||
| RNA_def_struct_ui_icon(srna, ICON_RENDERLAYERS); | RNA_def_struct_ui_icon(srna, ICON_RENDERLAYERS); | ||||
| RNA_def_struct_idprops_func(srna, "rna_SceneLayer_idprops"); | |||||
| prop = RNA_def_property(srna, "name", PROP_STRING, PROP_NONE); | rna_def_render_layer_common(srna, 1); | ||||
| RNA_def_property_string_funcs(prop, NULL, NULL, "rna_SceneLayer_name_set"); | |||||
| RNA_def_property_ui_text(prop, "Name", "Render layer name"); | func = RNA_def_function(srna, "update_render_passes", "rna_SceneLayer_update_render_passes"); | ||||
| RNA_def_struct_name_property(srna, prop); | RNA_def_function_ui_description(func, "Requery the enabled render passes from the render engine"); | ||||
| RNA_def_property_update(prop, NC_SCENE | ND_LAYER_CONTENT, NULL); | RNA_def_function_flag(func, FUNC_USE_SELF_ID | FUNC_NO_SELF); | ||||
| prop = RNA_def_property(srna, "collections", PROP_COLLECTION, PROP_NONE); | prop = RNA_def_property(srna, "collections", PROP_COLLECTION, PROP_NONE); | ||||
| RNA_def_property_collection_sdna(prop, NULL, "layer_collections", NULL); | RNA_def_property_collection_sdna(prop, NULL, "layer_collections", NULL); | ||||
| RNA_def_property_struct_type(prop, "LayerCollection"); | RNA_def_property_struct_type(prop, "LayerCollection"); | ||||
| RNA_def_property_ui_text(prop, "Layer Collections", ""); | RNA_def_property_ui_text(prop, "Layer Collections", ""); | ||||
| rna_def_layer_collections(brna, prop); | rna_def_layer_collections(brna, prop); | ||||
| prop = RNA_def_property(srna, "objects", PROP_COLLECTION, PROP_NONE); | prop = RNA_def_property(srna, "objects", PROP_COLLECTION, PROP_NONE); | ||||
| RNA_def_property_collection_sdna(prop, NULL, "object_bases", NULL); | RNA_def_property_collection_sdna(prop, NULL, "object_bases", NULL); | ||||
| RNA_def_property_struct_type(prop, "Object"); | RNA_def_property_struct_type(prop, "Object"); | ||||
| RNA_def_property_collection_funcs(prop, NULL, NULL, NULL, "rna_SceneLayer_objects_get", NULL, NULL, NULL, NULL); | RNA_def_property_collection_funcs(prop, NULL, NULL, NULL, "rna_SceneLayer_objects_get", NULL, NULL, NULL, NULL); | ||||
| RNA_def_property_ui_text(prop, "Objects", "All the objects in this layer"); | RNA_def_property_ui_text(prop, "Objects", "All the objects in this layer"); | ||||
| rna_def_layer_objects(brna, prop); | rna_def_layer_objects(brna, prop); | ||||
| /* layer options */ | /* layer options */ | ||||
| prop = RNA_def_property(srna, "use", PROP_BOOLEAN, PROP_NONE); | prop = RNA_def_property(srna, "use", PROP_BOOLEAN, PROP_NONE); | ||||
| RNA_def_property_boolean_sdna(prop, NULL, "flag", SCENE_LAYER_RENDER); | RNA_def_property_boolean_sdna(prop, NULL, "flag", SCENE_LAYER_RENDER); | ||||
| RNA_def_property_ui_text(prop, "Enabled", "Disable or enable the render layer"); | RNA_def_property_ui_text(prop, "Enabled", "Disable or enable the render layer"); | ||||
| RNA_def_property_update(prop, NC_SCENE | ND_LAYER, NULL); | RNA_def_property_update(prop, NC_SCENE | ND_LAYER, NULL); | ||||
| prop = RNA_def_property(srna, "use_freestyle", PROP_BOOLEAN, PROP_NONE); | |||||
| RNA_def_property_boolean_sdna(prop, NULL, "flag", SCENE_LAYER_FREESTYLE); | |||||
| RNA_def_property_ui_text(prop, "Freestyle", "Render stylized strokes in this Layer"); | |||||
| RNA_def_property_update(prop, NC_SCENE | ND_LAYER, NULL); | |||||
| /* Freestyle */ | |||||
| rna_def_freestyle_settings(brna); | |||||
| prop = RNA_def_property(srna, "freestyle_settings", PROP_POINTER, PROP_NONE); | |||||
| RNA_def_property_flag(prop, PROP_NEVER_NULL); | |||||
| RNA_def_property_pointer_sdna(prop, NULL, "freestyleConfig"); | |||||
| RNA_def_property_struct_type(prop, "FreestyleSettings"); | |||||
| RNA_def_property_ui_text(prop, "Freestyle Settings", ""); | |||||
| /* Override settings */ | /* Override settings */ | ||||
| prop = RNA_def_property(srna, "engine_overrides", PROP_COLLECTION, PROP_NONE); | prop = RNA_def_property(srna, "engine_overrides", PROP_COLLECTION, PROP_NONE); | ||||
| RNA_def_property_collection_sdna(prop, NULL, "properties->data.group", NULL); | RNA_def_property_collection_sdna(prop, NULL, "properties->data.group", NULL); | ||||
| RNA_def_property_struct_type(prop, "SceneLayerSettings"); | RNA_def_property_struct_type(prop, "SceneLayerSettings"); | ||||
| RNA_def_property_ui_text(prop, "Layer Settings", "Override of engine specific render settings"); | RNA_def_property_ui_text(prop, "Layer Settings", "Override of engine specific render settings"); | ||||
| /* debug update routine */ | /* debug update routine */ | ||||
| func = RNA_def_function(srna, "update", "rna_SceneLayer_update_tagged"); | func = RNA_def_function(srna, "update", "rna_SceneLayer_update_tagged"); | ||||
| Show All 25 Lines | |||||