30 {
ID_AC,
"ACTION", ICON_ACTION,
"Action",
""},
31 {
ID_AR,
"ARMATURE", ICON_ARMATURE_DATA,
"Armature",
""},
32 {
ID_BR,
"BRUSH", ICON_BRUSH_DATA,
"Brush",
""},
33 {
ID_CF,
"CACHEFILE", ICON_FILE,
"Cache File",
""},
34 {
ID_CA,
"CAMERA", ICON_CAMERA_DATA,
"Camera",
""},
35 {
ID_GR,
"COLLECTION", ICON_OUTLINER_COLLECTION,
"Collection",
""},
37 {
ID_CV,
"CURVES", ICON_CURVES_DATA,
"Curves",
""},
38 {
ID_VF,
"FONT", ICON_FONT_DATA,
"Font",
""},
39 {
ID_GD_LEGACY,
"GREASEPENCIL", ICON_GREASEPENCIL,
"Grease Pencil",
""},
40 {
ID_GP,
"GREASEPENCIL_V3", ICON_GREASEPENCIL,
"Grease Pencil v3",
""},
41 {
ID_IM,
"IMAGE", ICON_IMAGE_DATA,
"Image",
""},
42 {
ID_KE,
"KEY", ICON_SHAPEKEY_DATA,
"Key",
""},
43 {
ID_LT,
"LATTICE", ICON_LATTICE_DATA,
"Lattice",
""},
44 {
ID_LI,
"LIBRARY", ICON_LIBRARY_DATA_DIRECT,
"Library",
""},
45 {
ID_LA,
"LIGHT", ICON_LIGHT_DATA,
"Light",
""},
46 {
ID_LP,
"LIGHT_PROBE", ICON_LIGHTPROBE_SPHERE,
"Light Probe",
""},
47 {
ID_LS,
"LINESTYLE", ICON_LINE_DATA,
"Line Style",
""},
48 {
ID_MSK,
"MASK", ICON_MOD_MASK,
"Mask",
""},
49 {
ID_MA,
"MATERIAL", ICON_MATERIAL_DATA,
"Material",
""},
50 {
ID_ME,
"MESH", ICON_MESH_DATA,
"Mesh",
""},
51 {
ID_MB,
"META", ICON_META_DATA,
"Metaball",
""},
52 {
ID_MC,
"MOVIECLIP", ICON_TRACKER,
"Movie Clip",
""},
53 {
ID_NT,
"NODETREE", ICON_NODETREE,
"Node Tree",
""},
54 {
ID_OB,
"OBJECT", ICON_OBJECT_DATA,
"Object",
""},
55 {
ID_PC,
"PAINTCURVE", ICON_CURVE_BEZCURVE,
"Paint Curve",
""},
56 {
ID_PAL,
"PALETTE", ICON_COLOR,
"Palette",
""},
57 {
ID_PA,
"PARTICLE", ICON_PARTICLE_DATA,
"Particle",
""},
58 {
ID_PT,
"POINTCLOUD", ICON_POINTCLOUD_DATA,
"Point Cloud",
""},
59 {
ID_SCE,
"SCENE", ICON_SCENE_DATA,
"Scene",
""},
60 {
ID_SCR,
"SCREEN", ICON_WORKSPACE,
"Screen",
""},
61 {
ID_SO,
"SOUND", ICON_SOUND,
"Sound",
""},
62 {
ID_SPK,
"SPEAKER", ICON_SPEAKER,
"Speaker",
""},
63 {
ID_TXT,
"TEXT", ICON_TEXT,
"Text",
""},
64 {
ID_TE,
"TEXTURE", ICON_TEXTURE_DATA,
"Texture",
""},
65 {
ID_VO,
"VOLUME", ICON_VOLUME_DATA,
"Volume",
""},
66 {
ID_WM,
"WINDOWMANAGER", ICON_WINDOW,
"Window Manager",
""},
67 {
ID_WS,
"WORKSPACE", ICON_WORKSPACE,
"Workspace",
""},
68 {
ID_WO,
"WORLD", ICON_WORLD_DATA,
"World",
""},
69 {0,
nullptr, 0,
nullptr,
nullptr},
77 "Does nothing, prevents adding actual overrides (NOT USED)"},
82 "Replace value of reference by overriding one"},
87 "Stores and apply difference between reference and local value (NOT USED)"},
92 "Stores and apply difference between reference and local value (NOT USED)"},
97 "Stores and apply multiplication factor between reference and local value (NOT USED)"},
102 "Insert a new item into collection after the one referenced in "
103 "subitem_reference_name/_id or _index"},
108 "Insert a new item into collection before the one referenced in "
109 "subitem_reference_name/_id or _index (NOT USED)"},
110 {0,
nullptr, 0,
nullptr,
nullptr},
118 {
FILTER_ID_AC,
"filter_action", ICON_ACTION,
"Actions",
"Show Action data-blocks"},
123 "Show Armature data-blocks"},
124 {
FILTER_ID_BR,
"filter_brush", ICON_BRUSH_DATA,
"Brushes",
"Show Brushes data-blocks"},
125 {
FILTER_ID_CA,
"filter_camera", ICON_CAMERA_DATA,
"Cameras",
"Show Camera data-blocks"},
126 {
FILTER_ID_CF,
"filter_cachefile", ICON_FILE,
"Cache Files",
"Show Cache File data-blocks"},
127 {
FILTER_ID_CU_LEGACY,
"filter_curve", ICON_CURVE_DATA,
"Curves",
"Show Curve data-blocks"},
129 "filter_grease_pencil",
132 "Show Grease Pencil data-blocks"},
135 ICON_OUTLINER_COLLECTION,
137 "Show Collection data-blocks"},
142 "Show/hide Curves data-blocks"},
143 {
FILTER_ID_IM,
"filter_image", ICON_IMAGE_DATA,
"Images",
"Show Image data-blocks"},
144 {
FILTER_ID_LA,
"filter_light", ICON_LIGHT_DATA,
"Lights",
"Show Light data-blocks"},
146 "filter_light_probe",
147 ICON_OUTLINER_DATA_LIGHTPROBE,
149 "Show Light Probe data-blocks"},
153 "Freestyle Linestyles",
154 "Show Freestyle's Line Style data-blocks"},
155 {
FILTER_ID_LT,
"filter_lattice", ICON_LATTICE_DATA,
"Lattices",
"Show Lattice data-blocks"},
160 "Show Material data-blocks"},
161 {
FILTER_ID_MB,
"filter_metaball", ICON_META_DATA,
"Metaballs",
"Show Metaball data-blocks"},
166 "Show Movie Clip data-blocks"},
167 {
FILTER_ID_ME,
"filter_mesh", ICON_MESH_DATA,
"Meshes",
"Show Mesh data-blocks"},
168 {
FILTER_ID_MSK,
"filter_mask", ICON_MOD_MASK,
"Masks",
"Show Mask data-blocks"},
169 {
FILTER_ID_NT,
"filter_node_tree", ICON_NODETREE,
"Node Trees",
"Show Node Tree data-blocks"},
170 {
FILTER_ID_OB,
"filter_object", ICON_OBJECT_DATA,
"Objects",
"Show Object data-blocks"},
172 "filter_particle_settings",
174 "Particles Settings",
175 "Show Particle Settings data-blocks"},
176 {
FILTER_ID_PAL,
"filter_palette", ICON_COLOR,
"Palettes",
"Show Palette data-blocks"},
178 "filter_paint_curve",
181 "Show Paint Curve data-blocks"},
184 ICON_POINTCLOUD_DATA,
186 "Show/hide Point Cloud data-blocks"},
187 {
FILTER_ID_SCE,
"filter_scene", ICON_SCENE_DATA,
"Scenes",
"Show Scene data-blocks"},
188 {
FILTER_ID_SPK,
"filter_speaker", ICON_SPEAKER,
"Speakers",
"Show Speaker data-blocks"},
189 {
FILTER_ID_SO,
"filter_sound", ICON_SOUND,
"Sounds",
"Show Sound data-blocks"},
190 {
FILTER_ID_TE,
"filter_texture", ICON_TEXTURE_DATA,
"Textures",
"Show Texture data-blocks"},
191 {
FILTER_ID_TXT,
"filter_text", ICON_TEXT,
"Texts",
"Show Text data-blocks"},
192 {
FILTER_ID_VF,
"filter_font", ICON_FONT_DATA,
"Fonts",
"Show Font data-blocks"},
193 {
FILTER_ID_VO,
"filter_volume", ICON_VOLUME_DATA,
"Volumes",
"Show/hide Volume data-blocks"},
194 {
FILTER_ID_WO,
"filter_world", ICON_WORLD_DATA,
"Worlds",
"Show World data-blocks"},
199 "Show workspace data-blocks"},
200 {0,
nullptr, 0,
nullptr,
nullptr},
240void rna_ID_override_library_property_operation_refname_get(
PointerRNA *
ptr,
char *value)
247int rna_ID_override_library_property_operation_refname_length(
PointerRNA *
ptr)
254void rna_ID_override_library_property_operation_locname_get(
PointerRNA *
ptr,
char *value)
261int rna_ID_override_library_property_operation_locname_length(
PointerRNA *
ptr)
272 strcpy(value, id->name + 2);
278 return strlen(id->name + 2);
281static int rna_ID_rename(
ID *
self,
Main *bmain,
const char *new_name,
const int mode)
284 return int(
result.action);
294static int rna_ID_name_editable(
const PointerRNA *
ptr,
const char **r_info)
303 *r_info =
N_(
"Linked data-blocks cannot be renamed");
312 *r_info =
N_(
"Built-in fonts cannot be renamed");
319 *r_info =
N_(
"Datablocks not in global Main data-base cannot be renamed");
343 ID *
id =
static_cast<ID *
>(
ptr->data);
364 if (
UNLIKELY(base_type ==
nullptr)) {
367 if (base_type == &RNA_Action) {
370 if (base_type == &RNA_Armature) {
373 if (base_type == &RNA_Brush) {
376 if (base_type == &RNA_CacheFile) {
379 if (base_type == &RNA_Camera) {
382 if (base_type == &RNA_Curve) {
385 if (base_type == &RNA_GreasePencil) {
388 if (base_type == &RNA_GreasePencilv3) {
391 if (base_type == &RNA_Collection) {
394 if (base_type == &RNA_Image) {
397 if (base_type == &RNA_Key) {
400 if (base_type == &RNA_Light) {
403 if (base_type == &RNA_Library) {
406 if (base_type == &RNA_FreestyleLineStyle) {
409 if (base_type == &RNA_Curves) {
412 if (base_type == &RNA_Lattice) {
415 if (base_type == &RNA_Material) {
418 if (base_type == &RNA_MetaBall) {
421 if (base_type == &RNA_MovieClip) {
424 if (base_type == &RNA_Mesh) {
427 if (base_type == &RNA_Mask) {
430 if (base_type == &RNA_NodeTree) {
433 if (base_type == &RNA_Object) {
436 if (base_type == &RNA_ParticleSettings) {
439 if (base_type == &RNA_Palette) {
442 if (base_type == &RNA_PaintCurve) {
445 if (base_type == &RNA_PointCloud) {
448 if (base_type == &RNA_LightProbe) {
451 if (base_type == &RNA_Scene) {
454 if (base_type == &RNA_Screen) {
457 if (base_type == &RNA_Sound) {
460 if (base_type == &RNA_Speaker) {
463 if (base_type == &RNA_Texture) {
466 if (base_type == &RNA_Text) {
469 if (base_type == &RNA_VectorFont) {
472 if (base_type == &RNA_Volume) {
475 if (base_type == &RNA_WorkSpace) {
478 if (base_type == &RNA_World) {
481 if (base_type == &RNA_WindowManager) {
496 return &RNA_Armature;
502 return &RNA_CacheFile;
506 return &RNA_GreasePencil;
508 return &RNA_GreasePencilv3;
510 return &RNA_Collection;
522 return &RNA_FreestyleLineStyle;
526 return &RNA_Material;
528 return &RNA_MetaBall;
530 return &RNA_MovieClip;
536 return &RNA_NodeTree;
540 return &RNA_ParticleSettings;
544 return &RNA_PaintCurve;
546 return &RNA_PointCloud;
548 return &RNA_LightProbe;
562 return &RNA_VectorFont;
566 return &RNA_WindowManager;
570 return &RNA_WorkSpace;
590 return &
id->properties;
593int rna_ID_is_runtime_editable(
const PointerRNA *
ptr,
const char **r_info)
601 "Cannot edit 'runtime' status of non-blendfile data-blocks, as they are by definition "
671 const char *identifier,
680 if (validate(&dummy_ptr,
data,
nullptr) != 0) {
691 "Registering id property class: '%s' is too long, maximum length is %d",
710static ID *rna_ID_copy(
ID *
id,
Main *bmain)
714 if (newid !=
nullptr) {
724static void rna_ID_asset_mark(
ID *
id)
732static void rna_ID_asset_generate_preview(
ID *
id,
bContext *
C)
740static void rna_ID_asset_clear(
ID *
id)
750 ID *destination =
static_cast<ID *
>(
ptr->data);
757 "Asset data can only be assigned to assets. Use asset_mark() to mark as an asset.");
762 if (asset_data ==
nullptr) {
780static ID *rna_ID_override_create(
ID *
id,
Main *bmain,
bool remap_local_usages)
786 if (remap_local_usages) {
790 ID *local_id =
nullptr;
801 if (remap_local_usages) {
811static ID *rna_ID_override_hierarchy_create(
ID *
id,
815 ID *id_instance_hint,
816 bool do_fully_editable)
824 ID *id_root_override =
nullptr;
847 return id_root_override;
850static void rna_ID_override_library_operations_update(
ID *
id,
870static void rna_ID_override_library_reset(
ID *
id,
875 bool set_system_override)
892static void rna_ID_override_library_destroy(
ID *
id,
914static bool rna_ID_override_library_resync(
ID *
id,
921 bool do_hierarchy_enforce,
922 bool do_whole_hierarchy)
932 "Data-block '%s' is not a library override, or not part of a library override hierarchy",
945 override_resync_residual_storage,
946 do_hierarchy_enforce,
958 override_library, rna_path, &created);
968static void rna_ID_override_library_properties_remove(
IDOverrideLibrary *override_library,
987 const char *subitem_refname,
988 const char *subitem_locname,
991 int subitem_refindex,
992 int subitem_locindex)
1001 use_id ? std::optional(subitem_refid) : std::nullopt,
1002 use_id ? std::optional(subitem_locid) : std::nullopt,
1016static void rna_ID_override_library_property_operations_remove(
1036 Curve *cu = ob->data;
1037 freedisplist(&cu->disp);
1060 allow_flag = OB_RECALC_ALL | PSYS_RECALC;
1072 if (
flag & ~allow_flag) {
1076 allow_flag ?
N_(
"%s is not compatible with the specified 'refresh' options") :
1077 N_(
"%s is not compatible with any 'refresh' options"),
1086static void rna_ID_user_clear(
ID *
id)
1092static void rna_ID_user_remap(
ID *
id,
Main *bmain,
ID *new_id)
1094 if ((
GS(id->
name) ==
GS(new_id->
name)) && (
id != new_id)) {
1103static ID *rna_ID_make_local(
1104 ID *
self,
Main *bmain,
bool ,
bool clear_liboverride,
bool clear_asset_data)
1108 if (clear_asset_data) {
1128static AnimData *rna_ID_animation_data_create(
ID *
id,
Main *bmain)
1135static void rna_ID_animation_data_free(
ID *
id,
Main *bmain)
1145 return &
id->py_instance;
1164 ID *
id =
ptr->owner_id;
1167 if (totcol && (key >= 0 && key < *totcol)) {
1178static void rna_IDMaterials_append_id(
ID *
id,
Main *bmain,
Material *ma)
1190 const short totcol_orig = *totcol;
1192 index_i += (*totcol);
1195 if ((index_i < 0) || (index_i >= (*totcol))) {
1202 if (*totcol == totcol_orig) {
1214static void rna_IDMaterials_clear_id(
ID *
id,
Main *bmain)
1223static void rna_Library_filepath_set(
PointerRNA *
ptr,
const char *value)
1234 ID *
id =
ptr->owner_id;
1237 if (
id !=
nullptr) {
1261 ID *
id =
ptr->owner_id;
1264 if (
id !=
nullptr) {
1270 values[0] = prv_img->w[
size];
1271 values[1] = prv_img->h[
size];
1276 ID *
id =
ptr->owner_id;
1279 if (
id !=
nullptr) {
1285 if (values[0] && values[1]) {
1289 prv_img->w[
size] = values[0];
1290 prv_img->h[
size] = values[1];
1296static int rna_ImagePreview_pixels_get_length(
const PointerRNA *
ptr,
1300 ID *
id =
ptr->owner_id;
1303 if (
id !=
nullptr) {
1316 ID *
id =
ptr->owner_id;
1319 if (
id !=
nullptr) {
1325 memcpy(values, prv_img->rect[
size], prv_img->w[
size] * prv_img->h[
size] *
sizeof(
uint));
1330 ID *
id =
ptr->owner_id;
1333 if (
id !=
nullptr) {
1337 memcpy(prv_img->rect[
size], values, prv_img->w[
size] * prv_img->h[
size] *
sizeof(
uint));
1341static int rna_ImagePreview_pixels_float_get_length(
const PointerRNA *
ptr,
1345 ID *
id =
ptr->owner_id;
1350 if (
id !=
nullptr) {
1363 ID *
id =
ptr->owner_id;
1367 const size_t len = prv_img->w[
size] * prv_img->h[
size] * 4;
1372 if (
id !=
nullptr) {
1378 for (
i = 0;
i <
len;
i++) {
1379 values[
i] =
data[
i] * (1.0f / 255.0f);
1383static void rna_ImagePreview_pixels_float_set(
PointerRNA *
ptr,
1384 const float *values,
1387 ID *
id =
ptr->owner_id;
1391 const size_t len = prv_img->w[
size] * prv_img->h[
size] * 4;
1396 if (
id !=
nullptr) {
1400 for (
i = 0;
i <
len;
i++) {
1406static void rna_ImagePreview_is_image_custom_set(
PointerRNA *
ptr,
bool value)
1411static void rna_ImagePreview_image_size_get(
PointerRNA *
ptr,
int *values)
1416static void rna_ImagePreview_image_size_set(
PointerRNA *
ptr,
const int *values)
1421static int rna_ImagePreview_image_pixels_get_length(
const PointerRNA *
ptr,
1427static void rna_ImagePreview_image_pixels_get(
PointerRNA *
ptr,
int *values)
1432static void rna_ImagePreview_image_pixels_set(
PointerRNA *
ptr,
const int *values)
1437static int rna_ImagePreview_image_pixels_float_get_length(
const PointerRNA *
ptr,
1443static void rna_ImagePreview_image_pixels_float_get(
PointerRNA *
ptr,
float *values)
1448static void rna_ImagePreview_image_pixels_float_set(
PointerRNA *
ptr,
const float *values)
1453static void rna_ImagePreview_is_icon_custom_set(
PointerRNA *
ptr,
bool value)
1458static void rna_ImagePreview_icon_size_get(
PointerRNA *
ptr,
int *values)
1463static void rna_ImagePreview_icon_size_set(
PointerRNA *
ptr,
const int *values)
1468static int rna_ImagePreview_icon_pixels_get_length(
const PointerRNA *
ptr,
1474static void rna_ImagePreview_icon_pixels_get(
PointerRNA *
ptr,
int *values)
1479static void rna_ImagePreview_icon_pixels_set(
PointerRNA *
ptr,
const int *values)
1484static int rna_ImagePreview_icon_pixels_float_get_length(
const PointerRNA *
ptr,
1490static void rna_ImagePreview_icon_pixels_float_get(
PointerRNA *
ptr,
float *values)
1495static void rna_ImagePreview_icon_pixels_float_set(
PointerRNA *
ptr,
const float *values)
1506static void rna_ImagePreview_icon_reload(
PreviewImage *prv)
1526 if (
ptr ==
nullptr) {
1532static void rna_Library_version_get(
PointerRNA *
ptr,
int *value)
1535 value[0] =
lib->runtime->versionfile / 100;
1536 value[1] =
lib->runtime->versionfile % 100;
1537 value[2] =
lib->runtime->subversionfile;
1572 srna,
"ID Property",
"Property that stores arbitrary, user defined properties");
1628 "rna_IDPArray_begin",
1629 "rna_iterator_array_next",
1630 "rna_iterator_array_end",
1631 "rna_iterator_array_get",
1632 "rna_IDPArray_length",
1660 srna,
"rna_PropertyGroup_register",
"rna_PropertyGroup_unregister",
nullptr);
1687 parm =
RNA_def_pointer(func,
"material",
"Material",
"",
"Material to add");
1695 parm =
RNA_def_pointer(func,
"material",
"Material",
"",
"Material to remove");
1718 "True if this preview image has been modified by py script, "
1719 "and is no more auto-generated by Blender");
1722 srna,
"image_size", 2,
nullptr, 0, 0,
"Image Size",
"Width and height in pixels", 0, 0);
1725 prop,
"rna_ImagePreview_image_size_get",
"rna_ImagePreview_image_size_set",
nullptr);
1733 prop,
"rna_ImagePreview_image_pixels_get",
"rna_ImagePreview_image_pixels_set",
nullptr);
1739 prop,
"Float Image Pixels",
"Image pixels components, as floats (RGBA concatenated values)");
1742 "rna_ImagePreview_image_pixels_float_get",
1743 "rna_ImagePreview_image_pixels_float_set",
1751 "True if this preview icon has been modified by py script, "
1752 "and is no more auto-generated by Blender");
1755 srna,
"icon_size", 2,
nullptr, 0, 0,
"Icon Size",
"Width and height in pixels", 0, 0);
1758 prop,
"rna_ImagePreview_icon_size_get",
"rna_ImagePreview_icon_size_set",
nullptr);
1766 prop,
"rna_ImagePreview_icon_pixels_get",
"rna_ImagePreview_icon_pixels_set",
nullptr);
1772 prop,
"Float Icon Pixels",
"Icon pixels components, as floats (RGBA concatenated values)");
1775 "rna_ImagePreview_icon_pixels_float_get",
1776 "rna_ImagePreview_icon_pixels_float_set",
1785 "Unique integer identifying this preview as an icon (zero means invalid)",
1805 "For templates, prevents the user from removing predefined operation (NOT USED)"},
1810 "Prevents the user from modifying that override operation (NOT USED)"},
1812 "IDPOINTER_MATCH_REFERENCE",
1815 "The ID pointer overridden by this operation is expected to match the reference hierarchy"},
1817 "IDPOINTER_ITEM_USE_ID",
1819 "ID Item Use ID Pointer",
1820 "RNA collections of IDs only, the reference to the item also uses the ID pointer itself, "
1821 "not only its name"},
1822 {0,
nullptr, 0,
nullptr,
nullptr},
1825 srna =
RNA_def_struct(brna,
"IDOverrideLibraryPropertyOperation",
nullptr);
1827 "ID Library Override Property Operation",
1828 "Description of an override operation over an overridden property");
1835 "What override operation is performed");
1839 srna,
"flag", override_library_property_flag_items, 0,
"Flags",
"Status flags");
1844 "subitem_reference_name",
1847 "Subitem Reference Name",
1848 "Used to handle changes into collection");
1851 "rna_ID_override_library_property_operation_refname_get",
1852 "rna_ID_override_library_property_operation_refname_length",
1856 "subitem_local_name",
1859 "Subitem Local Name",
1860 "Used to handle changes into collection");
1863 "rna_ID_override_library_property_operation_locname_get",
1864 "rna_ID_override_library_property_operation_locname_length",
1868 "subitem_reference_id",
1870 "Subitem Reference ID",
1871 "Collection of IDs only, used to disambiguate between potential IDs with "
1872 "same name from different libraries");
1879 "Collection of IDs only, used to disambiguate between potential IDs with "
1880 "same name from different libraries");
1884 "subitem_reference_index",
1888 "Subitem Reference Index",
1889 "Used to handle changes into collection",
1895 "subitem_local_index",
1899 "Subitem Local Index",
1900 "Used to handle changes into collection",
1913 srna =
RNA_def_struct(brna,
"IDOverrideLibraryPropertyOperations",
nullptr);
1918 func =
RNA_def_function(srna,
"add",
"rna_ID_override_library_property_operations_add");
1926 "What override operation is performed");
1932 "Use ID Pointer Subitem",
1933 "Whether the found or created liboverride operation should use ID pointers or not");
1935 "subitem_reference_name",
1938 "Subitem Reference Name",
1939 "Used to handle insertions or ID replacements into collection");
1941 "subitem_local_name",
1944 "Subitem Local Name",
1945 "Used to handle insertions or ID replacements into collection");
1947 "subitem_reference_id",
1949 "Subitem Reference ID",
1950 "Used to handle ID replacements into collection");
1955 "Used to handle ID replacements into collection");
1957 "subitem_reference_index",
1961 "Subitem Reference Index",
1962 "Used to handle insertions or ID replacements into collection",
1966 "subitem_local_index",
1970 "Subitem Local Index",
1971 "Used to handle insertions or ID replacements into collection",
1976 "IDOverrideLibraryPropertyOperation",
1978 "Created operation");
1981 func =
RNA_def_function(srna,
"remove",
"rna_ID_override_library_property_operations_remove");
1986 "IDOverrideLibraryPropertyOperation",
1988 "Override operation to be deleted");
1997 srna =
RNA_def_struct(brna,
"IDOverrideLibraryProperty",
nullptr);
1999 srna,
"ID Library Override Property",
"Description of an overridden property");
2008 "RNA path leading to that property, from owning ID");
2013 "IDOverrideLibraryPropertyOperation",
2015 "List of overriding operations for a property");
2029 srna =
RNA_def_struct(brna,
"IDOverrideLibraryProperties",
nullptr);
2034 func =
RNA_def_function(srna,
"add",
"rna_ID_override_library_properties_add");
2036 func,
"Add a property to the override library when it doesn't exist yet");
2040 "IDOverrideLibraryProperty",
2042 "Newly created override property or existing one");
2045 func,
"rna_path",
nullptr, 256,
"RNA Path",
"RNA-Path of the property to add");
2048 func =
RNA_def_function(srna,
"remove",
"rna_ID_override_library_properties_remove");
2053 "IDOverrideLibraryProperty",
2055 "Override property to be deleted");
2068 srna,
"ID Library Override",
"Struct gathering all data needed by overridden linked IDs");
2071 srna,
"reference",
"ID",
"Reference ID",
"Linked ID used as reference by this override");
2078 "Hierarchy Root ID",
2079 "Library override ID used as root of the override hierarchy this ID is a member of");
2085 "Whether this library override is defined as part of a library "
2086 "hierarchy, or as a single, isolated and autonomous override");
2092 "is_system_override",
2094 "Is System Override",
2095 "Whether this library override exists only for the override hierarchy, "
2096 "or if it is actually editable by the user");
2103 "IDOverrideLibraryProperty",
2105 "List of overridden properties");
2110 func =
RNA_def_function(srna,
"operations_update",
"rna_ID_override_library_operations_update");
2113 "Update the library override operations based on the "
2114 "differences between this override ID and its reference");
2118 "Reset this override to match again its linked reference ID");
2125 "Also reset all the dependencies of this override to match their reference linked IDs");
2127 "set_system_override",
2130 "Reset all user-editable overrides as (non-editable) system overrides");
2132 func =
RNA_def_function(srna,
"destroy",
"rna_ID_override_library_destroy");
2134 func,
"Delete this override ID and remap its usages to its linked reference ID instead");
2140 "Also delete all the dependencies of this override and remap their usages to "
2141 "their reference linked IDs");
2145 func,
"Resync the data-block and its sub-hierarchy, or the whole hierarchy if requested");
2148 func,
"success",
false,
"Success",
"Whether the resync process was successful or not");
2155 "The scene to operate in (for contextual things like keeping active object active, ensuring "
2156 "all overridden objects remain instantiated, etc.)");
2162 "The view layer to operate in (same usage as the ``scene`` data, in case "
2163 "it is not provided the scene's collection will be used instead)");
2169 "Collection where to store objects that are instantiated in any other collection anymore "
2170 "(garbage collection, will be created if needed and none is provided)");
2172 "do_hierarchy_enforce",
2175 "Enforce restoring the dependency hierarchy between data-blocks to match the "
2176 "one from the reference linked hierarchy (WARNING: if some ID pointers have "
2177 "been purposedly overridden, these will be reset to their default value)");
2180 "do_whole_hierarchy",
2183 "Resync the whole hierarchy this data-block belongs to, not only its own sub-hierarchy");
2198 {0,
nullptr, 0,
nullptr,
nullptr},
2206 "Never rename an exisitng ID whose name would conflict, the currently renamed ID will get "
2207 "a numeric suffix appended to its new name"},
2212 "Always rename an exisitng ID whose name would conflict, ensuring that the currently "
2213 "renamed ID will get requested name"},
2217 "Rename If Same Root",
2218 "Only rename an exisitng ID whose name would conflict if its name root (everything besides "
2219 "the numerical suffix) is the same as the existing name of the currently renamed ID"},
2220 {0,
nullptr, 0,
nullptr,
nullptr},
2228 "The ID was not renamed, e.g. because it is already named as requested"},
2230 "UNCHANGED_COLLISION",
2232 "Unchanged Due to Collision",
2233 "The ID was not renamed, because requested name would have collided with another existing "
2234 "ID's name, and the automatically adjusted name was the same as the current ID's name"},
2236 "RENAMED_NO_COLLISION",
2238 "Renamed Without Collision",
2239 "The ID was renamed as requested, without creating any name collision"},
2241 "RENAMED_COLLISION_ADJUSTED",
2243 "Renamed With Collision",
2244 "The ID was renamed with adjustement of the requested name, to avoid a name collision"},
2246 "RENAMED_COLLISION_FORCED",
2248 "Renamed Enforced With Collision",
2249 "The ID was renamed as requested, also renaming another ID to avoid a name collision"},
2250 {0,
nullptr, 0,
nullptr,
nullptr},
2257 "Base type for data-blocks, defining a unique name, linking from other libraries "
2258 "and garbage collection");
2265 prop,
"Name",
"Unique data-block ID name (within a same type and library)");
2275 prop,
"Full Name",
"Unique data-block ID name, including library one is any");
2292 "A session-wide unique identifier for the data block that remains the "
2293 "same across renames and internal reallocations, unchanged when reloading the file");
2300 "Whether this ID is runtime-only, evaluated data-block, or actual data from .blend file");
2309 "Actual data-block from .blend file (Main database) that generated that evaluated one");
2331 "Indicates whether an extra user is set or not (mainly for internal/debug usages)");
2340 "This data-block is not an independent one, but is actually a sub-data of another ID "
2341 "(typical example: root node trees or master collections)");
2348 "This data-block is a place-holder for missing linked data (i.e. it is "
2349 "[an override of] a linked data that could not be found anymore)");
2358 "This data-block is runtime data, i.e. it won't be saved in .blend "
2359 "file. Note that e.g. evaluated IDs are always runtime, so this value "
2360 "is only editable for data-blocks in Main data-base.");
2367 "This data-block is editable in the user interface. Linked datablocks "
2368 "are not editable, except if they were loaded as editable assets.");
2375 "Tools can use this to tag data for their own purposes "
2376 "(initial state is undefined)");
2390 "library_weak_reference",
2391 "LibraryWeakReference",
2392 "Library Weak Reference",
2393 "Weak reference to a data-block in another library .blend file (used to "
2394 "re-use already appended data instead of appending new copies)");
2405 srna,
"override_library",
"IDOverrideLibrary",
"Library Override",
"Library override data");
2414 "Preview image and icon of this data-block (always None if not supported "
2415 "for this type of data)");
2423 func,
"More refined handling in case the new name collides with another ID's name");
2430 "New name to rename the ID to, if empty will re-use the current ID name");
2437 "How to handle name collision, in case the requested new name is already "
2438 "used by another ID of the same type");
2441 rename_result_items,
2444 "How did the renaming of the data-block went on");
2450 "Get corresponding evaluated ID from the given dependency graph. Note that this does not "
2451 "ensure the dependency graph is fully evaluated, it just returns the result of the last "
2454 func,
"depsgraph",
"Depsgraph",
"",
"Dependency graph to perform lookup in");
2462 "Create a copy of this data-block (not supported for all data-blocks). "
2463 "The result is added to the Blend-File Data (Main database), with all references to other "
2464 "data-blocks ensured to be from within the same Blend-File Data.");
2472 "Enable easier reuse of the data-block through the Asset Browser, with the help of "
2473 "customizable metadata (like previews, descriptions and tags)");
2478 "Delete all asset metadata and turn the asset data-block back into a normal data-block");
2480 func =
RNA_def_function(srna,
"asset_generate_preview",
"rna_ID_asset_generate_preview");
2482 func,
"Generate preview image (might be scheduled in a background thread)");
2485 func =
RNA_def_function(srna,
"override_create",
"rna_ID_override_create");
2487 "Create an overridden local copy of this linked data-block (not "
2488 "supported for all data-blocks)");
2490 parm =
RNA_def_pointer(func,
"id",
"ID",
"",
"New overridden local copy of the ID");
2493 "remap_local_usages",
2496 "Whether local usages of the linked ID should be remapped to the new "
2497 "library override of it");
2499 func =
RNA_def_function(srna,
"override_hierarchy_create",
"rna_ID_override_hierarchy_create");
2502 "Create an overridden local copy of this linked data-block, and most of its dependencies "
2503 "when it is a Collection or and Object");
2505 parm =
RNA_def_pointer(func,
"id",
"ID",
"",
"New overridden local copy of the root ID");
2508 func,
"scene",
"Scene",
"",
"In which scene the new overrides should be instantiated");
2514 "In which view layer the new overrides should be instantiated");
2520 "Another ID (usually an Object or Collection) used as a hint to decide where to "
2521 "instantiate the new overrides");
2523 "do_fully_editable",
2526 "Make all library overrides generated by this call fully editable by the user "
2527 "(none will be 'system overrides')");
2531 "Clear the user count of a data-block so its not saved, "
2532 "on reload the data will be removed");
2536 func,
"Replace all usage in the .blend file of this ID by new given one");
2544 "Make this datablock local, return local one "
2545 "(may be a copy of the original, in case it is also indirectly used)");
2547 parm =
RNA_def_boolean(func,
"clear_proxy",
true,
"",
"Deprecated, has no effect");
2549 "clear_liboverride",
2552 "Remove potential library override data from the newly made local data");
2558 "Remove potential asset metadata so the newly local data-block is not treated as asset "
2559 "data-block and won't show up in asset libraries");
2560 parm =
RNA_def_pointer(func,
"id",
"ID",
"",
"This ID, or the new ID if it was copied");
2565 "Count the number of times that ID uses/references given one");
2574 "Number of usages/references of given id by current data-block",
2579 func =
RNA_def_function(srna,
"animation_data_create",
"rna_ID_animation_data_create");
2582 func,
"Create animation data to this ID, note that not all ID types support this");
2583 parm =
RNA_def_pointer(func,
"anim_data",
"AnimData",
"",
"New animation data or nullptr");
2586 func =
RNA_def_function(srna,
"animation_data_clear",
"rna_ID_animation_data_free");
2593 "Tag the ID to update its display data, "
2594 "e.g. when calling :class:`bpy.types.Scene.update`");
2595 RNA_def_enum_flag(func,
"refresh", update_flag_items, 0,
"",
"Type of updates to perform");
2597 func =
RNA_def_function(srna,
"preview_ensure",
"BKE_previewimg_id_ensure");
2599 "Ensure that this ID has preview data (if ID type supports it)");
2601 func,
"preview_image",
"ImagePreview",
"",
"The existing or created preview");
2642 "Version of Blender the library .blend was saved with",
2652 "Library Overrides Need resync",
2653 "True if this library contains library overrides that are linked in "
2654 "current blendfile, and that had to be recursively resynced on load "
2655 "(it is recommended to open and re-save that library blendfile then)");
2662 "Datablocks in this library are editable despite being linked. Used by "
2663 "brush assets and their dependencies.");
2678 "LibraryWeakReference",
2679 "Read-only external reference to a linked data-block and its library file");
2691 "Full ID name in the library .blend file (including the two leading 'id type' chars)");
2714 srna,
"Unknown Type",
"Stub RNA type used for pointers to unknown or internal data");
AnimData * BKE_animdata_ensure_id(ID *id)
bool id_can_have_animdata(const ID *id)
void BKE_animdata_free(ID *id, bool do_id_user)
int BKE_icon_preview_ensure(struct ID *id, struct PreviewImage *preview)
#define IDP_IDPArray(prop)
void BKE_id_newptr_and_tag_clear(ID *id)
void BKE_id_delete(Main *bmain, void *idv) ATTR_NONNULL()
ID * BKE_id_copy_for_use_in_bmain(Main *bmain, const ID *id)
void BKE_id_full_name_get(char name[MAX_ID_FULL_NAME], const ID *id, char separator_char)
void id_fake_user_set(ID *id)
IDNewNameResult BKE_id_rename(Main &bmain, ID &id, blender::StringRefNull name, const IDNewNameMode mode=IDNewNameMode::RenameExistingNever)
bool BKE_lib_id_make_local(Main *bmain, ID *id, int flags)
void id_us_ensure_real(ID *id)
void id_fake_user_clear(ID *id)
void id_us_clear_real(ID *id)
@ LIB_ID_MAKELOCAL_ASSET_DATA_CLEAR
void BKE_main_id_tag_all(Main *mainvar, int tag, bool value)
bool BKE_id_is_in_global_main(ID *id)
ID * BKE_lib_override_library_create_from_id(Main *bmain, ID *reference_id, bool do_tagged_remap)
void BKE_lib_override_library_property_operation_delete(IDOverrideLibraryProperty *liboverride_property, IDOverrideLibraryPropertyOperation *liboverride_property_operation)
IDOverrideLibraryProperty * BKE_lib_override_library_property_get(IDOverrideLibrary *liboverride, const char *rna_path, bool *r_created)
IDOverrideLibraryPropertyOperation * BKE_lib_override_library_property_operation_get(IDOverrideLibraryProperty *liboverride_property, short operation, const char *subitem_refname, const char *subitem_locname, const std::optional< ID * > &subitem_refid, const std::optional< ID * > &subitem_locid, int subitem_refindex, int subitem_locindex, bool strict, bool *r_strict, bool *r_created)
void BKE_lib_override_library_id_reset(Main *bmain, ID *id_root, bool do_reset_system_override)
bool BKE_lib_override_library_resync(Main *bmain, Scene *scene, ViewLayer *view_layer, ID *id_root, Collection *override_resync_residual_storage, bool do_hierarchy_enforce, BlendFileReadReport *reports)
bool BKE_lib_override_library_create(Main *bmain, Scene *scene, ViewLayer *view_layer, Library *owner_library, ID *id_root_reference, ID *id_hierarchy_root_reference, ID *id_instance_hint, ID **r_id_root_override, const bool do_fully_editable)
void BKE_lib_override_library_id_hierarchy_reset(Main *bmain, ID *id_root, bool do_reset_system_override)
void BKE_lib_override_library_operations_create(Main *bmain, ID *local, int *r_report_flags)
void BKE_lib_override_library_make_local(Main *bmain, ID *id)
void BKE_lib_override_library_delete(Main *bmain, ID *id_root)
void BKE_lib_override_library_property_delete(IDOverrideLibrary *liboverride, IDOverrideLibraryProperty *liboverride_property)
void void BKE_libblock_remap(Main *bmain, void *old_idv, void *new_idv, int remap_flags) ATTR_NONNULL(1
@ ID_REMAP_SKIP_NEVER_NULL_USAGE
@ ID_REMAP_SKIP_INDIRECT_USAGE
void BKE_library_filepath_set(Main *bmain, Library *lib, const char *filepath)
@ LIBRARY_TAG_RESYNC_REQUIRED
void BKE_main_ensure_invariants(Main &bmain, std::optional< blender::Span< ID * > > modified_ids=std::nullopt)
General operations, lookup, etc. for materials.
void BKE_id_material_clear(Main *bmain, ID *id)
void BKE_id_material_assign(Main *bmain, ID *id, Material *ma, short act)
short * BKE_id_material_len_p(ID *id)
void BKE_id_material_append(Main *bmain, ID *id, Material *ma)
Material * BKE_id_material_pop(Main *bmain, ID *id, int index)
PreviewImage * BKE_previewimg_id_get(const ID *id)
void BKE_previewimg_ensure(PreviewImage *prv, int size)
PreviewImage * BKE_previewimg_id_ensure(ID *id)
void BKE_previewimg_clear_single(PreviewImage *prv, enum eIconSizes size)
void BKE_previewimg_clear(PreviewImage *prv)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
bool BKE_vfont_is_builtin(const VFont *vfont)
bool BKE_vfont_to_curve(Object *ob, eEditFontMode mode)
int BLI_findindex(const ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int char char int int int int size_t BLI_strnlen(const char *str, size_t maxlen) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
external readfile function prototypes.
#define BLT_I18NCONTEXT_ID_ID
void BPY_free_srna_pytype(StructRNA *srna)
#define BPy_BEGIN_ALLOW_THREADS
#define BPy_END_ALLOW_THREADS
void DEG_id_tag_update(ID *id, unsigned int flags)
void DEG_relations_tag_update(Main *bmain)
T * DEG_get_original(T *id)
T * DEG_get_evaluated(const Depsgraph *depsgraph, T *id)
ID and Library types, which are fundamental for SDNA.
@ LIBOVERRIDE_OP_FLAG_MANDATORY
@ LIBOVERRIDE_OP_FLAG_LOCKED
@ LIBOVERRIDE_OP_FLAG_IDPOINTER_ITEM_USE_ID
@ LIBOVERRIDE_OP_FLAG_IDPOINTER_MATCH_REFERENCE
@ ID_TAG_COPIED_ON_EVAL_FINAL_RESULT
@ LIBOVERRIDE_OP_SUBTRACT
@ LIBOVERRIDE_OP_MULTIPLY
@ LIBOVERRIDE_OP_INSERT_BEFORE
@ LIBOVERRIDE_OP_INSERT_AFTER
@ LIBOVERRIDE_FLAG_NO_HIERARCHY
@ LIBOVERRIDE_FLAG_SYSTEM_DEFINED
@ RPT_ERROR_INVALID_INPUT
short RNA_type_to_ID_code(const StructRNA *type)
StructRNA * ID_code_to_RNA_type(short idcode)
#define RNA_MAX_ARRAY_DIMENSION
@ STRUCT_NO_DATABLOCK_IDPROPERTIES
int(*)(PointerRNA *ptr, void *data, bool *have_function) StructValidateFunc
int(*)(bContext *C, PointerRNA *ptr, FunctionRNA *func, ParameterList *list) StructCallbackFunc
void(*)(void *data) StructFreeFunc
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
@ PROPOVERRIDE_NO_COMPARISON
@ PROP_PATH_SUPPORTS_BLEND_RELATIVE
#define ND_LIB_OVERRIDE_CHANGED
BMesh const char void * data
BPy_StructRNA * depsgraph
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
float length(VecOp< float, D >) RET
#define FILTER_ID_GD_LEGACY
#define ID_IS_OVERRIDE_LIBRARY_REAL(_id)
#define ID_IS_OVERRIDABLE_LIBRARY(_id)
#define FILTER_ID_CU_LEGACY
#define ID_IS_LINKED(_id)
#define ID_IS_EDITABLE(_id)
DEG_id_tag_update_ex(cb_data->bmain, cb_data->owner_id, ID_RECALC_TAG_FOR_UNDO|ID_RECALC_SYNC_TO_EVAL)
void * MEM_calloc_arrayN(size_t len, size_t size, const char *str)
MINLINE unsigned char unit_float_to_uchar_clamp(float val)
bool copy_to_id(const AssetMetaData *asset_data, ID *destination)
void generate_preview(const bContext *C, ID *id)
static void rna_def_ID_override_library(BlenderRNA *brna)
static const EnumPropertyItem rna_enum_override_library_property_operation_items[]
static void rna_def_ID_override_library_property_operation(BlenderRNA *brna)
static void rna_def_ID_override_library_property(BlenderRNA *brna)
const EnumPropertyItem rna_enum_id_type_items[]
static void rna_def_ID_override_library_properties(BlenderRNA *brna, PropertyRNA *cprop)
const IDFilterEnumPropertyItem rna_enum_id_type_filter_items[]
void RNA_def_ID(BlenderRNA *brna)
static void rna_def_ID(BlenderRNA *brna)
static void rna_def_library_weak_reference(BlenderRNA *brna)
static void rna_def_ID_properties(BlenderRNA *brna)
static void rna_def_idproperty_wrap_ptr(BlenderRNA *brna)
static void rna_def_image_preview(BlenderRNA *brna)
static void rna_def_library(BlenderRNA *brna)
static void rna_def_ID_override_library_property_operations(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_ID_materials(BlenderRNA *brna)
const StructRNA * RNA_struct_base_child_of(const StructRNA *type, const StructRNA *parent_type)
void rna_iterator_array_begin(CollectionPropertyIterator *iter, PointerRNA *ptr, void *data, int itemsize, int length, bool free_ptr, IteratorSkipFunc skip)
const char * RNA_struct_identifier(const StructRNA *type)
PointerRNA RNA_pointer_create_discrete(ID *id, StructRNA *type, void *data)
PointerRNA RNA_pointer_create_with_parent(const PointerRNA &parent, StructRNA *type, void *data)
PointerRNA RNA_id_pointer_create(ID *id)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_struct_name_property(StructRNA *srna, PropertyRNA *prop)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, const int maxlen, const char *ui_name, const char *ui_description)
void RNA_def_struct_refine_func(StructRNA *srna, const char *refine)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_flag(StructRNA *srna, int flag)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_function_return(FunctionRNA *func, PropertyRNA *ret)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_ui_icon(PropertyRNA *prop, int icon, int consecutive)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_struct_register_funcs(StructRNA *srna, const char *reg, const char *unreg, const char *instance)
void RNA_def_property_dynamic_array_funcs(PropertyRNA *prop, const char *getlength)
void RNA_def_property_multi_array(PropertyRNA *prop, int dimension, const int length[])
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_int_vector(StructOrFunctionRNA *cont_, const char *identifier, const int len, const int *default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_array(PropertyRNA *prop, int length)
PropertyRNA * RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_property_string_maxlength(PropertyRNA *prop, int maxlength)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
StructRNA * RNA_def_struct_ptr(BlenderRNA *brna, const char *identifier, StructRNA *srnafrom)
void RNA_def_property_editable_func(PropertyRNA *prop, const char *editable)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
PropertyRNA * RNA_def_enum_flag(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_pointer_funcs(PropertyRNA *prop, const char *get, const char *set, const char *type_fn, const char *poll)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, const bool default_value, const char *ui_name, const char *ui_description)
void RNA_struct_free(BlenderRNA *brna, StructRNA *srna)
PropertyRNA * RNA_def_collection(StructOrFunctionRNA *cont_, const char *identifier, const char *type, const char *ui_name, const char *ui_description)
void RNA_def_struct_idprops_func(StructRNA *srna, const char *idproperties)
void RNA_def_property_translation_context(PropertyRNA *prop, const char *context)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_subtype(PropertyRNA *prop, PropertySubType subtype)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
void RNA_def_property_boolean_negative_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t booleanbit)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
int rna_ID_name_length(PointerRNA *ptr)
void rna_ID_name_get(PointerRNA *ptr, char *value)
StructRNA * rna_ID_refine(PointerRNA *ptr)
StructRNA * rna_PropertyGroup_refine(PointerRNA *ptr)
bool rna_IDMaterials_assign_int(PointerRNA *ptr, int key, const PointerRNA *assign_ptr)
void ** rna_ID_instance(PointerRNA *ptr)
bool rna_PropertyGroup_unregister(Main *bmain, StructRNA *type)
IDProperty ** rna_PropertyGroup_idprops(PointerRNA *ptr)
StructRNA * rna_PropertyGroup_register(Main *bmain, ReportList *reports, void *data, const char *identifier, StructValidateFunc validate, StructCallbackFunc call, StructFreeFunc free)
void rna_ID_fake_user_set(PointerRNA *ptr, bool value)
StructRNA RNA_PropertyGroup
void rna_ID_name_set(PointerRNA *ptr, const char *value)
IDProperty ** rna_ID_idprops(PointerRNA *ptr)
const EnumPropertyItem rna_enum_dummy_DEFAULT_items[]
@ RENAMED_COLLISION_FORCED
@ RENAMED_COLLISION_ADJUSTED
char * subitem_local_name
char * subitem_reference_name
struct ID * hierarchy_root
struct AssetMetaData * asset_data
IDOverrideLibrary * override_library
static DynamicLibrary lib
void WM_main_add_notifier(uint type, void *reference)
void WM_lib_reload(Library *lib, bContext *C, ReportList *reports)