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_annotations",
130 ICON_OUTLINER_DATA_GREASEPENCIL,
132 "Show Annotation data-blocks"},
134 "filter_grease_pencil",
137 "Show Grease Pencil data-blocks"},
138 {
FILTER_ID_GR,
"filter_group", ICON_GROUP,
"Collections",
"Show Collection data-blocks"},
143 "Show/hide Curves data-blocks"},
144 {
FILTER_ID_IM,
"filter_image", ICON_IMAGE_DATA,
"Images",
"Show Image data-blocks"},
145 {
FILTER_ID_LA,
"filter_light", ICON_LIGHT_DATA,
"Lights",
"Show Light data-blocks"},
147 "filter_light_probe",
148 ICON_OUTLINER_DATA_LIGHTPROBE,
150 "Show Light Probe data-blocks"},
154 "Freestyle Linestyles",
155 "Show Freestyle's Line Style data-blocks"},
156 {
FILTER_ID_LT,
"filter_lattice", ICON_LATTICE_DATA,
"Lattices",
"Show Lattice data-blocks"},
161 "Show Material data-blocks"},
162 {
FILTER_ID_MB,
"filter_metaball", ICON_META_DATA,
"Metaballs",
"Show Metaball data-blocks"},
167 "Show Movie Clip data-blocks"},
168 {
FILTER_ID_ME,
"filter_mesh", ICON_MESH_DATA,
"Meshes",
"Show Mesh data-blocks"},
169 {
FILTER_ID_MSK,
"filter_mask", ICON_MOD_MASK,
"Masks",
"Show Mask data-blocks"},
170 {
FILTER_ID_NT,
"filter_node_tree", ICON_NODETREE,
"Node Trees",
"Show Node Tree data-blocks"},
171 {
FILTER_ID_OB,
"filter_object", ICON_OBJECT_DATA,
"Objects",
"Show Object data-blocks"},
173 "filter_particle_settings",
175 "Particles Settings",
176 "Show Particle Settings data-blocks"},
177 {
FILTER_ID_PAL,
"filter_palette", ICON_COLOR,
"Palettes",
"Show Palette data-blocks"},
179 "filter_paint_curve",
182 "Show Paint Curve data-blocks"},
185 ICON_POINTCLOUD_DATA,
187 "Show/hide Point Cloud data-blocks"},
188 {
FILTER_ID_SCE,
"filter_scene", ICON_SCENE_DATA,
"Scenes",
"Show Scene data-blocks"},
189 {
FILTER_ID_SPK,
"filter_speaker", ICON_SPEAKER,
"Speakers",
"Show Speaker data-blocks"},
190 {
FILTER_ID_SO,
"filter_sound", ICON_SOUND,
"Sounds",
"Show Sound data-blocks"},
191 {
FILTER_ID_TE,
"filter_texture", ICON_TEXTURE_DATA,
"Textures",
"Show Texture data-blocks"},
192 {
FILTER_ID_TXT,
"filter_text", ICON_TEXT,
"Texts",
"Show Text data-blocks"},
193 {
FILTER_ID_VF,
"filter_font", ICON_FONT_DATA,
"Fonts",
"Show Font data-blocks"},
194 {
FILTER_ID_VO,
"filter_volume", ICON_VOLUME_DATA,
"Volumes",
"Show/hide Volume data-blocks"},
195 {
FILTER_ID_WO,
"filter_world", ICON_WORLD_DATA,
"Worlds",
"Show World data-blocks"},
200 "Show workspace data-blocks"},
201 {0,
nullptr, 0,
nullptr,
nullptr},
241void rna_ID_override_library_property_operation_refname_get(
PointerRNA *
ptr,
char *value)
248int rna_ID_override_library_property_operation_refname_length(
PointerRNA *
ptr)
255void rna_ID_override_library_property_operation_locname_get(
PointerRNA *
ptr,
char *value)
262int rna_ID_override_library_property_operation_locname_length(
PointerRNA *
ptr)
273 strcpy(value, id->name + 2);
279 return strlen(id->name + 2);
282static int rna_ID_rename(
ID *
self,
Main *bmain,
const char *new_name,
const int mode)
285 return int(
result.action);
295static int rna_ID_name_editable(
const PointerRNA *
ptr,
const char **r_info)
305 *r_info =
N_(
"Packed data-blocks cannot be renamed");
308 *r_info =
N_(
"Linked data-blocks cannot be renamed");
318 *r_info =
N_(
"Built-in fonts cannot be renamed");
325 *r_info =
N_(
"Data-blocks not in global Main data-base cannot be renamed");
349 ID *
id =
static_cast<ID *
>(
ptr->data);
370 if (
UNLIKELY(base_type ==
nullptr)) {
373 if (base_type == &RNA_Action) {
376 if (base_type == &RNA_Armature) {
379 if (base_type == &RNA_Brush) {
382 if (base_type == &RNA_CacheFile) {
385 if (base_type == &RNA_Camera) {
388 if (base_type == &RNA_Curve) {
391 if (base_type == &RNA_Annotation) {
394 if (base_type == &RNA_GreasePencil) {
397 if (base_type == &RNA_Collection) {
400 if (base_type == &RNA_Image) {
403 if (base_type == &RNA_Key) {
406 if (base_type == &RNA_Light) {
409 if (base_type == &RNA_Library) {
412 if (base_type == &RNA_FreestyleLineStyle) {
415 if (base_type == &RNA_Curves) {
418 if (base_type == &RNA_Lattice) {
421 if (base_type == &RNA_Material) {
424 if (base_type == &RNA_MetaBall) {
427 if (base_type == &RNA_MovieClip) {
430 if (base_type == &RNA_Mesh) {
433 if (base_type == &RNA_Mask) {
436 if (base_type == &RNA_NodeTree) {
439 if (base_type == &RNA_Object) {
442 if (base_type == &RNA_ParticleSettings) {
445 if (base_type == &RNA_Palette) {
448 if (base_type == &RNA_PaintCurve) {
451 if (base_type == &RNA_PointCloud) {
454 if (base_type == &RNA_LightProbe) {
457 if (base_type == &RNA_Scene) {
460 if (base_type == &RNA_Screen) {
463 if (base_type == &RNA_Sound) {
466 if (base_type == &RNA_Speaker) {
469 if (base_type == &RNA_Texture) {
472 if (base_type == &RNA_Text) {
475 if (base_type == &RNA_VectorFont) {
478 if (base_type == &RNA_Volume) {
481 if (base_type == &RNA_WorkSpace) {
484 if (base_type == &RNA_World) {
487 if (base_type == &RNA_WindowManager) {
502 return &RNA_Armature;
508 return &RNA_CacheFile;
512 return &RNA_Annotation;
514 return &RNA_GreasePencil;
516 return &RNA_Collection;
528 return &RNA_FreestyleLineStyle;
532 return &RNA_Material;
534 return &RNA_MetaBall;
536 return &RNA_MovieClip;
542 return &RNA_NodeTree;
546 return &RNA_ParticleSettings;
550 return &RNA_PaintCurve;
552 return &RNA_PointCloud;
554 return &RNA_LightProbe;
568 return &RNA_VectorFont;
572 return &RNA_WindowManager;
576 return &RNA_WorkSpace;
592 return &
id->properties;
598 return &
id->system_properties;
601int rna_ID_is_runtime_editable(
const PointerRNA *
ptr,
const char **r_info)
609 "Cannot edit 'runtime' status of non-blendfile data-blocks, as they are by definition "
679 const char *identifier,
688 if (validate(&dummy_ptr,
data,
nullptr) != 0) {
699 "Registering id property class: '%s' is too long, maximum length is %d",
718static ID *rna_ID_copy(
ID *
id,
Main *bmain)
722 if (newid !=
nullptr) {
732static void rna_ID_asset_mark(
ID *
id)
740static void rna_ID_asset_generate_preview(
ID *
id,
bContext *
C)
748static void rna_ID_asset_clear(
ID *
id)
758 ID *destination =
static_cast<ID *
>(
ptr->data);
765 "Asset data can only be assigned to assets. Use asset_mark() to mark as an asset.");
770 if (asset_data ==
nullptr) {
780 reports,
RPT_ERROR,
"'%s' is of a type that cannot be an asset", destination->
name + 2);
788static ID *rna_ID_override_create(
ID *
id,
Main *bmain,
bool remap_local_usages)
794 if (remap_local_usages) {
798 ID *local_id =
nullptr;
809 if (remap_local_usages) {
819static ID *rna_ID_override_hierarchy_create(
ID *
id,
823 ID *id_instance_hint,
824 bool do_fully_editable)
832 ID *id_root_override =
nullptr;
855 return id_root_override;
858static void rna_ID_override_library_operations_update(
ID *
id,
878static void rna_ID_override_library_reset(
ID *
id,
883 bool set_system_override)
900static void rna_ID_override_library_destroy(
ID *
id,
922static bool rna_ID_override_library_resync(
ID *
id,
929 bool do_hierarchy_enforce,
930 bool do_whole_hierarchy)
940 "Data-block '%s' is not a library override, or not part of a library override hierarchy",
953 override_resync_residual_storage,
954 do_hierarchy_enforce,
966 override_library, rna_path, &created);
969 BKE_report(reports,
RPT_DEBUG,
"No new override property created, property already exists");
976static void rna_ID_override_library_properties_remove(
IDOverrideLibrary *override_library,
995 const char *subitem_refname,
996 const char *subitem_locname,
999 int subitem_refindex,
1000 int subitem_locindex)
1009 use_id ? std::optional(subitem_refid) : std::nullopt,
1010 use_id ? std::optional(subitem_locid) : std::nullopt,
1017 BKE_report(reports,
RPT_DEBUG,
"No new override operation created, operation already exists");
1024static void rna_ID_override_library_property_operations_remove(
1044 Curve *cu = ob->data;
1045 freedisplist(&cu->disp);
1068 allow_flag = OB_RECALC_ALL | PSYS_RECALC;
1080 if (
flag & ~allow_flag) {
1084 allow_flag ?
N_(
"%s is not compatible with the specified 'refresh' options") :
1085 N_(
"%s is not compatible with any 'refresh' options"),
1094static void rna_ID_user_clear(
ID *
id)
1100static void rna_ID_user_remap(
ID *
id,
Main *bmain,
ID *new_id)
1102 if ((
GS(id->
name) ==
GS(new_id->
name)) && (
id != new_id)) {
1111static ID *rna_ID_make_local(
1112 ID *
self,
Main *bmain,
bool ,
bool clear_liboverride,
bool clear_asset_data)
1116 if (clear_asset_data) {
1136static AnimData *rna_ID_animation_data_create(
ID *
id,
Main *bmain)
1143static void rna_ID_animation_data_free(
ID *
id,
Main *bmain)
1153 return &
id->py_instance;
1172 ID *
id =
ptr->owner_id;
1175 if (totcol && (key >= 0 && key < *totcol)) {
1186static void rna_IDMaterials_append_id(
ID *
id,
Main *bmain,
Material *ma)
1198 const short totcol_orig = *totcol;
1200 index_i += (*totcol);
1203 if ((index_i < 0) || (index_i >= (*totcol))) {
1210 if (*totcol == totcol_orig) {
1222static void rna_IDMaterials_clear_id(
ID *
id,
Main *bmain)
1231static void rna_Library_filepath_set(
PointerRNA *
ptr,
const char *value)
1242 ID *
id =
ptr->owner_id;
1245 if (
id !=
nullptr) {
1269 ID *
id =
ptr->owner_id;
1272 if (
id !=
nullptr) {
1278 values[0] = prv_img->w[
size];
1279 values[1] = prv_img->h[
size];
1284 ID *
id =
ptr->owner_id;
1287 if (
id !=
nullptr) {
1293 if (values[0] && values[1]) {
1297 prv_img->w[
size] = values[0];
1298 prv_img->h[
size] = values[1];
1304static int rna_ImagePreview_pixels_get_length(
const PointerRNA *
ptr,
1308 ID *
id =
ptr->owner_id;
1311 if (
id !=
nullptr) {
1324 ID *
id =
ptr->owner_id;
1327 if (
id !=
nullptr) {
1333 memcpy(values, prv_img->rect[
size], prv_img->w[
size] * prv_img->h[
size] *
sizeof(
uint));
1338 ID *
id =
ptr->owner_id;
1341 if (
id !=
nullptr) {
1345 memcpy(prv_img->rect[
size], values, prv_img->w[
size] * prv_img->h[
size] *
sizeof(
uint));
1349static int rna_ImagePreview_pixels_float_get_length(
const PointerRNA *
ptr,
1353 ID *
id =
ptr->owner_id;
1358 if (
id !=
nullptr) {
1371 ID *
id =
ptr->owner_id;
1375 const size_t len = prv_img->w[
size] * prv_img->h[
size] * 4;
1380 if (
id !=
nullptr) {
1386 for (
i = 0;
i <
len;
i++) {
1387 values[
i] =
data[
i] * (1.0f / 255.0f);
1391static void rna_ImagePreview_pixels_float_set(
PointerRNA *
ptr,
1392 const float *values,
1395 ID *
id =
ptr->owner_id;
1399 const size_t len = prv_img->w[
size] * prv_img->h[
size] * 4;
1404 if (
id !=
nullptr) {
1408 for (
i = 0;
i <
len;
i++) {
1414static void rna_ImagePreview_is_image_custom_set(
PointerRNA *
ptr,
bool value)
1419static void rna_ImagePreview_image_size_get(
PointerRNA *
ptr,
int *values)
1424static void rna_ImagePreview_image_size_set(
PointerRNA *
ptr,
const int *values)
1429static int rna_ImagePreview_image_pixels_get_length(
const PointerRNA *
ptr,
1435static void rna_ImagePreview_image_pixels_get(
PointerRNA *
ptr,
int *values)
1440static void rna_ImagePreview_image_pixels_set(
PointerRNA *
ptr,
const int *values)
1445static int rna_ImagePreview_image_pixels_float_get_length(
const PointerRNA *
ptr,
1451static void rna_ImagePreview_image_pixels_float_get(
PointerRNA *
ptr,
float *values)
1456static void rna_ImagePreview_image_pixels_float_set(
PointerRNA *
ptr,
const float *values)
1461static void rna_ImagePreview_is_icon_custom_set(
PointerRNA *
ptr,
bool value)
1466static void rna_ImagePreview_icon_size_get(
PointerRNA *
ptr,
int *values)
1471static void rna_ImagePreview_icon_size_set(
PointerRNA *
ptr,
const int *values)
1476static int rna_ImagePreview_icon_pixels_get_length(
const PointerRNA *
ptr,
1482static void rna_ImagePreview_icon_pixels_get(
PointerRNA *
ptr,
int *values)
1487static void rna_ImagePreview_icon_pixels_set(
PointerRNA *
ptr,
const int *values)
1492static int rna_ImagePreview_icon_pixels_float_get_length(
const PointerRNA *
ptr,
1498static void rna_ImagePreview_icon_pixels_float_get(
PointerRNA *
ptr,
float *values)
1503static void rna_ImagePreview_icon_pixels_float_set(
PointerRNA *
ptr,
const float *values)
1514static void rna_ImagePreview_icon_reload(
PreviewImage *prv)
1534 if (
ptr ==
nullptr) {
1540static void rna_Library_version_get(
PointerRNA *
ptr,
int *value)
1543 value[0] =
lib->runtime->versionfile / 100;
1544 value[1] =
lib->runtime->versionfile % 100;
1545 value[2] =
lib->runtime->subversionfile;
1553 Library **archive_libraries_iter =
lib->runtime->archived_libraries.begin();
1556 iter->
valid = archive_libraries_iter !=
lib->runtime->archived_libraries.end();
1564 archive_libraries_iter++;
1567 iter->
valid = archive_libraries_iter !=
lib->runtime->archived_libraries.end();
1576static int rna_Library_archive_libraries_length(
PointerRNA *
ptr)
1579 return int(
lib->runtime->archived_libraries.size());
1585 if (key < 0 || key >=
lib->runtime->archived_libraries.size()) {
1589 Library *archive_library =
lib->runtime->archived_libraries[key];
1626 srna,
"ID Property",
"Property that stores arbitrary, user defined properties");
1682 "rna_IDPArray_begin",
1683 "rna_iterator_array_next",
1684 "rna_iterator_array_end",
1685 "rna_iterator_array_get",
1686 "rna_IDPArray_length",
1717 srna,
"rna_PropertyGroup_register",
"rna_PropertyGroup_unregister",
nullptr);
1744 parm =
RNA_def_pointer(func,
"material",
"Material",
"",
"Material to add");
1752 parm =
RNA_def_pointer(func,
"material",
"Material",
"",
"Material to remove");
1775 "True if this preview image has been modified by py script, "
1776 "and is no more auto-generated by Blender");
1779 srna,
"image_size", 2,
nullptr, 0, 0,
"Image Size",
"Width and height in pixels", 0, 0);
1782 prop,
"rna_ImagePreview_image_size_get",
"rna_ImagePreview_image_size_set",
nullptr);
1790 prop,
"rna_ImagePreview_image_pixels_get",
"rna_ImagePreview_image_pixels_set",
nullptr);
1796 prop,
"Float Image Pixels",
"Image pixels components, as floats (RGBA concatenated values)");
1799 "rna_ImagePreview_image_pixels_float_get",
1800 "rna_ImagePreview_image_pixels_float_set",
1808 "True if this preview icon has been modified by py script, "
1809 "and is no more auto-generated by Blender");
1812 srna,
"icon_size", 2,
nullptr, 0, 0,
"Icon Size",
"Width and height in pixels", 0, 0);
1815 prop,
"rna_ImagePreview_icon_size_get",
"rna_ImagePreview_icon_size_set",
nullptr);
1823 prop,
"rna_ImagePreview_icon_pixels_get",
"rna_ImagePreview_icon_pixels_set",
nullptr);
1829 prop,
"Float Icon Pixels",
"Icon pixels components, as floats (RGBA concatenated values)");
1832 "rna_ImagePreview_icon_pixels_float_get",
1833 "rna_ImagePreview_icon_pixels_float_set",
1842 "Unique integer identifying this preview as an icon (zero means invalid)",
1862 "For templates, prevents the user from removing predefined operation (NOT USED)"},
1867 "Prevents the user from modifying that override operation (NOT USED)"},
1869 "IDPOINTER_MATCH_REFERENCE",
1872 "The ID pointer overridden by this operation is expected to match the reference hierarchy"},
1874 "IDPOINTER_ITEM_USE_ID",
1876 "ID Item Use ID Pointer",
1877 "RNA collections of IDs only, the reference to the item also uses the ID pointer itself, "
1878 "not only its name"},
1879 {0,
nullptr, 0,
nullptr,
nullptr},
1882 srna =
RNA_def_struct(brna,
"IDOverrideLibraryPropertyOperation",
nullptr);
1884 "ID Library Override Property Operation",
1885 "Description of an override operation over an overridden property");
1892 "What override operation is performed");
1896 srna,
"flag", override_library_property_flag_items, 0,
"Flags",
"Status flags");
1900 "subitem_reference_name",
1903 "Subitem Reference Name",
1904 "Used to handle changes into collection");
1907 "rna_ID_override_library_property_operation_refname_get",
1908 "rna_ID_override_library_property_operation_refname_length",
1912 "subitem_local_name",
1915 "Subitem Local Name",
1916 "Used to handle changes into collection");
1919 "rna_ID_override_library_property_operation_locname_get",
1920 "rna_ID_override_library_property_operation_locname_length",
1924 "subitem_reference_id",
1926 "Subitem Reference ID",
1927 "Collection of IDs only, used to disambiguate between potential IDs with "
1928 "same name from different libraries");
1935 "Collection of IDs only, used to disambiguate between potential IDs with "
1936 "same name from different libraries");
1940 "subitem_reference_index",
1944 "Subitem Reference Index",
1945 "Used to handle changes into collection",
1951 "subitem_local_index",
1955 "Subitem Local Index",
1956 "Used to handle changes into collection",
1969 srna =
RNA_def_struct(brna,
"IDOverrideLibraryPropertyOperations",
nullptr);
1974 func =
RNA_def_function(srna,
"add",
"rna_ID_override_library_property_operations_add");
1982 "What override operation is performed");
1988 "Use ID Pointer Subitem",
1989 "Whether the found or created liboverride operation should use ID pointers or not");
1991 "subitem_reference_name",
1994 "Subitem Reference Name",
1995 "Used to handle insertions or ID replacements into collection");
1997 "subitem_local_name",
2000 "Subitem Local Name",
2001 "Used to handle insertions or ID replacements into collection");
2003 "subitem_reference_id",
2005 "Subitem Reference ID",
2006 "Used to handle ID replacements into collection");
2011 "Used to handle ID replacements into collection");
2013 "subitem_reference_index",
2017 "Subitem Reference Index",
2018 "Used to handle insertions or ID replacements into collection",
2022 "subitem_local_index",
2026 "Subitem Local Index",
2027 "Used to handle insertions or ID replacements into collection",
2032 "IDOverrideLibraryPropertyOperation",
2034 "Created operation");
2037 func =
RNA_def_function(srna,
"remove",
"rna_ID_override_library_property_operations_remove");
2042 "IDOverrideLibraryPropertyOperation",
2044 "Override operation to be deleted");
2053 srna =
RNA_def_struct(brna,
"IDOverrideLibraryProperty",
nullptr);
2055 srna,
"ID Library Override Property",
"Description of an overridden property");
2064 "RNA path leading to that property, from owning ID");
2069 "IDOverrideLibraryPropertyOperation",
2071 "List of overriding operations for a property");
2085 srna =
RNA_def_struct(brna,
"IDOverrideLibraryProperties",
nullptr);
2090 func =
RNA_def_function(srna,
"add",
"rna_ID_override_library_properties_add");
2092 func,
"Add a property to the override library when it doesn't exist yet");
2096 "IDOverrideLibraryProperty",
2098 "Newly created override property or existing one");
2101 func,
"rna_path",
nullptr, 256,
"RNA Path",
"RNA-Path of the property to add");
2104 func =
RNA_def_function(srna,
"remove",
"rna_ID_override_library_properties_remove");
2109 "IDOverrideLibraryProperty",
2111 "Override property to be deleted");
2124 srna,
"ID Library Override",
"Struct gathering all data needed by overridden linked IDs");
2127 srna,
"reference",
"ID",
"Reference ID",
"Linked ID used as reference by this override");
2134 "Hierarchy Root ID",
2135 "Library override ID used as root of the override hierarchy this ID is a member of");
2141 "Whether this library override is defined as part of a library "
2142 "hierarchy, or as a single, isolated and autonomous override");
2148 "is_system_override",
2150 "Is System Override",
2151 "Whether this library override exists only for the override hierarchy, "
2152 "or if it is actually editable by the user");
2159 "IDOverrideLibraryProperty",
2161 "List of overridden properties");
2166 func =
RNA_def_function(srna,
"operations_update",
"rna_ID_override_library_operations_update");
2169 "Update the library override operations based on the "
2170 "differences between this override ID and its reference");
2174 "Reset this override to match again its linked reference ID");
2181 "Also reset all the dependencies of this override to match their reference linked IDs");
2183 "set_system_override",
2186 "Reset all user-editable overrides as (non-editable) system overrides");
2188 func =
RNA_def_function(srna,
"destroy",
"rna_ID_override_library_destroy");
2190 func,
"Delete this override ID and remap its usages to its linked reference ID instead");
2196 "Also delete all the dependencies of this override and remap their usages to "
2197 "their reference linked IDs");
2201 func,
"Resync the data-block and its sub-hierarchy, or the whole hierarchy if requested");
2204 func,
"success",
false,
"Success",
"Whether the resync process was successful or not");
2211 "The scene to operate in (for contextual things like keeping active object active, ensuring "
2212 "all overridden objects remain instantiated, etc.)");
2218 "The view layer to operate in (same usage as the ``scene`` data, in case "
2219 "it is not provided the scene's collection will be used instead)");
2225 "Collection where to store objects that are instantiated in any other collection anymore "
2226 "(garbage collection, will be created if needed and none is provided)");
2228 "do_hierarchy_enforce",
2231 "Enforce restoring the dependency hierarchy between data-blocks to match the "
2232 "one from the reference linked hierarchy (WARNING: if some ID pointers have "
2233 "been purposely overridden, these will be reset to their default value)");
2236 "do_whole_hierarchy",
2239 "Resync the whole hierarchy this data-block belongs to, not only its own sub-hierarchy");
2254 {0,
nullptr, 0,
nullptr,
nullptr},
2262 "Never rename an existing ID whose name would conflict, the currently renamed ID will get "
2263 "a numeric suffix appended to its new name"},
2268 "Always rename an existing ID whose name would conflict, ensuring that the currently "
2269 "renamed ID will get requested name"},
2273 "Rename If Same Root",
2274 "Only rename an existing ID whose name would conflict if its name root (everything besides "
2275 "the numerical suffix) is the same as the existing name of the currently renamed ID"},
2276 {0,
nullptr, 0,
nullptr,
nullptr},
2284 "The ID was not renamed, e.g. because it is already named as requested"},
2286 "UNCHANGED_COLLISION",
2288 "Unchanged Due to Collision",
2289 "The ID was not renamed, because requested name would have collided with another existing "
2290 "ID's name, and the automatically adjusted name was the same as the current ID's name"},
2292 "RENAMED_NO_COLLISION",
2294 "Renamed Without Collision",
2295 "The ID was renamed as requested, without creating any name collision"},
2297 "RENAMED_COLLISION_ADJUSTED",
2299 "Renamed With Collision",
2300 "The ID was renamed with adjustment of the requested name, to avoid a name collision"},
2302 "RENAMED_COLLISION_FORCED",
2304 "Renamed Enforced With Collision",
2305 "The ID was renamed as requested, also renaming another ID to avoid a name collision"},
2306 {0,
nullptr, 0,
nullptr,
nullptr},
2313 "Base type for data-blocks, defining a unique name, linking from other libraries "
2314 "and garbage collection");
2322 prop,
"Name",
"Unique data-block ID name (within a same type and library)");
2332 prop,
"Full Name",
"Unique data-block ID name, including library one if any");
2349 "A session-wide unique identifier for the data block that remains the "
2350 "same across renames and internal reallocations, unchanged when reloading the file");
2357 "Whether this ID is runtime-only, evaluated data-block, or actual data from .blend file");
2366 "Actual data-block from .blend file (Main database) that generated that evaluated one");
2388 "Indicates whether an extra user is set or not (mainly for internal/debug usages)");
2397 "This data-block is not an independent one, but is actually a sub-data of another ID "
2398 "(typical example: root node trees or master collections)");
2404 prop,
"Linked Packed",
"This data-block is linked and packed into the .blend file");
2411 "This data-block is a place-holder for missing linked data (i.e. it is "
2412 "[an override of] a linked data that could not be found anymore)");
2421 "This data-block is runtime data, i.e. it won't be saved in .blend "
2422 "file. Note that e.g. evaluated IDs are always runtime, so this value "
2423 "is only editable for data-blocks in Main data-base.");
2430 "This data-block is editable in the user interface. Linked data-blocks "
2431 "are not editable, except if they were loaded as editable assets.");
2438 "Tools can use this to tag data for their own purposes "
2439 "(initial state is undefined)");
2453 "library_weak_reference",
2454 "LibraryWeakReference",
2455 "Library Weak Reference",
2456 "Weak reference to a data-block in another library .blend file (used to "
2457 "re-use already appended data instead of appending new copies)");
2468 srna,
"override_library",
"IDOverrideLibrary",
"Library Override",
"Library override data");
2477 "Preview image and icon of this data-block (always None if not supported "
2478 "for this type of data)");
2486 func,
"More refined handling in case the new name collides with another ID's name");
2493 "New name to rename the ID to, if empty will re-use the current ID name");
2500 "How to handle name collision, in case the requested new name is already "
2501 "used by another ID of the same type");
2504 rename_result_items,
2507 "How did the renaming of the data-block went on");
2513 "Get corresponding evaluated ID from the given dependency graph. Note that this does not "
2514 "ensure the dependency graph is fully evaluated, it just returns the result of the last "
2517 func,
"depsgraph",
"Depsgraph",
"",
"Dependency graph to perform lookup in");
2525 "Create a copy of this data-block (not supported for all data-blocks). "
2526 "The result is added to the Blend-File Data (Main database), with all references to other "
2527 "data-blocks ensured to be from within the same Blend-File Data.");
2535 "Enable easier reuse of the data-block through the Asset Browser, with the help of "
2536 "customizable metadata (like previews, descriptions and tags)");
2541 "Delete all asset metadata and turn the asset data-block back into a normal data-block");
2543 func =
RNA_def_function(srna,
"asset_generate_preview",
"rna_ID_asset_generate_preview");
2545 func,
"Generate preview image (might be scheduled in a background thread)");
2548 func =
RNA_def_function(srna,
"override_create",
"rna_ID_override_create");
2550 "Create an overridden local copy of this linked data-block (not "
2551 "supported for all data-blocks)");
2553 parm =
RNA_def_pointer(func,
"id",
"ID",
"",
"New overridden local copy of the ID");
2556 "remap_local_usages",
2559 "Whether local usages of the linked ID should be remapped to the new "
2560 "library override of it");
2562 func =
RNA_def_function(srna,
"override_hierarchy_create",
"rna_ID_override_hierarchy_create");
2565 "Create an overridden local copy of this linked data-block, and most of its dependencies "
2566 "when it is a Collection or and Object");
2568 parm =
RNA_def_pointer(func,
"id",
"ID",
"",
"New overridden local copy of the root ID");
2571 func,
"scene",
"Scene",
"",
"In which scene the new overrides should be instantiated");
2577 "In which view layer the new overrides should be instantiated");
2583 "Another ID (usually an Object or Collection) used as a hint to decide where to "
2584 "instantiate the new overrides");
2586 "do_fully_editable",
2589 "Make all library overrides generated by this call fully editable by the user "
2590 "(none will be 'system overrides')");
2594 "Clear the user count of a data-block so its not saved, "
2595 "on reload the data will be removed");
2599 func,
"Replace all usage in the .blend file of this ID by new given one");
2607 "Make this data-block local, return local one "
2608 "(may be a copy of the original, in case it is also indirectly used)");
2610 parm =
RNA_def_boolean(func,
"clear_proxy",
true,
"",
"Deprecated, has no effect");
2612 "clear_liboverride",
2615 "Remove potential library override data from the newly made local data");
2621 "Remove potential asset metadata so the newly local data-block is not treated as asset "
2622 "data-block and won't show up in asset libraries");
2623 parm =
RNA_def_pointer(func,
"id",
"ID",
"",
"This ID, or the new ID if it was copied");
2628 "Count the number of times that ID uses/references given one");
2637 "Number of usages/references of given id by current data-block",
2642 func =
RNA_def_function(srna,
"animation_data_create",
"rna_ID_animation_data_create");
2645 func,
"Create animation data to this ID, note that not all ID types support this");
2646 parm =
RNA_def_pointer(func,
"anim_data",
"AnimData",
"",
"New animation data or nullptr");
2649 func =
RNA_def_function(srna,
"animation_data_clear",
"rna_ID_animation_data_free");
2656 "Tag the ID to update its display data, "
2657 "e.g. when calling :class:`bpy.types.Scene.update`");
2658 RNA_def_enum_flag(func,
"refresh", update_flag_items, 0,
"",
"Type of updates to perform");
2660 func =
RNA_def_function(srna,
"preview_ensure",
"BKE_previewimg_id_ensure");
2662 "Ensure that this ID has preview data (if ID type supports it)");
2664 func,
"preview_image",
"ImagePreview",
"",
"The existing or created preview");
2705 "Version of Blender the library .blend was saved with",
2715 "Library Overrides Need resync",
2716 "True if this library contains library overrides that are linked in "
2717 "current blendfile, and that had to be recursively resynced on load "
2718 "(it is recommended to open and re-save that library blendfile then)");
2725 "Data-blocks in this library are editable despite being linked. "
2726 "Used by brush assets and their dependencies.");
2733 "This library is an 'archive' storage for packed linked IDs "
2734 "originally linked from its 'archive parent' library.");
2741 "Parent Archive Library",
2742 "Source library from which this archive of packed IDs was generated");
2747 "rna_Library_archive_libraries_begin",
2748 "rna_Library_archive_libraries_next",
2750 "rna_Library_archive_libraries_get",
2751 "rna_Library_archive_libraries_length",
2752 "rna_Library_archive_libraries_lookupint",
2758 "Archive Libraries",
2759 "Archive libraries of packed IDs, generated (and owned) by this source library");
2774 "LibraryWeakReference",
2775 "Read-only external reference to a linked data-block and its library file");
2787 "Full ID name in the library .blend file (including the two leading 'id type' chars)");
2813 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_property_array_get(prop)
void BKE_id_newptr_and_tag_clear(ID *id)
void BKE_id_delete(Main *bmain, void *idv) ATTR_NONNULL()
@ LIB_ID_MAKELOCAL_ASSET_DATA_CLEAR
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)
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
@ RPT_ERROR_INVALID_INPUT
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.
#define FILTER_ID_GD_LEGACY
#define ID_IS_PACKED(_id)
@ ID_TAG_COPIED_ON_EVAL_FINAL_RESULT
#define ID_IS_OVERRIDE_LIBRARY_REAL(_id)
#define ID_IS_OVERRIDABLE_LIBRARY(_id)
@ LIBOVERRIDE_OP_FLAG_MANDATORY
@ LIBOVERRIDE_OP_FLAG_LOCKED
@ LIBOVERRIDE_OP_FLAG_IDPOINTER_ITEM_USE_ID
@ LIBOVERRIDE_OP_FLAG_IDPOINTER_MATCH_REFERENCE
#define FILTER_ID_CU_LEGACY
#define ID_IS_LINKED(_id)
#define ID_IS_EDITABLE(_id)
@ LIBOVERRIDE_OP_SUBTRACT
@ LIBOVERRIDE_OP_MULTIPLY
@ LIBOVERRIDE_OP_INSERT_BEFORE
@ LIBOVERRIDE_OP_INSERT_AFTER
@ LIBOVERRIDE_FLAG_NO_HIERARCHY
@ LIBOVERRIDE_FLAG_SYSTEM_DEFINED
@ ID_FLAG_LINKED_AND_PACKED
@ LIBRARY_FLAG_IS_ARCHIVE
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
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)
const char * RNA_struct_identifier(const StructRNA *type)
void rna_iterator_array_begin(CollectionPropertyIterator *iter, PointerRNA *ptr, void *data, size_t itemsize, int64_t length, bool free_ptr, IteratorSkipFunc skip)
void rna_pointer_create_with_ancestors(const PointerRNA &parent, StructRNA *type, void *data, PointerRNA &r_ptr)
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_system_idprops_func(StructRNA *srna, const char *system_idproperties)
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_ID_system_idprops(PointerRNA *ptr)
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[]
union CollectionPropertyIterator::@220100362304005352221007113371015217044252346141 internal
@ 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)