36 {
ID_AC,
"ACTION", ICON_ACTION,
"Action",
""},
37 {
ID_AR,
"ARMATURE", ICON_ARMATURE_DATA,
"Armature",
""},
38 {
ID_BR,
"BRUSH", ICON_BRUSH_DATA,
"Brush",
""},
39 {
ID_CF,
"CACHEFILE", ICON_FILE,
"Cache File",
""},
40 {
ID_CA,
"CAMERA", ICON_CAMERA_DATA,
"Camera",
""},
41 {
ID_GR,
"COLLECTION", ICON_OUTLINER_COLLECTION,
"Collection",
""},
43 {
ID_CV,
"CURVES", ICON_CURVES_DATA,
"Curves",
""},
44 {
ID_VF,
"FONT", ICON_FONT_DATA,
"Font",
""},
45 {
ID_GD_LEGACY,
"GREASEPENCIL", ICON_GREASEPENCIL,
"Grease Pencil",
""},
46 {
ID_GP,
"GREASEPENCIL_V3", ICON_GREASEPENCIL,
"Grease Pencil v3",
""},
47 {
ID_IM,
"IMAGE", ICON_IMAGE_DATA,
"Image",
""},
48 {
ID_KE,
"KEY", ICON_SHAPEKEY_DATA,
"Key",
""},
49 {
ID_LT,
"LATTICE", ICON_LATTICE_DATA,
"Lattice",
""},
50 {
ID_LI,
"LIBRARY", ICON_LIBRARY_DATA_DIRECT,
"Library",
""},
51 {
ID_LA,
"LIGHT", ICON_LIGHT_DATA,
"Light",
""},
52 {
ID_LP,
"LIGHT_PROBE", ICON_LIGHTPROBE_SPHERE,
"Light Probe",
""},
53 {
ID_LS,
"LINESTYLE", ICON_LINE_DATA,
"Line Style",
""},
54 {
ID_MSK,
"MASK", ICON_MOD_MASK,
"Mask",
""},
55 {
ID_MA,
"MATERIAL", ICON_MATERIAL_DATA,
"Material",
""},
56 {
ID_ME,
"MESH", ICON_MESH_DATA,
"Mesh",
""},
57 {
ID_MB,
"META", ICON_META_DATA,
"Metaball",
""},
58 {
ID_MC,
"MOVIECLIP", ICON_TRACKER,
"Movie Clip",
""},
59 {
ID_NT,
"NODETREE", ICON_NODETREE,
"Node Tree",
""},
60 {
ID_OB,
"OBJECT", ICON_OBJECT_DATA,
"Object",
""},
61 {
ID_PC,
"PAINTCURVE", ICON_CURVE_BEZCURVE,
"Paint Curve",
""},
62 {
ID_PAL,
"PALETTE", ICON_COLOR,
"Palette",
""},
63 {
ID_PA,
"PARTICLE", ICON_PARTICLE_DATA,
"Particle",
""},
64 {
ID_PT,
"POINTCLOUD", ICON_POINTCLOUD_DATA,
"Point Cloud",
""},
65 {
ID_SCE,
"SCENE", ICON_SCENE_DATA,
"Scene",
""},
66 {
ID_SCR,
"SCREEN", ICON_WORKSPACE,
"Screen",
""},
67 {
ID_SO,
"SOUND", ICON_SOUND,
"Sound",
""},
68 {
ID_SPK,
"SPEAKER", ICON_SPEAKER,
"Speaker",
""},
69 {
ID_TXT,
"TEXT", ICON_TEXT,
"Text",
""},
70 {
ID_TE,
"TEXTURE", ICON_TEXTURE_DATA,
"Texture",
""},
71 {
ID_VO,
"VOLUME", ICON_VOLUME_DATA,
"Volume",
""},
72 {
ID_WM,
"WINDOWMANAGER", ICON_WINDOW,
"Window Manager",
""},
73 {
ID_WS,
"WORKSPACE", ICON_WORKSPACE,
"Workspace",
""},
74 {
ID_WO,
"WORLD", ICON_WORLD_DATA,
"World",
""},
75 {0,
nullptr, 0,
nullptr,
nullptr},
83 "Does nothing, prevents adding actual overrides (NOT USED)"},
88 "Replace value of reference by overriding one"},
93 "Stores and apply difference between reference and local value (NOT USED)"},
98 "Stores and apply difference between reference and local value (NOT USED)"},
103 "Stores and apply multiplication factor between reference and local value (NOT USED)"},
108 "Insert a new item into collection after the one referenced in "
109 "subitem_reference_name/_id or _index"},
114 "Insert a new item into collection before the one referenced in "
115 "subitem_reference_name/_id or _index (NOT USED)"},
116 {0,
nullptr, 0,
nullptr,
nullptr},
124 {
FILTER_ID_AC,
"filter_action", ICON_ACTION,
"Actions",
"Show Action data-blocks"},
129 "Show Armature data-blocks"},
130 {
FILTER_ID_BR,
"filter_brush", ICON_BRUSH_DATA,
"Brushes",
"Show Brushes data-blocks"},
131 {
FILTER_ID_CA,
"filter_camera", ICON_CAMERA_DATA,
"Cameras",
"Show Camera data-blocks"},
132 {
FILTER_ID_CF,
"filter_cachefile", ICON_FILE,
"Cache Files",
"Show Cache File data-blocks"},
133 {
FILTER_ID_CU_LEGACY,
"filter_curve", ICON_CURVE_DATA,
"Curves",
"Show Curve data-blocks"},
135 "filter_grease_pencil",
138 "Show Grease pencil data-blocks"},
141 ICON_OUTLINER_COLLECTION,
143 "Show Collection data-blocks"},
148 "Show/hide Curves data-blocks"},
149 {
FILTER_ID_IM,
"filter_image", ICON_IMAGE_DATA,
"Images",
"Show Image data-blocks"},
150 {
FILTER_ID_LA,
"filter_light", ICON_LIGHT_DATA,
"Lights",
"Show Light data-blocks"},
152 "filter_light_probe",
153 ICON_OUTLINER_DATA_LIGHTPROBE,
155 "Show Light Probe data-blocks"},
159 "Freestyle Linestyles",
160 "Show Freestyle's Line Style data-blocks"},
161 {
FILTER_ID_LT,
"filter_lattice", ICON_LATTICE_DATA,
"Lattices",
"Show Lattice data-blocks"},
166 "Show Material data-blocks"},
167 {
FILTER_ID_MB,
"filter_metaball", ICON_META_DATA,
"Metaballs",
"Show Metaball data-blocks"},
172 "Show Movie Clip data-blocks"},
173 {
FILTER_ID_ME,
"filter_mesh", ICON_MESH_DATA,
"Meshes",
"Show Mesh data-blocks"},
174 {
FILTER_ID_MSK,
"filter_mask", ICON_MOD_MASK,
"Masks",
"Show Mask data-blocks"},
175 {
FILTER_ID_NT,
"filter_node_tree", ICON_NODETREE,
"Node Trees",
"Show Node Tree data-blocks"},
176 {
FILTER_ID_OB,
"filter_object", ICON_OBJECT_DATA,
"Objects",
"Show Object data-blocks"},
178 "filter_particle_settings",
180 "Particles Settings",
181 "Show Particle Settings data-blocks"},
182 {
FILTER_ID_PAL,
"filter_palette", ICON_COLOR,
"Palettes",
"Show Palette data-blocks"},
184 "filter_paint_curve",
187 "Show Paint Curve data-blocks"},
190 ICON_POINTCLOUD_DATA,
192 "Show/hide Point Cloud data-blocks"},
193 {
FILTER_ID_SCE,
"filter_scene", ICON_SCENE_DATA,
"Scenes",
"Show Scene data-blocks"},
194 {
FILTER_ID_SPK,
"filter_speaker", ICON_SPEAKER,
"Speakers",
"Show Speaker data-blocks"},
195 {
FILTER_ID_SO,
"filter_sound", ICON_SOUND,
"Sounds",
"Show Sound data-blocks"},
196 {
FILTER_ID_TE,
"filter_texture", ICON_TEXTURE_DATA,
"Textures",
"Show Texture data-blocks"},
197 {
FILTER_ID_TXT,
"filter_text", ICON_TEXT,
"Texts",
"Show Text data-blocks"},
198 {
FILTER_ID_VF,
"filter_font", ICON_FONT_DATA,
"Fonts",
"Show Font data-blocks"},
199 {
FILTER_ID_VO,
"filter_volume", ICON_VOLUME_DATA,
"Volumes",
"Show/hide Volume data-blocks"},
200 {
FILTER_ID_WO,
"filter_world", ICON_WORLD_DATA,
"Worlds",
"Show World data-blocks"},
205 "Show workspace data-blocks"},
206 {0,
nullptr, 0,
nullptr,
nullptr},
244void rna_ID_override_library_property_operation_refname_get(
PointerRNA *
ptr,
char *value)
251int rna_ID_override_library_property_operation_refname_length(
PointerRNA *
ptr)
258void rna_ID_override_library_property_operation_locname_get(
PointerRNA *
ptr,
char *value)
265int rna_ID_override_library_property_operation_locname_length(
PointerRNA *
ptr)
276 strcpy(value, id->name + 2);
282 return strlen(id->name + 2);
285static int rna_ID_rename(
ID *
self,
Main *bmain,
const char *new_name,
const int mode)
288 return int(result.action);
298static int rna_ID_name_editable(
const PointerRNA *
ptr,
const char **r_info)
307 *r_info =
N_(
"Linked data-blocks cannot be renamed");
316 *r_info =
N_(
"Built-in fonts cannot be renamed");
323 *r_info =
N_(
"Datablocks not in global Main data-base cannot be renamed");
368 if (
UNLIKELY(base_type ==
nullptr)) {
371 if (base_type == &RNA_Action) {
374 if (base_type == &RNA_Armature) {
377 if (base_type == &RNA_Brush) {
380 if (base_type == &RNA_CacheFile) {
383 if (base_type == &RNA_Camera) {
386 if (base_type == &RNA_Curve) {
389 if (base_type == &RNA_GreasePencil) {
392 if (base_type == &RNA_GreasePencilv3) {
395 if (base_type == &RNA_Collection) {
398 if (base_type == &RNA_Image) {
401 if (base_type == &RNA_Key) {
404 if (base_type == &RNA_Light) {
407 if (base_type == &RNA_Library) {
410 if (base_type == &RNA_FreestyleLineStyle) {
413 if (base_type == &RNA_Curves) {
416 if (base_type == &RNA_Lattice) {
419 if (base_type == &RNA_Material) {
422 if (base_type == &RNA_MetaBall) {
425 if (base_type == &RNA_MovieClip) {
428 if (base_type == &RNA_Mesh) {
431 if (base_type == &RNA_Mask) {
434 if (base_type == &RNA_NodeTree) {
437 if (base_type == &RNA_Object) {
440 if (base_type == &RNA_ParticleSettings) {
443 if (base_type == &RNA_Palette) {
446 if (base_type == &RNA_PaintCurve) {
449 if (base_type == &RNA_PointCloud) {
452 if (base_type == &RNA_LightProbe) {
455 if (base_type == &RNA_Scene) {
458 if (base_type == &RNA_Screen) {
461 if (base_type == &RNA_Sound) {
464 if (base_type == &RNA_Speaker) {
467 if (base_type == &RNA_Texture) {
470 if (base_type == &RNA_Text) {
473 if (base_type == &RNA_VectorFont) {
476 if (base_type == &RNA_Volume) {
479 if (base_type == &RNA_WorkSpace) {
482 if (base_type == &RNA_World) {
485 if (base_type == &RNA_WindowManager) {
500 return &RNA_Armature;
506 return &RNA_CacheFile;
510 return &RNA_GreasePencil;
512 return &RNA_GreasePencilv3;
514 return &RNA_Collection;
526 return &RNA_FreestyleLineStyle;
530 return &RNA_Material;
532 return &RNA_MetaBall;
534 return &RNA_MovieClip;
540 return &RNA_NodeTree;
544 return &RNA_ParticleSettings;
548 return &RNA_PaintCurve;
550 return &RNA_PointCloud;
552 return &RNA_LightProbe;
566 return &RNA_VectorFont;
570 return &RNA_WindowManager;
574 return &RNA_WorkSpace;
594 return &
id->properties;
597int rna_ID_is_runtime_editable(
const PointerRNA *
ptr,
const char **r_info)
605 "Cannot edit 'runtime' status of non-blendfile data-blocks, as they are by definition "
670 const char *identifier,
679 if (validate(&dummy_ptr, data,
nullptr) != 0) {
690 "Registering id property class: '%s' is too long, maximum length is %d",
709static ID *rna_ID_copy(
ID *
id,
Main *bmain)
713 if (newid !=
nullptr) {
722static void rna_ID_asset_mark(
ID *
id)
730static void rna_ID_asset_generate_preview(
ID *
id,
bContext *C)
738static void rna_ID_asset_clear(
ID *
id)
752 if (destination->asset_data ==
nullptr) {
755 "Asset data can only be assigned to assets. Use asset_mark() to mark as an asset.");
760 if (asset_data ==
nullptr) {
770 reports,
RPT_ERROR,
"'%s' is of a type that cannot be an asset", destination->name + 2);
778static ID *rna_ID_override_create(
ID *
id,
Main *bmain,
bool remap_local_usages)
784 if (remap_local_usages) {
788 ID *local_id =
nullptr;
799 if (remap_local_usages) {
809static ID *rna_ID_override_hierarchy_create(
ID *
id,
813 ID *id_instance_hint,
814 bool do_fully_editable)
822 ID *id_root_override =
nullptr;
845 return id_root_override;
848static void rna_ID_override_library_operations_update(
ID *
id,
868static void rna_ID_override_library_reset(
ID *
id,
873 bool set_system_override)
890static void rna_ID_override_library_destroy(
ID *
id,
912static bool rna_ID_override_library_resync(
ID *
id,
919 bool do_hierarchy_enforce,
920 bool do_whole_hierarchy)
922 BLI_assert(id->override_library == override_library);
930 "Data-block '%s' is not a library override, or not part of a library override hierarchy",
943 override_resync_residual_storage,
944 do_hierarchy_enforce,
956 override_library, rna_path, &created);
959 BKE_report(reports,
RPT_DEBUG,
"No new override property created, property already exists");
966static void rna_ID_override_library_properties_remove(
IDOverrideLibrary *override_library,
985 const char *subitem_refname,
986 const char *subitem_locname,
989 int subitem_refindex,
990 int subitem_locindex)
999 use_id ? std::optional(subitem_refid) : std::nullopt,
1000 use_id ? std::optional(subitem_locid) : std::nullopt,
1007 BKE_report(reports,
RPT_DEBUG,
"No new override operation created, operation already exists");
1014static void rna_ID_override_library_property_operations_remove(
1034 Curve *cu = ob->data;
1035 freedisplist(&cu->disp);
1047 switch (
GS(id->name)) {
1058 allow_flag = OB_RECALC_ALL | PSYS_RECALC;
1070 if (
flag & ~allow_flag) {
1074 allow_flag ?
N_(
"%s is not compatible with the specified 'refresh' options") :
1075 N_(
"%s is not compatible with any 'refresh' options"),
1084static void rna_ID_user_clear(
ID *
id)
1090static void rna_ID_user_remap(
ID *
id,
Main *bmain,
ID *new_id)
1092 if ((
GS(id->name) ==
GS(new_id->
name)) && (
id != new_id)) {
1101static ID *rna_ID_make_local(
1102 ID *
self,
Main *bmain,
bool ,
bool clear_liboverride,
bool clear_asset_data)
1106 if (clear_asset_data) {
1126static AnimData *rna_ID_animation_data_create(
ID *
id,
Main *bmain)
1133static void rna_ID_animation_data_free(
ID *
id,
Main *bmain)
1143 return &
id->py_instance;
1164 if (totcol && (key >= 0 && key < *totcol)) {
1175static void rna_IDMaterials_append_id(
ID *
id,
Main *bmain,
Material *ma)
1187 const short totcol_orig = *totcol;
1189 index_i += (*totcol);
1192 if ((index_i < 0) || (index_i >= (*totcol))) {
1199 if (*totcol == totcol_orig) {
1211static void rna_IDMaterials_clear_id(
ID *
id,
Main *bmain)
1220static void rna_Library_filepath_set(
PointerRNA *
ptr,
const char *value)
1234 if (
id !=
nullptr) {
1248 prv_img->flag[
size] &= ~PRV_USER_EDITED;
1261 if (
id !=
nullptr) {
1267 values[0] = prv_img->w[
size];
1268 values[1] = prv_img->h[
size];
1276 if (
id !=
nullptr) {
1282 if (values[0] && values[1]) {
1283 prv_img->rect[
size] =
static_cast<unsigned int *
>(
1286 prv_img->w[
size] = values[0];
1287 prv_img->h[
size] = values[1];
1293static int rna_ImagePreview_pixels_get_length(
const PointerRNA *
ptr,
1300 if (
id !=
nullptr) {
1306 length[0] = prv_img->w[
size] * prv_img->h[
size];
1316 if (
id !=
nullptr) {
1322 memcpy(values, prv_img->rect[size], prv_img->w[size] * prv_img->h[size] *
sizeof(
uint));
1330 if (
id !=
nullptr) {
1334 memcpy(prv_img->rect[size], values, prv_img->w[size] * prv_img->h[size] *
sizeof(
uint));
1338static int rna_ImagePreview_pixels_float_get_length(
const PointerRNA *
ptr,
1347 if (
id !=
nullptr) {
1353 length[0] = prv_img->w[
size] * prv_img->h[
size] * 4;
1364 const size_t len = prv_img->w[
size] * prv_img->h[
size] * 4;
1369 if (
id !=
nullptr) {
1375 for (i = 0; i <
len; i++) {
1376 values[i] = data[i] * (1.0f / 255.0f);
1380static void rna_ImagePreview_pixels_float_set(
PointerRNA *
ptr,
1381 const float *values,
1388 const size_t len = prv_img->w[
size] * prv_img->h[
size] * 4;
1393 if (
id !=
nullptr) {
1397 for (i = 0; i <
len; i++) {
1403static void rna_ImagePreview_is_image_custom_set(
PointerRNA *
ptr,
bool value)
1408static void rna_ImagePreview_image_size_get(
PointerRNA *
ptr,
int *values)
1413static void rna_ImagePreview_image_size_set(
PointerRNA *
ptr,
const int *values)
1418static int rna_ImagePreview_image_pixels_get_length(
const PointerRNA *
ptr,
1424static void rna_ImagePreview_image_pixels_get(
PointerRNA *
ptr,
int *values)
1429static void rna_ImagePreview_image_pixels_set(
PointerRNA *
ptr,
const int *values)
1434static int rna_ImagePreview_image_pixels_float_get_length(
const PointerRNA *
ptr,
1440static void rna_ImagePreview_image_pixels_float_get(
PointerRNA *
ptr,
float *values)
1445static void rna_ImagePreview_image_pixels_float_set(
PointerRNA *
ptr,
const float *values)
1450static void rna_ImagePreview_is_icon_custom_set(
PointerRNA *
ptr,
bool value)
1455static void rna_ImagePreview_icon_size_get(
PointerRNA *
ptr,
int *values)
1460static void rna_ImagePreview_icon_size_set(
PointerRNA *
ptr,
const int *values)
1465static int rna_ImagePreview_icon_pixels_get_length(
const PointerRNA *
ptr,
1471static void rna_ImagePreview_icon_pixels_get(
PointerRNA *
ptr,
int *values)
1476static void rna_ImagePreview_icon_pixels_set(
PointerRNA *
ptr,
const int *values)
1481static int rna_ImagePreview_icon_pixels_float_get_length(
const PointerRNA *
ptr,
1487static void rna_ImagePreview_icon_pixels_float_get(
PointerRNA *
ptr,
float *values)
1492static void rna_ImagePreview_icon_pixels_float_set(
PointerRNA *
ptr,
const float *values)
1503static void rna_ImagePreview_icon_reload(
PreviewImage *prv)
1523 if (
ptr ==
nullptr) {
1529static void rna_Library_version_get(
PointerRNA *
ptr,
int *value)
1532 value[0] =
lib->runtime.versionfile / 100;
1533 value[1] =
lib->runtime.versionfile % 100;
1534 value[2] =
lib->runtime.subversionfile;
1562 srna,
"ID Property",
"Property that stores arbitrary, user defined properties");
1618 "rna_IDPArray_begin",
1619 "rna_iterator_array_next",
1620 "rna_iterator_array_end",
1621 "rna_iterator_array_get",
1622 "rna_IDPArray_length",
1650 srna,
"rna_PropertyGroup_register",
"rna_PropertyGroup_unregister",
nullptr);
1677 parm =
RNA_def_pointer(func,
"material",
"Material",
"",
"Material to add");
1685 parm =
RNA_def_pointer(func,
"material",
"Material",
"",
"Material to remove");
1708 "True if this preview image has been modified by py script, "
1709 "and is no more auto-generated by Blender");
1712 srna,
"image_size", 2,
nullptr, 0, 0,
"Image Size",
"Width and height in pixels", 0, 0);
1715 prop,
"rna_ImagePreview_image_size_get",
"rna_ImagePreview_image_size_set",
nullptr);
1723 prop,
"rna_ImagePreview_image_pixels_get",
"rna_ImagePreview_image_pixels_set",
nullptr);
1729 prop,
"Float Image Pixels",
"Image pixels components, as floats (RGBA concatenated values)");
1732 "rna_ImagePreview_image_pixels_float_get",
1733 "rna_ImagePreview_image_pixels_float_set",
1741 "True if this preview icon has been modified by py script, "
1742 "and is no more auto-generated by Blender");
1745 srna,
"icon_size", 2,
nullptr, 0, 0,
"Icon Size",
"Width and height in pixels", 0, 0);
1748 prop,
"rna_ImagePreview_icon_size_get",
"rna_ImagePreview_icon_size_set",
nullptr);
1756 prop,
"rna_ImagePreview_icon_pixels_get",
"rna_ImagePreview_icon_pixels_set",
nullptr);
1762 prop,
"Float Icon Pixels",
"Icon pixels components, as floats (RGBA concatenated values)");
1765 "rna_ImagePreview_icon_pixels_float_get",
1766 "rna_ImagePreview_icon_pixels_float_set",
1775 "Unique integer identifying this preview as an icon (zero means invalid)",
1795 "For templates, prevents the user from removing predefined operation (NOT USED)"},
1800 "Prevents the user from modifying that override operation (NOT USED)"},
1802 "IDPOINTER_MATCH_REFERENCE",
1805 "The ID pointer overridden by this operation is expected to match the reference hierarchy"},
1807 "IDPOINTER_ITEM_USE_ID",
1809 "ID Item Use ID Pointer",
1810 "RNA collections of IDs only, the reference to the item also uses the ID pointer itself, "
1811 "not only its name"},
1812 {0,
nullptr, 0,
nullptr,
nullptr},
1815 srna =
RNA_def_struct(brna,
"IDOverrideLibraryPropertyOperation",
nullptr);
1817 "ID Library Override Property Operation",
1818 "Description of an override operation over an overridden property");
1825 "What override operation is performed");
1829 srna,
"flag", override_library_property_flag_items, 0,
"Flags",
"Status flags");
1834 "subitem_reference_name",
1837 "Subitem Reference Name",
1838 "Used to handle changes into collection");
1841 "rna_ID_override_library_property_operation_refname_get",
1842 "rna_ID_override_library_property_operation_refname_length",
1846 "subitem_local_name",
1849 "Subitem Local Name",
1850 "Used to handle changes into collection");
1853 "rna_ID_override_library_property_operation_locname_get",
1854 "rna_ID_override_library_property_operation_locname_length",
1858 "subitem_reference_id",
1860 "Subitem Reference ID",
1861 "Collection of IDs only, used to disambiguate between potential IDs with "
1862 "same name from different libraries");
1869 "Collection of IDs only, used to disambiguate between potential IDs with "
1870 "same name from different libraries");
1874 "subitem_reference_index",
1878 "Subitem Reference Index",
1879 "Used to handle changes into collection",
1885 "subitem_local_index",
1889 "Subitem Local Index",
1890 "Used to handle changes into collection",
1903 srna =
RNA_def_struct(brna,
"IDOverrideLibraryPropertyOperations",
nullptr);
1908 func =
RNA_def_function(srna,
"add",
"rna_ID_override_library_property_operations_add");
1916 "What override operation is performed");
1922 "Use ID Pointer Subitem",
1923 "Whether the found or created liboverride operation should use ID pointers or not");
1925 "subitem_reference_name",
1928 "Subitem Reference Name",
1929 "Used to handle insertions or ID replacements into collection");
1931 "subitem_local_name",
1934 "Subitem Local Name",
1935 "Used to handle insertions or ID replacements into collection");
1937 "subitem_reference_id",
1939 "Subitem Reference ID",
1940 "Used to handle ID replacements into collection");
1945 "Used to handle ID replacements into collection");
1947 "subitem_reference_index",
1951 "Subitem Reference Index",
1952 "Used to handle insertions or ID replacements into collection",
1956 "subitem_local_index",
1960 "Subitem Local Index",
1961 "Used to handle insertions or ID replacements into collection",
1966 "IDOverrideLibraryPropertyOperation",
1968 "Created operation");
1971 func =
RNA_def_function(srna,
"remove",
"rna_ID_override_library_property_operations_remove");
1976 "IDOverrideLibraryPropertyOperation",
1978 "Override operation to be deleted");
1987 srna =
RNA_def_struct(brna,
"IDOverrideLibraryProperty",
nullptr);
1989 srna,
"ID Library Override Property",
"Description of an overridden property");
1998 "RNA path leading to that property, from owning ID");
2003 "IDOverrideLibraryPropertyOperation",
2005 "List of overriding operations for a property");
2019 srna =
RNA_def_struct(brna,
"IDOverrideLibraryProperties",
nullptr);
2024 func =
RNA_def_function(srna,
"add",
"rna_ID_override_library_properties_add");
2026 func,
"Add a property to the override library when it doesn't exist yet");
2030 "IDOverrideLibraryProperty",
2032 "Newly created override property or existing one");
2035 func,
"rna_path",
nullptr, 256,
"RNA Path",
"RNA-Path of the property to add");
2038 func =
RNA_def_function(srna,
"remove",
"rna_ID_override_library_properties_remove");
2043 "IDOverrideLibraryProperty",
2045 "Override property to be deleted");
2058 srna,
"ID Library Override",
"Struct gathering all data needed by overridden linked IDs");
2061 srna,
"reference",
"ID",
"Reference ID",
"Linked ID used as reference by this override");
2068 "Hierarchy Root ID",
2069 "Library override ID used as root of the override hierarchy this ID is a member of");
2075 "Whether this library override is defined as part of a library "
2076 "hierarchy, or as a single, isolated and autonomous override");
2082 "is_system_override",
2084 "Is System Override",
2085 "Whether this library override exists only for the override hierarchy, "
2086 "or if it is actually editable by the user");
2093 "IDOverrideLibraryProperty",
2095 "List of overridden properties");
2100 func =
RNA_def_function(srna,
"operations_update",
"rna_ID_override_library_operations_update");
2103 "Update the library override operations based on the "
2104 "differences between this override ID and its reference");
2108 "Reset this override to match again its linked reference ID");
2115 "Also reset all the dependencies of this override to match their reference linked IDs");
2117 "set_system_override",
2120 "Reset all user-editable overrides as (non-editable) system overrides");
2122 func =
RNA_def_function(srna,
"destroy",
"rna_ID_override_library_destroy");
2124 func,
"Delete this override ID and remap its usages to its linked reference ID instead");
2130 "Also delete all the dependencies of this override and remap their usages to "
2131 "their reference linked IDs");
2135 func,
"Resync the data-block and its sub-hierarchy, or the whole hierarchy if requested");
2138 func,
"success",
false,
"Success",
"Whether the resync process was successful or not");
2145 "The scene to operate in (for contextual things like keeping active object active, ensuring "
2146 "all overridden objects remain instantiated, etc.)");
2152 "The view layer to operate in (same usage as the ``scene`` data, in case "
2153 "it is not provided the scene's collection will be used instead)");
2159 "Collection where to store objects that are instantiated in any other collection anymore "
2160 "(garbage collection, will be created if needed and none is provided)");
2162 "do_hierarchy_enforce",
2165 "Enforce restoring the dependency hierarchy between data-blocks to match the "
2166 "one from the reference linked hierarchy (WARNING: if some ID pointers have "
2167 "been purposedly overridden, these will be reset to their default value)");
2170 "do_whole_hierarchy",
2173 "Resync the whole hierarchy this data-block belongs to, not only its own sub-hierarchy");
2188 {0,
nullptr, 0,
nullptr,
nullptr},
2196 "Never rename an exisitng ID whose name would conflict, the currently renamed ID will get "
2197 "a numeric suffix appended to its new name"},
2202 "Always rename an exisitng ID whose name would conflict, ensuring that the currently "
2203 "renamed ID will get requested name"},
2207 "Rename If Same Root",
2208 "Only rename an exisitng ID whose name would conflict if its name root (everything besides "
2209 "the numerical suffix) is the same as the existing name of the currently renamed ID"},
2210 {0,
nullptr, 0,
nullptr,
nullptr},
2218 "The ID was not renamed, e.g. because it is already named as requested"},
2220 "UNCHANGED_COLLISION",
2222 "Unchanged Due to Collision",
2223 "The ID was not renamed, because requested name would have collided with another existing "
2224 "ID's name, and the automatically adjusted name was the same as the current ID's name"},
2226 "RENAMED_NO_COLLISION",
2228 "Renamed Without Collision",
2229 "The ID was renamed as requested, without creating any name collision"},
2231 "RENAMED_COLLISION_ADJUSTED",
2233 "Renamed With Collision",
2234 "The ID was renamed with adjustement of the requested name, to avoid a name collision"},
2236 "RENAMED_COLLISION_FORCED",
2238 "Renamed Enforced With Collision",
2239 "The ID was renamed as requested, also renaming another ID to avoid a name collision"},
2240 {0,
nullptr, 0,
nullptr,
nullptr},
2247 "Base type for data-blocks, defining a unique name, linking from other libraries "
2248 "and garbage collection");
2255 prop,
"Name",
"Unique data-block ID name (within a same type and library)");
2265 prop,
"Full Name",
"Unique data-block ID name, including library one is any");
2281 "A session-wide unique identifier for the data block that remains the "
2282 "same across renames and internal reallocations, unchanged when reloading the file");
2289 "Whether this ID is runtime-only, evaluated data-block, or actual data from .blend file");
2298 "Actual data-block from .blend file (Main database) that generated that evaluated one");
2320 "Indicates whether an extra user is set or not (mainly for internal/debug usages)");
2329 "This data-block is not an independent one, but is actually a sub-data of another ID "
2330 "(typical example: root node trees or master collections)");
2337 "This data-block is a place-holder for missing linked data (i.e. it is "
2338 "[an override of] a linked data that could not be found anymore)");
2347 "This data-block is runtime data, i.e. it won't be saved in .blend "
2348 "file. Note that e.g. evaluated IDs are always runtime, so this value "
2349 "is only editable for data-blocks in Main data-base.");
2356 "This data-block is editable in the user interface. Linked datablocks "
2357 "are not editable, except if they were loaded as editable assets.");
2364 "Tools can use this to tag data for their own purposes "
2365 "(initial state is undefined)");
2379 "library_weak_reference",
2380 "LibraryWeakReference",
2381 "Library Weak Reference",
2382 "Weak reference to a data-block in another library .blend file (used to "
2383 "re-use already appended data instead of appending new copies)");
2394 srna,
"override_library",
"IDOverrideLibrary",
"Library Override",
"Library override data");
2403 "Preview image and icon of this data-block (always None if not supported "
2404 "for this type of data)");
2412 func,
"More refined handling in case the new name collides with another ID's name");
2419 "New name to rename the ID to, if empty will re-use the current ID name");
2426 "How to handle name collision, in case the requested new name is already "
2427 "used by another ID of the same type");
2430 rename_result_items,
2433 "How did the renaming of the data-block went on");
2439 "Get corresponding evaluated ID from the given dependency graph. Note that this does not "
2440 "ensure the dependency graph is fully evaluated, it just returns the result of the last "
2443 func,
"depsgraph",
"Depsgraph",
"",
"Dependency graph to perform lookup in");
2451 "Create a copy of this data-block (not supported for all data-blocks). "
2452 "The result is added to the Blend-File Data (Main database), with all references to other "
2453 "data-blocks ensured to be from within the same Blend-File Data.");
2461 "Enable easier reuse of the data-block through the Asset Browser, with the help of "
2462 "customizable metadata (like previews, descriptions and tags)");
2467 "Delete all asset metadata and turn the asset data-block back into a normal data-block");
2469 func =
RNA_def_function(srna,
"asset_generate_preview",
"rna_ID_asset_generate_preview");
2471 func,
"Generate preview image (might be scheduled in a background thread)");
2474 func =
RNA_def_function(srna,
"override_create",
"rna_ID_override_create");
2476 "Create an overridden local copy of this linked data-block (not "
2477 "supported for all data-blocks)");
2479 parm =
RNA_def_pointer(func,
"id",
"ID",
"",
"New overridden local copy of the ID");
2482 "remap_local_usages",
2485 "Whether local usages of the linked ID should be remapped to the new "
2486 "library override of it");
2488 func =
RNA_def_function(srna,
"override_hierarchy_create",
"rna_ID_override_hierarchy_create");
2491 "Create an overridden local copy of this linked data-block, and most of its dependencies "
2492 "when it is a Collection or and Object");
2494 parm =
RNA_def_pointer(func,
"id",
"ID",
"",
"New overridden local copy of the root ID");
2497 func,
"scene",
"Scene",
"",
"In which scene the new overrides should be instantiated");
2503 "In which view layer the new overrides should be instantiated");
2509 "Another ID (usually an Object or Collection) used as a hint to decide where to "
2510 "instantiate the new overrides");
2512 "do_fully_editable",
2515 "Make all library overrides generated by this call fully editable by the user "
2516 "(none will be 'system overrides')");
2520 "Clear the user count of a data-block so its not saved, "
2521 "on reload the data will be removed");
2525 func,
"Replace all usage in the .blend file of this ID by new given one");
2533 "Make this datablock local, return local one "
2534 "(may be a copy of the original, in case it is also indirectly used)");
2536 parm =
RNA_def_boolean(func,
"clear_proxy",
true,
"",
"Deprecated, has no effect");
2538 "clear_liboverride",
2541 "Remove potential library override data from the newly made local data");
2547 "Remove potential asset metadata so the newly local data-block is not treated as asset "
2548 "data-block and won't show up in asset libraries");
2549 parm =
RNA_def_pointer(func,
"id",
"ID",
"",
"This ID, or the new ID if it was copied");
2554 "Count the number of times that ID uses/references given one");
2563 "Number of usages/references of given id by current data-block",
2568 func =
RNA_def_function(srna,
"animation_data_create",
"rna_ID_animation_data_create");
2571 func,
"Create animation data to this ID, note that not all ID types support this");
2572 parm =
RNA_def_pointer(func,
"anim_data",
"AnimData",
"",
"New animation data or nullptr");
2575 func =
RNA_def_function(srna,
"animation_data_clear",
"rna_ID_animation_data_free");
2582 "Tag the ID to update its display data, "
2583 "e.g. when calling :class:`bpy.types.Scene.update`");
2584 RNA_def_enum_flag(func,
"refresh", update_flag_items, 0,
"",
"Type of updates to perform");
2586 func =
RNA_def_function(srna,
"preview_ensure",
"BKE_previewimg_id_ensure");
2588 "Ensure that this ID has preview data (if ID type supports it)");
2590 func,
"preview_image",
"ImagePreview",
"",
"The existing or created preview");
2630 "Version of Blender the library .blend was saved with",
2640 "Library Overrides Need resync",
2641 "True if this library contains library overrides that are linked in "
2642 "current blendfile, and that had to be recursively resynced on load "
2643 "(it is recommended to open and re-save that library blendfile then)");
2650 "Datablocks in this library are editable despite being linked. Used by "
2651 "brush assets and their dependencies.");
2666 "LibraryWeakReference",
2667 "Read-only external reference to a linked data-block and its library file");
2680 "Full ID name in the library .blend file (including the two leading 'id type' chars)");
2703 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)
@ ID_REMAP_SKIP_NEVER_NULL_USAGE
@ ID_REMAP_SKIP_INDIRECT_USAGE
void void BKE_libblock_remap(Main *bmain, void *old_idv, void *new_idv, int remap_flags) ATTR_NONNULL(1
void BKE_library_filepath_set(Main *bmain, Library *lib, const char *filepath)
General operations, lookup, etc. for materials.
struct Material * BKE_id_material_pop(struct Main *bmain, struct ID *id, int index)
void BKE_id_material_assign(struct Main *bmain, struct ID *id, struct Material *ma, short act)
void BKE_id_material_append(struct Main *bmain, struct ID *id, struct Material *ma)
void BKE_id_material_clear(struct Main *bmain, struct ID *id)
short * BKE_id_material_len_p(struct ID *id)
General operations, lookup, etc. for blender objects.
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 struct 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 BPy_BEGIN_ALLOW_THREADS
#define BPy_END_ALLOW_THREADS
void DEG_id_tag_update(ID *id, unsigned int flags)
void DEG_id_tag_update_ex(Main *bmain, ID *id, unsigned int flags)
void DEG_relations_tag_update(Main *bmain)
ID * DEG_get_original_id(ID *id)
ID * DEG_get_evaluated_id(const Depsgraph *depsgraph, ID *id)
ID and Library types, which are fundamental for SDNA.
#define FILTER_ID_GD_LEGACY
#define ID_IS_OVERRIDE_LIBRARY_REAL(_id)
#define ID_IS_OVERRIDABLE_LIBRARY(_id)
#define FILTER_ID_CU_LEGACY
@ LIBOVERRIDE_OP_FLAG_MANDATORY
@ LIBOVERRIDE_OP_FLAG_LOCKED
@ LIBOVERRIDE_OP_FLAG_IDPOINTER_ITEM_USE_ID
@ LIBOVERRIDE_OP_FLAG_IDPOINTER_MATCH_REFERENCE
#define ID_IS_LINKED(_id)
#define ID_IS_EDITABLE(_id)
@ LIBOVERRIDE_OP_SUBTRACT
@ LIBOVERRIDE_OP_MULTIPLY
@ LIBOVERRIDE_OP_INSERT_BEFORE
@ LIBOVERRIDE_OP_INSERT_AFTER
@ ID_TAG_COPIED_ON_EVAL_FINAL_RESULT
@ LIBOVERRIDE_FLAG_NO_HIERARCHY
@ LIBOVERRIDE_FLAG_SYSTEM_DEFINED
@ LIBRARY_TAG_RESYNC_REQUIRED
Object is a sort of wrapper for general info.
@ 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
void(*)(void *data) StructFreeFunc
int(*)(bContext *C, PointerRNA *ptr, FunctionRNA *func, ParameterList *list) StructCallbackFunc
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
@ PROPOVERRIDE_NO_COMPARISON
#define ND_LIB_OVERRIDE_CHANGED
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
const Depsgraph * depsgraph
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
void *(* MEM_callocN)(size_t len, const char *str)
#define unit_float_to_uchar_clamp(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)
const char * RNA_struct_identifier(const StructRNA *type)
void rna_iterator_array_begin(CollectionPropertyIterator *iter, void *ptr, int itemsize, int length, bool free_ptr, IteratorSkipFunc skip)
PointerRNA rna_pointer_inherit_refine(const PointerRNA *ptr, StructRNA *type, void *data)
PointerRNA RNA_pointer_create(ID *id, StructRNA *type, void *data)
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_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
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_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
static DynamicLibrary lib
void WM_main_add_notifier(uint type, void *reference)
void WM_lib_reload(Library *lib, bContext *C, ReportList *reports)