|
Blender V5.0
|
#include <cfloat>#include <climits>#include <cstddef>#include <cstdio>#include <cstdlib>#include <cstring>#include <fmt/format.h>#include "BLI_listbase.h"#include "BLI_math_base.h"#include "BLI_set.hh"#include "BLI_string.h"#include "BLI_utildefines.h"#include "BKE_idprop.hh"#include "BKE_lib_id.hh"#include "CLG_log.h"#include "MEM_guardedalloc.h"#include "BLO_read_write.hh"#include "BLI_strict_flags.h"Go to the source code of this file.
Macros | |
| #define | IDP_ARRAY_REALLOC_LIMIT 200 |
Variables | |
| static CLG_LogRef | LOG = {"lib.idprop"} |
| static size_t | idp_size_table [] |
Array Functions (IDP Array API) | |
| #define | GETPROP(prop, i) |
| IDProperty * | IDP_NewIDPArray (const blender::StringRef name) |
| IDProperty * | IDP_CopyIDPArray (const IDProperty *array, const int flag) |
| static void | IDP_FreeIDPArray (IDProperty *prop, const bool do_id_user) |
| void | IDP_SetIndexArray (IDProperty *prop, int index, IDProperty *item) |
| IDProperty * | IDP_GetIndexArray (IDProperty *prop, int index) |
| void | IDP_AppendArray (IDProperty *prop, IDProperty *item) |
| static void | idp_group_children_map_ensure (IDProperty &prop) |
| void | IDP_ResizeIDPArray (IDProperty *prop, int newlen) |
| static void | idp_resize_group_array (IDProperty *prop, int newlen, void *newarr) |
| void | IDP_ResizeArray (IDProperty *prop, int newlen) |
| void | IDP_FreeArray (IDProperty *prop) |
| IDPropertyUIData * | IDP_ui_data_copy (const IDProperty *prop) |
| static IDProperty * | idp_generic_copy (const IDProperty *prop, const int) |
| static IDProperty * | IDP_CopyArray (const IDProperty *prop, const int flag) |
| #define GETPROP | ( | prop, | |
| i ) |
Definition at line 65 of file idprop.cc.
Referenced by IDP_CopyIDPArray(), IDP_FreeIDPArray(), IDP_GetIndexArray(), IDP_ResizeIDPArray(), and IDP_SetIndexArray().
| #define IDP_ARRAY_REALLOC_LIMIT 200 |
if the new is 'IDP_ARRAY_REALLOC_LIMIT' items less, than IDProperty.totallen, reallocate anyway.
Definition at line 41 of file idprop.cc.
Referenced by IDP_ResizeArray(), and IDP_ResizeIDPArray().
| const IDProperty * _IDP_assert_type | ( | const IDProperty * | prop, |
| const char | ty ) |
Definition at line 1983 of file idprop.cc.
References BLI_assert, and IDProperty::type.
| const IDProperty * _IDP_assert_type_and_subtype | ( | const IDProperty * | prop, |
| const char | ty, | ||
| const char | sub_ty ) |
Definition at line 1988 of file idprop.cc.
References BLI_assert, IDProperty::subtype, and IDProperty::type.
| const IDProperty * _IDP_assert_type_mask | ( | const IDProperty * | prop, |
| const int | ty_mask ) |
Definition at line 1996 of file idprop.cc.
References BLI_assert, and IDProperty::type.
|
static |
Definition at line 1770 of file idprop.cc.
References IDPropertyUIData::description, and ui_data_alloc().
Referenced by IDP_TryConvertUIData().
| bool IDP_AddToGroup | ( | IDProperty * | group, |
| IDProperty * | prop ) |
This function has a sanity check to make sure ID properties with the same name don't get added to the group.
The sanity check just means the property is not added to the group if another property exists with the same name; the client code using ID properties then needs to detect this (the function that adds new properties to groups, IDP_AddToGroup, returns false if a property can't be added to the group, and true if it can) and free the property.
Definition at line 717 of file idprop.cc.
References BLI_addtail(), BLI_assert, IDPropertyData::children_map, IDProperty::data, IDPropertyData::group, IDP_GROUP, idp_group_children_map_ensure(), IDProperty::len, and IDProperty::type.
Referenced by BKE_keyconfig_pref_set_select_mouse(), camera_write_cycles_compatibility_data_create(), blender::bke::create_auto_smooth_modifier(), blender::io::usd::ensure_usd_source_path_prop(), blender::bke::idprop::IDPGroupSerializer::entry_to_idprop(), IDP_CopyGroup(), IDP_MergeGroup_ex(), IDP_ReplaceInGroup_ex(), blender::bke::tests::IDSubDataTestData::IDSubDataTestData(), IMB_metadata_set_field(), keymap_update_brushes_handle_add_item(), keymap_update_brushes_handle_remove_item(), blender::bke::node_update_asset_metadata(), operator_last_properties_init_impl(), blender::io::fbx::read_ufbx_property(), blender::ed::geometry::replace_strings_with_id_pointers(), RNA_property_boolean_set(), RNA_property_boolean_set_array(), RNA_property_collection_add(), RNA_property_enum_set(), RNA_property_float_set(), RNA_property_float_set_array(), RNA_property_int_set(), RNA_property_int_set_array(), RNA_property_pointer_add(), RNA_property_string_set(), RNA_property_string_set_bytes(), blender::io::usd::set_bool_prop(), blender::io::usd::set_double_prop(), blender::io::usd::set_float_prop(), blender::io::usd::set_int_prop(), blender::io::usd::set_string_prop(), shortcut_get_operator_property(), shortcut_property_from_rna(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST_F(), texture_paint_image_from_view_exec(), ui_but_event_operator_string_from_menu(), ui_but_event_operator_string_from_panel(), ui_but_event_property_operator_string(), blender::nodes::update_input_properties_from_node_tree(), blender::nodes::update_output_properties_from_node_tree(), version_cycles_property_int_set(), and version_geometry_nodes_add_attribute_input_settings().
| void IDP_AppendArray | ( | IDProperty * | prop, |
| IDProperty * | item ) |
Definition at line 137 of file idprop.cc.
References BLI_assert, IDP_IDPARRAY, IDP_ResizeIDPArray(), IDP_SetIndexArray(), IDProperty::len, and IDProperty::type.
Referenced by BPy_IDProperty_Map_ValidateAndCreate(), and RNA_property_collection_add().
| void IDP_AssignID | ( | IDProperty * | prop, |
| ID * | id, | ||
| int | flag ) |
| flag | the ID creation/copying flags (LIB_ID_CREATE_...), same as passed to BKE_id_copy_ex. |
Definition at line 546 of file idprop.cc.
References BLI_assert, IDProperty::data, flag, ID::flag, ID_FLAG_EMBEDDED_DATA, id_us_min(), id_us_plus(), IDP_ID, IDP_ID_get, LIB_ID_CREATE_NO_USER_REFCOUNT, IDPropertyData::pointer, and IDProperty::type.
Referenced by idp_from_DatablockPointer(), and RNA_property_pointer_set().
| void IDP_AssignString | ( | IDProperty * | prop, |
| const char * | st ) |
Definition at line 439 of file idprop.cc.
References IDP_AssignStringMaxSize().
Referenced by blender::nodes::attribute_search_exec_fn(), collection_exporter_copy(), IMB_metadata_set_field(), blender::nodes::layer_name_search_exec_fn(), blender::nodes::old_id_property_type_matches_socket_convert_to_new_string(), and version_mesh_crease_generic().
| void IDP_AssignStringMaxSize | ( | IDProperty * | prop, |
| const char * | st, | ||
| size_t | st_maxncpy ) |
| st | The string to assign. Doesn't need to be null terminated when clamped by maxncpy. |
| maxncpy | The maximum size of the string (including the \0 terminator). When zero, this is the equivalent of passing in strlen(st) + 1 |
Definition at line 421 of file idprop.cc.
References BLI_assert, BLI_strnlen(), IDProperty::data, IDP_ResizeArray(), IDP_STRING, IDP_string_get, IDP_STRING_SUB_BYTE, IDPropertyData::pointer, IDProperty::subtype, and IDProperty::type.
Referenced by IDP_AssignString(), idp_from_PyBytes(), idp_from_PyUnicode(), RNA_property_string_set(), blender::nodes::update_input_properties_from_node_tree(), and blender::nodes::update_output_properties_from_node_tree().
| void IDP_BlendReadData_impl | ( | BlendDataReader * | reader, |
| IDProperty ** | prop, | ||
| const char * | caller_func_id ) |
Definition at line 1675 of file idprop.cc.
References IDP_DirectLinkGroup(), IDP_GROUP, and printf.
| void IDP_BlendWrite | ( | BlendWriter * | writer, |
| const IDProperty * | prop ) |
Definition at line 1461 of file idprop.cc.
References BLO_write_struct, and IDP_WriteProperty_OnlyData().
Referenced by BKE_asset_metadata_write(), BKE_collection_blend_write_nolib(), BKE_id_blend_write(), BKE_pose_blend_write(), BKE_screen_view3d_shading_blend_write(), BKE_time_markers_blend_write(), BKE_view_layer_blend_write(), blender::blend_write(), IDP_WriteArray(), IDP_WriteGroup(), blender::bke::node_interface::item_types::item_write_data(), blender::bke::node_tree_blend_write(), blender::seq::strip_write_data_cb(), workspace_blend_write(), write_bone(), write_bone_collection(), write_keymapitem(), blender::bke::write_node_socket(), write_uilist(), and write_userdef().
| void IDP_ClearProperty | ( | IDProperty * | prop | ) |
Definition at line 1257 of file idprop.cc.
References IDProperty::data, IDP_FreePropertyContent(), IDProperty::len, IDPropertyData::pointer, and IDProperty::totallen.
Referenced by blo_update_defaults_scene(), BPy_IDGroup_clear(), IDP_Reset(), IDP_ResizeIDPArray(), WM_gizmo_properties_clear(), and WM_operator_properties_clear().
| double IDP_coerce_to_double_or_zero | ( | const IDProperty * | prop | ) |
Return a double from an IDProperty with a compatible type. This should be avoided, but it's sometimes necessary, for example when legacy files have incorrect property types.
Definition at line 813 of file idprop.cc.
References IDP_bool_get, IDP_BOOLEAN, IDP_DOUBLE, IDP_double_get, IDP_FLOAT, IDP_float_get, IDP_INT, IDP_int_get, and IDProperty::type.
Referenced by version_idproperty_move_data_float().
| float IDP_coerce_to_float_or_zero | ( | const IDProperty * | prop | ) |
Return a float from an IDProperty with a compatible type. This should be avoided, but it's sometimes necessary, for example when legacy files have incorrect property types.
Definition at line 829 of file idprop.cc.
References float, IDP_bool_get, IDP_BOOLEAN, IDP_DOUBLE, IDP_double_get, IDP_FLOAT, IDP_float_get, IDP_INT, IDP_int_get, and IDProperty::type.
Referenced by version_idproperty_move_data_float().
| int IDP_coerce_to_int_or_zero | ( | const IDProperty * | prop | ) |
Return an int from an IDProperty with a compatible type. This should be avoided, but it's sometimes necessary, for example when legacy files have incorrect property types.
Definition at line 797 of file idprop.cc.
References IDP_bool_get, IDP_BOOLEAN, IDP_DOUBLE, IDP_double_get, IDP_FLOAT, IDP_float_get, IDP_INT, IDP_int_get, and IDProperty::type.
Referenced by version_idproperty_move_data_float(), and version_idproperty_move_data_int().
|
static |
Definition at line 333 of file idprop.cc.
References BLI_assert, IDProperty::data, flag, IDP_ARRAY, IDP_CopyProperty_ex(), idp_generic_copy(), IDP_GROUP, IDProperty::len, MEM_dupallocN(), IDPropertyData::pointer, IDProperty::subtype, IDProperty::totallen, and IDProperty::type.
Referenced by IDP_CopyProperty_ex().
|
static |
Checks if a property with the same name as prop exists, and if so replaces it.
Definition at line 572 of file idprop.cc.
References BLI_assert, IDProperty::data, flag, IDPropertyData::group, IDP_AddToGroup(), IDP_CopyProperty_ex(), idp_generic_copy(), IDP_GROUP, LISTBASE_FOREACH, IDProperty::subtype, and IDProperty::type.
Referenced by IDP_CopyProperty_ex().
|
static |
Definition at line 533 of file idprop.cc.
References BLI_assert, IDProperty::data, flag, id_us_plus(), idp_generic_copy(), IDP_ID, IDP_ID_get, LIB_ID_CREATE_NO_USER_REFCOUNT, IDPropertyData::pointer, and IDProperty::type.
Referenced by IDP_CopyProperty_ex().
| IDProperty * IDP_CopyIDPArray | ( | const IDProperty * | array, |
| int | flag ) |
| flag | the ID creation/copying flags (LIB_ID_CREATE_...), same as passed to BKE_id_copy_ex. |
Definition at line 77 of file idprop.cc.
References BLI_assert, array< T, alignment >::data(), IDProperty::data, flag, GETPROP, i, IDP_CopyProperty_ex(), IDP_IDPARRAY, IDProperty::len, MEM_dupallocN(), MEM_freeN(), MEM_mallocN(), and IDPropertyData::pointer.
Referenced by IDP_CopyProperty_ex().
| IDProperty * IDP_CopyProperty | ( | const IDProperty * | prop | ) |
Definition at line 863 of file idprop.cc.
References IDP_CopyProperty_ex().
Referenced by BKE_pose_channel_copy_data(), BKE_scene_duplicate(), camera_write_cycles_compatibility_data_create(), collection_exporter_copy(), blender::ed::object::collection_exporter_export(), copy_pchan(), ED_armature_from_edit(), ed_marker_duplicate_apply(), ED_screen_user_menu_item_add_operator(), fcurves_to_pchan_links_get(), IDP_CopyPropertyContent(), IDP_ReplaceGroupInGroup(), IDP_SyncGroupTypes(), IDP_SyncGroupValues(), IMB_metadata_copy(), blender::bke::greasepencil::convert::legacy_gpencil_to_grease_pencil(), make_boneList_recursive(), operator_last_properties_init_impl(), pose_backup_create(), pose_bone_do_paste(), blender::ed::geometry::replace_strings_with_id_pointers(), scene_copy_data(), shortcut_get_operator_property(), uiDefSearchButO_ptr(), version_make_socket_stub(), view3d_duplicate(), wm_gizmo_create(), wm_keymap_item_copy(), wm_keymap_item_find(), wm_keymap_item_find_in_keymap(), WM_keymap_item_restore_to_default(), wm_operator_close_file_dialog_if_needed(), wm_operator_create(), WM_operator_last_properties_store(), WM_operator_name_call_ptr_with_depends_on_cursor(), wm_save_file_overwrite_dialog(), WM_toolsystem_ref_properties_init_for_keymap(), and wm_xr_actionmap_item_copy().
| IDProperty * IDP_CopyProperty_ex | ( | const IDProperty * | prop, |
| int | flag ) |
| flag | the ID creation/copying flags (LIB_ID_CREATE_...), same as passed to BKE_id_copy_ex. |
Definition at line 845 of file idprop.cc.
References flag, IDP_ARRAY, IDP_CopyArray(), IDP_CopyGroup(), IDP_CopyID(), IDP_CopyIDPArray(), IDP_CopyString(), idp_generic_copy(), IDP_GROUP, IDP_ID, IDP_IDPARRAY, IDP_STRING, and IDProperty::type.
Referenced by blender::animrig::ANIM_bonecoll_array_copy_no_membership(), BKE_copy_time_markers(), BKE_libblock_copy_in_lib(), BKE_pose_copy_data_ex(), BKE_view_layer_copy_data(), Freestyle::BlenderStrokeRenderer::BlenderStrokeRenderer(), copy_and_update_ownership(), copy_bone_collection(), copy_bonechildren(), blender::copy_data(), ED_armature_ebone_listbase_copy(), IDP_CopyArray(), IDP_CopyGroup(), IDP_CopyIDPArray(), IDP_CopyProperty(), IDP_MergeGroup_ex(), idprops_process(), blender::bke::node_interface::item_types::item_copy(), join_armature_remap_collection(), blender::bke::node_copy_with_mapping(), blender::bke::node_socket_copy(), remove_in_and_out_node_panel_recursive(), blender::seq::strip_duplicate(), and version_copy_socket().
| void IDP_CopyPropertyContent | ( | IDProperty * | dst, |
| const IDProperty * | src ) |
Copy content from source IDProperty into destination one, freeing destination property's content first.
Definition at line 868 of file idprop.cc.
References IDP_CopyProperty(), IDP_FreeProperty(), IDProperty::next, and IDProperty::prev.
Referenced by uiLayout::op_enum_items(), screen_user_menu_draw(), blender::nodes::update_input_properties_from_node_tree(), and blender::nodes::update_output_properties_from_node_tree().
|
static |
Definition at line 406 of file idprop.cc.
References BLI_assert, IDProperty::data, flag, idp_generic_copy(), IDP_STRING, IDProperty::len, MEM_dupallocN(), IDPropertyData::pointer, IDProperty::subtype, IDProperty::totallen, and IDProperty::type.
Referenced by IDP_CopyProperty_ex().
|
static |
Definition at line 1569 of file idprop.cc.
References BLI_assert_unreachable, BLO_read_double_array(), BLO_read_float_array(), BLO_read_int32_array(), BLO_read_int8_array(), BLO_read_pointer_array(), IDProperty::data, i, IDP_ARRAY, IDP_BOOLEAN, IDP_DirectLinkProperty(), IDP_DOUBLE, IDP_FLOAT, IDP_GROUP, IDP_ID, IDP_IDPARRAY, IDP_INT, IDP_STRING, IDProperty::len, IDPropertyData::pointer, IDProperty::subtype, and IDProperty::totallen.
Referenced by IDP_DirectLinkProperty().
|
static |
Definition at line 1611 of file idprop.cc.
References BLI_listbase_is_empty(), BLO_read_struct_list, IDPropertyData::children_map, CLOG_WARN, IDProperty::data, IDPropertyData::group, IDP_DirectLinkProperty(), idp_group_children_map_ensure(), LISTBASE_FOREACH, and LOG.
Referenced by IDP_BlendReadData_impl(), and IDP_DirectLinkProperty().
|
static |
Definition at line 1549 of file idprop.cc.
References BLO_read_struct_array, IDProperty::data, i, IDP_DirectLinkProperty(), IDProperty::len, IDPropertyData::pointer, and IDProperty::totallen.
Referenced by IDP_DirectLinkProperty().
|
static |
Definition at line 1631 of file idprop.cc.
References IDP_ARRAY, IDP_BOOLEAN, IDP_DirectLinkArray(), IDP_DirectLinkGroup(), IDP_DirectLinkIDPArray(), IDP_DirectLinkString(), IDP_DOUBLE, IDP_FLOAT, IDP_GROUP, IDP_ID, IDP_IDPARRAY, IDP_INT, IDP_int_set, IDP_STRING, printf, read_ui_data(), IDProperty::subtype, IDProperty::type, and IDProperty::ui_data.
Referenced by IDP_DirectLinkArray(), IDP_DirectLinkGroup(), and IDP_DirectLinkIDPArray().
|
static |
Definition at line 1604 of file idprop.cc.
References BLO_read_char_array(), IDProperty::data, IDProperty::len, IDPropertyData::pointer, and IDProperty::totallen.
Referenced by IDP_DirectLinkProperty().
| IDProperty * IDP_EnsureProperties | ( | ID * | id | ) |
Ensure the Group property that contains the user-defined id properties for ID id exists & return it.
Definition at line 882 of file idprop.cc.
References IDP_GROUP, MEM_callocN(), and ID::properties.
Referenced by blender::io::usd::ensure_usd_source_path_prop(), blender::io::usd::get_usd_source_path(), blender::io::fbx::read_custom_properties(), blender::io::usd::set_id_props_from_prim(), blender::bke::tests::TEST_F(), and texture_paint_image_from_view_exec().
| const IDPropertyUIDataEnumItem * IDP_EnumItemFind | ( | const IDProperty * | prop | ) |
Definition at line 471 of file idprop.cc.
References BLI_assert, IDPropertyUIDataInt::enum_items, IDPropertyUIDataInt::enum_items_num, IDP_INT, IDP_int_get, IDProperty::type, and IDProperty::ui_data.
Referenced by idp_repr_fn_recursive().
| bool IDP_EnumItemsValidate | ( | const IDPropertyUIDataEnumItem * | items, |
| const int | items_num, | ||
| void(* | error_fn )(const char *) ) |
Definition at line 488 of file idprop.cc.
References blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), i, IDPropertyUIDataEnumItem::identifier, blender::Set< Key, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::reserve(), and IDPropertyUIDataEnumItem::value.
Referenced by blender::nodes::id_property_int_update_enum_items(), and idprop_ui_data_update_int().
| bool IDP_EqualsProperties | ( | const IDProperty * | prop1, |
| const IDProperty * | prop2 ) |
Definition at line 1004 of file idprop.cc.
References IDP_EqualsProperties_ex().
Referenced by ED_screen_user_menu_item_find_operator(), wm_xr_operator_test_event(), and wm_xr_session_modal_action_test().
| bool IDP_EqualsProperties_ex | ( | const IDProperty * | prop1, |
| const IDProperty * | prop2, | ||
| bool | is_strict ) |
| is_strict | When false treat missing items as a match. |
Definition at line 913 of file idprop.cc.
References BLI_assert_unreachable, IDProperty::data, fabsf, false, IDPropertyData::group, i, IDP_ARRAY, IDP_array_voidp_get, IDP_bool_get, IDP_BOOLEAN, IDP_DOUBLE, IDP_double_get, IDP_EqualsProperties_ex(), IDP_FLOAT, IDP_float_get, IDP_GetPropertyFromGroup(), IDP_GROUP, IDP_ID, IDP_ID_get, IDP_IDPARRAY, IDP_INT, IDP_int_get, IDP_print(), IDP_property_array_get, idp_size_table, IDP_STRING, IDP_string_get, IDProperty::len, LISTBASE_FOREACH, max_ff(), IDProperty::name, printf, STREQLEN, IDProperty::subtype, and IDProperty::type.
Referenced by IDP_EqualsProperties(), IDP_EqualsProperties_ex(), and wm_keymap_item_find_in_keymap().
| void IDP_foreach_property | ( | IDProperty * | id_property_root, |
| const int | type_filter, | ||
| const blender::FunctionRef< void(IDProperty *id_property)> | callback ) |
Definition at line 1275 of file idprop.cc.
References IDProperty::data, IDPropertyData::group, i, IDP_foreach_property(), IDP_GROUP, IDP_IDPARRAY, IDP_property_array_get, IDProperty::len, LISTBASE_FOREACH, and IDProperty::type.
Referenced by IDP_foreach_property().
| void IDP_FreeArray | ( | IDProperty * | prop | ) |
Definition at line 257 of file idprop.cc.
References IDProperty::data, idp_resize_group_array(), MEM_freeN(), and IDPropertyData::pointer.
Referenced by IDP_FreePropertyContent_ex().
| void IDP_FreeFromGroup | ( | IDProperty * | group, |
| IDProperty * | prop ) |
Removes the property from the group and frees it.
Definition at line 741 of file idprop.cc.
References IDP_FreeProperty(), and IDP_RemoveFromGroup().
Referenced by BPy_IDGroup_pop(), BPy_Wrap_SetMapItem(), IDP_SyncGroupTypes(), IMB_metadata_set_field(), pyrna_struct_pop(), RNA_property_pointer_remove(), rna_property_rna_or_id_get(), RNA_struct_system_idprops_unset(), rna_system_idproperty_free(), and version_idproperty_ui_data().
|
static |
Definition at line 780 of file idprop.cc.
References BLI_assert, BLI_freelistN(), IDPropertyData::children_map, IDProperty::data, IDPropertyData::group, IDP_FreePropertyContent_ex(), IDP_GROUP, LISTBASE_FOREACH, and IDProperty::type.
Referenced by IDP_FreePropertyContent_ex().
|
static |
Definition at line 101 of file idprop.cc.
References BLI_assert, IDProperty::data, GETPROP, i, IDP_FreePropertyContent_ex(), IDP_IDPARRAY, IDProperty::len, MEM_freeN(), IDPropertyData::pointer, and IDProperty::type.
Referenced by IDP_FreePropertyContent_ex().
| void IDP_FreeProperty | ( | IDProperty * | prop | ) |
Definition at line 1251 of file idprop.cc.
References IDP_FreePropertyContent(), and MEM_freeN().
Referenced by BKE_addon_free(), BKE_area_region_free(), BKE_blender_user_menu_item_free(), BKE_collection_exporter_free_data(), BKE_pose_backup_free(), BKE_pose_channel_copy_data(), BKE_workspace_tool_remove(), blo_do_versions_280(), blo_do_versions_400(), bone_free(), camera_write_cycles_compatibility_data_clear(), blender::ed::object::collection_exporter_export(), do_versions_after_linking_280(), ED_armature_edit_free(), ensure_id_properties_freed(), IDP_CopyPropertyContent(), IDP_FreeFromGroup(), idp_from_PyMapping(), idp_from_PySequence_Fast(), idp_resize_group_array(), IMB_metadata_free(), keymap_item_free(), keymap_item_free(), blender::bke::node_update_asset_metadata(), blender::bke::idprop::IDPropertyDeleter::operator()(), operator_last_properties_init_impl(), operatortype_ghash_free_cb(), pose_clear_user_transforms_exec(), poseAnim_mapping_free(), pyrna_struct_dealloc(), pyrna_struct_id_properties_clear(), scene_free_data(), shortcut_free_operator_property(), blender::bke::idprop::tests::TEST(), blender::bke::idprop::tests::TEST(), blender::bke::idprop::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::idprop::tests::test_convert_idprop_from_value(), ui_but_event_operator_string_from_menu(), ui_but_event_operator_string_from_panel(), ui_but_event_property_operator_string(), ui_handler_wait_for_input_remove(), blender::update_id_properties_from_node_group(), userdef_free_keyconfig_prefs(), view3d_free(), wm_drop_item_free_data(), wm_free_operator_properties_callback(), WM_gizmo_properties_free(), wm_keymap_item_find(), wm_keymap_item_find_in_keymap(), wm_keymap_item_free_data(), WM_keymap_item_properties_reset(), WM_keymap_item_restore_to_default(), WM_keymap_remove_item(), WM_operator_free(), WM_operator_last_properties_store(), WM_operator_properties_free(), WM_operatortype_last_properties_clear_all(), WM_operatortype_remove_ptr(), and wm_xr_data_free().
| void IDP_FreeProperty_ex | ( | IDProperty * | prop, |
| const bool | do_id_user ) |
Definition at line 1245 of file idprop.cc.
References IDP_FreePropertyContent_ex(), and MEM_freeN().
Referenced by blender::animrig::ANIM_bonecoll_array_free(), ANIM_bonecoll_free(), BKE_armature_bonelist_free(), BKE_armature_editbonelist_free(), BKE_pose_channel_free_ex(), BKE_view_layer_free_ex(), ED_armature_ebone_listbase_free(), blender::free_data(), IDP_ReplaceInGroup_ex(), and blender::ed::geometry::run_node_group_exec().
| void IDP_FreePropertyContent | ( | IDProperty * | prop | ) |
Definition at line 1240 of file idprop.cc.
References IDP_FreePropertyContent_ex().
Referenced by ed_marker_delete_exec(), IDP_ClearProperty(), IDP_FreeProperty(), and IDP_SetIndexArray().
| void IDP_FreePropertyContent_ex | ( | IDProperty * | prop, |
| bool | do_id_user ) |
Definition at line 1213 of file idprop.cc.
References id_us_min(), IDP_ARRAY, IDP_FreeArray(), IDP_FreeGroup(), IDP_FreeIDPArray(), IDP_FreeString(), IDP_GROUP, IDP_ID, IDP_ID_get, IDP_IDPARRAY, IDP_STRING, IDP_ui_data_free(), IDProperty::type, and IDProperty::ui_data.
Referenced by BKE_libblock_free_data(), IDP_FreeGroup(), IDP_FreeIDPArray(), IDP_FreeProperty_ex(), IDP_FreePropertyContent(), blender::bke::node_interface::item_types::item_free(), blender::bke::node_free_node(), blender::bke::node_socket_free(), scene_free_markers(), and blender::seq::seq_strip_free_ex().
| void IDP_FreeString | ( | IDProperty * | prop | ) |
Definition at line 446 of file idprop.cc.
References BLI_assert, IDProperty::data, IDP_STRING, MEM_freeN(), IDPropertyData::pointer, and IDProperty::type.
Referenced by IDP_FreePropertyContent_ex().
|
static |
Definition at line 316 of file idprop.cc.
References IDProperty::data, IDProperty::flag, IDP_ui_data_copy(), MEM_callocN(), IDProperty::name, STRNCPY(), IDProperty::type, IDProperty::ui_data, IDPropertyData::val, and IDPropertyData::val2.
Referenced by IDP_CopyArray(), IDP_CopyGroup(), IDP_CopyID(), IDP_CopyProperty_ex(), and IDP_CopyString().
| IDProperty * IDP_GetIndexArray | ( | IDProperty * | prop, |
| int | index ) |
Definition at line 130 of file idprop.cc.
References BLI_assert, GETPROP, IDP_IDPARRAY, and IDProperty::type.
Referenced by RNA_property_collection_add().
| IDProperty * IDP_GetProperties | ( | ID * | id | ) |
Get the Group property that contains the user-defined id properties for ID id.
Definition at line 877 of file idprop.cc.
Referenced by blo_update_defaults_scene(), do_versions_idproperty_ui_data(), proj_paint_state_viewport_init(), blender::bke::tests::TEST_F(), texture_paint_camera_project_exec(), and version_bonelayers_to_bonecollections().
| IDProperty * IDP_GetPropertyFromGroup | ( | const IDProperty * | prop, |
| const blender::StringRef | name ) |
Definition at line 747 of file idprop.cc.
References BLI_assert, IDPropertyData::children_map, IDProperty::data, IDP_GROUP, IDProperty::len, name, and IDProperty::type.
Referenced by blender::nodes::attribute_search_exec_fn(), BKE_asset_metadata_idprop_find(), BKE_keyconfig_pref_set_select_mouse(), blo_do_versions_280(), BPy_IDGroup_Contains(), BPy_IDGroup_get(), BPy_IDGroup_Map_GetItem(), BPy_IDGroup_pop(), BPy_IDGroup_SetName(), BPy_IDProperty_Map_ValidateAndCreate(), BPy_Wrap_SetMapItem(), collection_exporter_copy(), blender::io::usd::ensure_usd_source_path_prop(), find_property_rgba(), blender::ed::object::geometry_nodes_input_attribute_toggle_exec(), blender::io::usd::get_usd_source_path(), blender::io::hydra::CameraDelegate::GetCameraParamValue(), IDP_EqualsProperties_ex(), IDP_GetPropertyFromGroup_null(), IDP_GetPropertyTypeFromGroup(), IDP_MergeGroup_ex(), IDP_ReplaceGroupInGroup(), IDP_ReplaceInGroup(), IDP_ReplaceInGroup_ex(), IDP_SyncGroupTypes(), IDP_SyncGroupValues(), idprops_ensure_named_group(), IMB_metadata_get_field(), IMB_metadata_set_field(), keymap_item_has_invalid_wm_context_data_path(), keymap_update_brushes_handle_add_item(), keymap_update_brushes_handle_remove_item(), blender::nodes::layer_name_search_exec_fn(), operator_last_properties_init_impl(), proj_paint_state_viewport_init(), pyrna_struct_contains(), pyrna_struct_get(), pyrna_struct_id_properties_ui(), pyrna_struct_pop(), pyrna_struct_subscript(), rna_idproperty_find(), rna_path_parse(), RNA_struct_system_idprops_unset(), rna_system_idproperty_find(), rna_system_idproperty_free(), blender::ed::object::shade_auto_smooth_exec(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), blender::bke::tests::TEST_F(), blender::nodes::update_input_properties_from_node_tree(), blender::nodes::update_output_properties_from_node_tree(), version_bonelayers_to_bonecollections(), version_idproperty_move_data_float(), version_idproperty_move_data_int(), version_idproperty_move_data_string(), version_idproperty_ui_data(), WM_operator_last_properties_init(), WM_toolsystem_ref_properties_get_ex(), WM_toolsystem_ref_properties_get_idprops(), and WM_toolsystem_ref_properties_init_for_keymap().
| IDProperty * IDP_GetPropertyFromGroup_null | ( | const IDProperty * | prop, |
| blender::StringRef | name ) |
Same as above, but allows the property to be null, in which case null is returned.
Definition at line 760 of file idprop.cc.
References IDP_GetPropertyFromGroup(), and name.
Referenced by blender::check_property_socket_sync(), blender::nodes::draw_interface_panel_as_panel(), blender::nodes::draw_property_for_socket(), blender::nodes::find_output_attributes_to_store(), blender::nodes::get_geometry_nodes_input_inference_values(), blender::nodes::initialize_group_input(), and blender::nodes::input_attribute_name_get().
| IDProperty * IDP_GetPropertyTypeFromGroup | ( | const IDProperty * | prop, |
| blender::StringRef | name, | ||
| char | type ) |
Same as IDP_GetPropertyFromGroup but ensure the type matches.
Definition at line 768 of file idprop.cc.
References IDP_GetPropertyFromGroup(), name, and IDProperty::type.
Referenced by camera_write_cycles_compatibility_data_create(), texture_paint_camera_project_exec(), version_cycles_properties_from_ID(), version_cycles_properties_from_render_layer(), version_cycles_properties_from_view_layer(), version_cycles_property_float(), version_cycles_property_int(), version_cycles_property_int_set(), and version_cycles_visibility_properties_from_ID().
|
static |
Definition at line 145 of file idprop.cc.
References BLI_assert, IDPropertyData::children_map, IDProperty::data, IDP_GROUP, and IDProperty::type.
Referenced by IDP_AddToGroup(), and IDP_DirectLinkGroup().
| IDProperty * IDP_ID_system_properties_ensure | ( | ID * | id | ) |
Ensure the Group property that contains the system-defined id properties for ID id exists & return it.
Definition at line 900 of file idprop.cc.
References IDP_GROUP, MEM_callocN(), and ID::system_properties.
Referenced by camera_write_cycles_compatibility_data_create().
| IDProperty * IDP_ID_system_properties_get | ( | ID * | id | ) |
Get the Group property that contains the system-defined id properties for ID id.
Definition at line 895 of file idprop.cc.
Referenced by camera_write_cycles_compatibility_data_create(), version_cycles_properties_from_ID(), and version_cycles_visibility_properties_from_ID().
|
static |
Definition at line 460 of file idprop.cc.
References IDPropertyUIDataEnumItem::description, IDPropertyUIDataInt::enum_items, IDPropertyUIDataInt::enum_items_num, i, IDPropertyUIDataEnumItem::identifier, MEM_SAFE_FREE, and IDPropertyUIDataEnumItem::name.
Referenced by IDP_ui_data_free_unique_contents(), and ui_data_free().
| void IDP_MergeGroup | ( | IDProperty * | dest, |
| const IDProperty * | src, | ||
| bool | do_overwrite ) |
If a property is missing in dest, add it. Do it recursively.
Definition at line 712 of file idprop.cc.
References IDP_MergeGroup_ex().
Referenced by BPy_IDGroup_update(), gizmo_tweak_start_and_finish(), IDP_Reset(), operator_last_properties_init_impl(), WM_gizmo_operator_invoke(), and WM_toolsystem_ref_properties_init_for_keymap().
| void IDP_MergeGroup_ex | ( | IDProperty * | dest, |
| const IDProperty * | src, | ||
| bool | do_overwrite, | ||
| int | flag ) |
If a property is missing in dest, add it. Do it recursively.
| flag | the ID creation/copying flags (LIB_ID_CREATE_...), same as passed to BKE_id_copy_ex. |
Definition at line 673 of file idprop.cc.
References BLI_assert, copy(), IDProperty::data, flag, IDPropertyData::group, IDP_AddToGroup(), IDP_CopyProperty_ex(), IDP_GetPropertyFromGroup(), IDP_GROUP, IDP_MergeGroup_ex(), IDP_ReplaceInGroup_ex(), LISTBASE_FOREACH, IDProperty::name, and IDProperty::type.
Referenced by IDP_MergeGroup(), and IDP_MergeGroup_ex().
| IDProperty * IDP_New | ( | char | type, |
| const IDPropertyTemplate * | val, | ||
| blender::StringRef | name, | ||
| eIDPropertyFlag | flags = {} ) |
Allocate a new IDProperty.
This function takes three arguments: the ID property type, a union which defines its initial value, and a name.
The union is simple to use; see the top of BKE_idprop.h for its definition. An example of using this function:
Note that you MUST either attach the id property to an id property group with IDP_AddToGroup or MEM_freeN the property, doing anything else might result in a memory leak.
Definition at line 1009 of file idprop.cc.
References IDPropertyTemplate::array, BLI_assert, CLOG_ERROR, IDPropertyTemplate::d, IDProperty::data, DEFAULT_ALLOC_FOR_NULL_STRINGS, ELEM, IDPropertyTemplate::f, IDProperty::flag, IDPropertyTemplate::i, IDPropertyTemplate::id, id_us_plus(), IDP_ARRAY, IDP_BOOLEAN, IDP_DOUBLE, IDP_FLOAT, IDP_GROUP, IDP_ID, IDP_ID_get, IDP_INT, idp_size_table, IDP_STRING, IDP_string_get, IDP_STRING_SUB_BYTE, IDP_STRING_SUB_UTF8, IDProperty::len, IDPropertyTemplate::len, LOG, MEM_calloc_arrayN(), MEM_callocN(), MEM_malloc_arrayN(), IDProperty::name, name, IDPropertyData::pointer, IDPropertyTemplate::str, IDPropertyTemplate::string, IDProperty::subtype, IDPropertyTemplate::subtype, IDProperty::totallen, IDProperty::type, IDPropertyTemplate::type, and IDPropertyData::val.
Referenced by blender::bke::idprop::array_create(), BKE_collection_exporter_add(), blender::bke::idprop::create(), blender::bke::idprop::create(), blender::bke::idprop::create(), blender::bke::idprop::create(), blender::bke::idprop::create_bool(), blender::bke::idprop::create_group(), blender::io::usd::ensure_usd_source_path_prop(), idp_from_PyBytes(), idp_from_PySequence_Buffer(), idp_from_PySequence_Fast(), idp_from_PyUnicode(), blender::io::fbx::read_ufbx_property(), RNA_property_boolean_set_array(), RNA_property_string_set_bytes(), blender::io::usd::set_bool_prop(), blender::io::usd::set_double_prop(), blender::io::usd::set_float_prop(), blender::io::usd::set_int_prop(), and blender::io::usd::set_string_prop().
| IDProperty * IDP_NewIDPArray | ( | blender::StringRef | name | ) |
Definition at line 67 of file idprop.cc.
References IDP_IDPARRAY, IDProperty::len, MEM_callocN(), IDProperty::name, name, and IDProperty::type.
Referenced by idp_from_PySequence_Fast(), and RNA_property_collection_add().
| IDProperty * IDP_NewString | ( | const char * | st, |
| const blender::StringRef | name, | ||
| const eIDPropertyFlag | flags ) |
Definition at line 399 of file idprop.cc.
References IDP_NewStringMaxSize(), and name.
Referenced by blender::bke::idprop::create().
| IDProperty * IDP_NewStringMaxSize | ( | const char * | st, |
| size_t | st_maxncpy, | ||
| blender::StringRef | name, | ||
| eIDPropertyFlag | flags = {} ) |
| st | The string to assign. Doesn't need to be null terminated when clamped by maxncpy. |
| name | The property name. |
| maxncpy | The maximum size of the string (including the \0 terminator). When zero, this is the equivalent of passing in strlen(st) + 1 |
Definition at line 363 of file idprop.cc.
References BLI_assert, BLI_strnlen(), IDProperty::data, DEFAULT_ALLOC_FOR_NULL_STRINGS, IDProperty::flag, IDP_STRING, IDP_string_get, IDProperty::len, MEM_callocN(), MEM_malloc_arrayN(), IDProperty::name, name, IDPropertyData::pointer, IDProperty::totallen, and IDProperty::type.
Referenced by IDP_NewString(), RNA_property_string_set(), ui_but_event_operator_string_from_menu(), ui_but_event_operator_string_from_panel(), and blender::nodes::update_output_properties_from_node_tree().
| void IDP_RemoveFromGroup | ( | IDProperty * | group, |
| IDProperty * | prop ) |
To free the property, you have to do: #IDP_FreeProperty(prop);
Definition at line 730 of file idprop.cc.
References BLI_assert, BLI_findindex(), BLI_remlink(), IDPropertyData::children_map, IDProperty::data, IDPropertyData::group, IDP_GROUP, IDProperty::len, and IDProperty::type.
Referenced by IDP_FreeFromGroup(), and blender::bke::tests::TEST().
| void IDP_ReplaceGroupInGroup | ( | IDProperty * | dest, |
| const IDProperty * | src ) |
Replaces all properties with the same name in a destination group from a source group.
Definition at line 634 of file idprop.cc.
References BLI_assert, IDProperty::data, IDPropertyData::group, IDP_CopyProperty(), IDP_GetPropertyFromGroup(), IDP_GROUP, IDP_ReplaceInGroup_ex(), LISTBASE_FOREACH, IDProperty::name, and IDProperty::type.
Referenced by blender::bke::tests::TEST(), and wm_operator_create().
| void IDP_ReplaceInGroup | ( | IDProperty * | group, |
| IDProperty * | prop ) |
Definition at line 666 of file idprop.cc.
References IDP_GetPropertyFromGroup(), IDP_ReplaceInGroup_ex(), and IDProperty::name.
Referenced by BKE_asset_metadata_idprop_ensure(), RNA_property_pointer_set(), blender::bke::tests::TEST(), ui_but_event_operator_string_from_panel(), and WM_operator_last_properties_store().
| void IDP_ReplaceInGroup_ex | ( | IDProperty * | group, |
| IDProperty * | prop, | ||
| IDProperty * | prop_exist, | ||
| int | flag ) |
Checks if a property with the same name as prop exists, and if so replaces it. Use this to preserve order!
| flag | the ID creation/copying flags (LIB_ID_CREATE_...), same as passed to BKE_id_copy_ex. |
Definition at line 645 of file idprop.cc.
References BLI_assert, BLI_insertlinkreplace(), IDPropertyData::children_map, IDProperty::data, flag, IDPropertyData::group, IDP_AddToGroup(), IDP_FreeProperty_ex(), IDP_GetPropertyFromGroup(), IDP_GROUP, LIB_ID_CREATE_NO_USER_REFCOUNT, IDProperty::name, and IDProperty::type.
Referenced by BPy_IDProperty_Map_ValidateAndCreate(), IDP_MergeGroup_ex(), IDP_ReplaceGroupInGroup(), IDP_ReplaceInGroup(), IDP_SyncGroupTypes(), IDP_SyncGroupValues(), idprops_ensure_named_group(), and RNA_property_pointer_set().
| void IDP_Reset | ( | IDProperty * | prop, |
| const IDProperty * | reference ) |
Definition at line 1264 of file idprop.cc.
References IDP_ClearProperty(), and IDP_MergeGroup().
|
static |
Definition at line 197 of file idprop.cc.
References blender::bke::idprop::create_group(), IDProperty::data, IDP_FreeProperty(), IDP_GROUP, IDProperty::len, IDPropertyData::pointer, and IDProperty::subtype.
Referenced by IDP_FreeArray(), and IDP_ResizeArray().
| void IDP_ResizeArray | ( | IDProperty * | prop, |
| int | newlen ) |
This function works for strings too!
Definition at line 220 of file idprop.cc.
References IDProperty::data, IDP_ARRAY_REALLOC_LIMIT, idp_resize_group_array(), idp_size_table, IDProperty::len, MEM_recallocN, IDPropertyData::pointer, IDProperty::subtype, and IDProperty::totallen.
Referenced by IDP_AssignStringMaxSize(), and RNA_property_string_set_bytes().
| void IDP_ResizeIDPArray | ( | IDProperty * | prop, |
| int | newlen ) |
Definition at line 153 of file idprop.cc.
References BLI_assert, IDProperty::data, GETPROP, i, IDP_ARRAY_REALLOC_LIMIT, IDP_ClearProperty(), IDP_IDPARRAY, IDProperty::len, len, MEM_recallocN, IDPropertyData::pointer, IDProperty::totallen, and IDProperty::type.
Referenced by IDP_AppendArray(), RNA_property_collection_clear(), and RNA_property_collection_remove().
| void IDP_SetIndexArray | ( | IDProperty * | prop, |
| int | index, | ||
| IDProperty * | item ) |
Shallow copies item.
Definition at line 114 of file idprop.cc.
References BLI_assert, GETPROP, IDP_FreePropertyContent(), IDP_IDPARRAY, IDProperty::len, and IDProperty::type.
Referenced by IDP_AppendArray().
| void IDP_SyncGroupTypes | ( | IDProperty * | dest, |
| const IDProperty * | src, | ||
| const bool | do_arraylen ) |
Definition at line 612 of file idprop.cc.
References IDProperty::data, ELEM, IDPropertyData::group, IDP_ARRAY, IDP_CopyProperty(), IDP_FreeFromGroup(), IDP_GetPropertyFromGroup(), IDP_GROUP, IDP_IDPARRAY, IDP_ReplaceInGroup_ex(), IDP_SyncGroupTypes(), IDProperty::len, LISTBASE_FOREACH_MUTABLE, IDProperty::name, IDProperty::subtype, and IDProperty::type.
Referenced by IDP_SyncGroupTypes(), and WM_operator_type_set().
| void IDP_SyncGroupValues | ( | IDProperty * | dest, |
| const IDProperty * | src ) |
Sync values from one group to another when values name and types match, copy the values, else ignore.
Definition at line 585 of file idprop.cc.
References BLI_assert, IDProperty::data, IDPropertyData::group, IDP_BOOLEAN, IDP_CopyProperty(), IDP_DOUBLE, IDP_FLOAT, IDP_GetPropertyFromGroup(), IDP_GROUP, IDP_INT, IDP_ReplaceInGroup_ex(), IDP_SyncGroupValues(), LISTBASE_FOREACH, IDProperty::name, and IDProperty::type.
Referenced by BKE_pose_backup_restore(), IDP_SyncGroupValues(), pose_bone_do_paste(), poseAnim_mapping_reset(), and blender::bke::tests::TEST().
| IDPropertyUIData * IDP_TryConvertUIData | ( | IDPropertyUIData * | src, |
| eIDPropertyUIDataType | src_type, | ||
| eIDPropertyUIDataType | dst_type ) |
Convert UI data like default arrays from the old type to the new type as possible. Takes ownership of the input data; it can return it directly if the types match.
Definition at line 1779 of file idprop.cc.
References IDPropertyUIDataBool::base, IDPropertyUIDataFloat::base, IDPropertyUIDataInt::base, convert_base_ui_data(), IDPropertyUIDataBool::default_array, IDPropertyUIDataFloat::default_array, IDPropertyUIDataInt::default_array, IDPropertyUIDataBool::default_array_len, IDPropertyUIDataFloat::default_array_len, IDPropertyUIDataInt::default_array_len, IDPropertyUIDataBool::default_value, IDPropertyUIDataFloat::default_value, IDPropertyUIDataInt::default_value, float, i, IDP_UI_DATA_TYPE_BOOLEAN, IDP_UI_DATA_TYPE_FLOAT, IDP_UI_DATA_TYPE_ID, IDP_UI_DATA_TYPE_INT, IDP_UI_DATA_TYPE_STRING, IDP_UI_DATA_TYPE_UNSUPPORTED, IDPropertyUIDataFloat::max, IDPropertyUIDataInt::max, MEM_malloc_arrayN(), IDPropertyUIDataFloat::min, IDPropertyUIDataInt::min, IDPropertyUIDataFloat::soft_max, IDPropertyUIDataInt::soft_max, IDPropertyUIDataFloat::soft_min, IDPropertyUIDataInt::soft_min, IDPropertyUIDataFloat::step, IDPropertyUIDataInt::step, and ui_data_free().
Referenced by BPy_IDProperty_Map_ValidateAndCreate().
| IDPropertyUIData * IDP_ui_data_copy | ( | const IDProperty * | prop | ) |
Definition at line 265 of file idprop.cc.
References BLI_strdup(), BLI_strdup_null(), IDPropertyUIDataBool::default_array, IDPropertyUIDataFloat::default_array, IDPropertyUIDataInt::default_array, IDPropertyUIDataString::default_value, IDPropertyUIData::description, IDPropertyUIDataEnumItem::description, IDPropertyUIDataInt::enum_items, IDPropertyUIDataInt::enum_items_num, i, IDPropertyUIDataEnumItem::identifier, IDP_ui_data_type(), IDP_UI_DATA_TYPE_BOOLEAN, IDP_UI_DATA_TYPE_FLOAT, IDP_UI_DATA_TYPE_ID, IDP_UI_DATA_TYPE_INT, IDP_UI_DATA_TYPE_STRING, IDP_UI_DATA_TYPE_UNSUPPORTED, MEM_dupallocN(), IDPropertyUIDataEnumItem::name, and IDProperty::ui_data.
Referenced by BPy_IDPropertyUIManager_update_from(), and idp_generic_copy().
| IDPropertyUIData * IDP_ui_data_ensure | ( | IDProperty * | prop | ) |
Definition at line 1761 of file idprop.cc.
References IDP_ui_data_type(), IDProperty::ui_data, and ui_data_alloc().
Referenced by BPy_IDIDPropertyUIManager_as_dict(), BPy_IDPropertyUIManager_update(), blender::bke::create_auto_smooth_modifier(), blender::nodes::id_name_or_value_prop(), blender::nodes::id_property_create_from_socket(), RNA_property_float_set_default(), RNA_property_int_set_default(), blender::nodes::update_input_properties_from_node_tree(), blender::nodes::update_output_properties_from_node_tree(), and version_idproperty_ui_data().
| void IDP_ui_data_free | ( | IDProperty * | prop | ) |
Definition at line 1207 of file idprop.cc.
References IDP_ui_data_type(), IDProperty::ui_data, and ui_data_free().
Referenced by BPy_IDPropertyUIManager_clear(), BPy_IDPropertyUIManager_update_from(), IDP_FreePropertyContent_ex(), and blender::nodes::update_output_properties_from_node_tree().
| void IDP_ui_data_free_unique_contents | ( | IDPropertyUIData * | ui_data, |
| eIDPropertyUIDataType | type, | ||
| const IDPropertyUIData * | other ) |
Free allocated pointers in the UI data that isn't shared with the UI data in the other argument. Useful for returning early on failure when updating UI data in place, or when replacing a subset of the UI data's allocated pointers.
Definition at line 1117 of file idprop.cc.
References IDPropertyUIDataBool::default_array, IDPropertyUIDataFloat::default_array, IDPropertyUIDataInt::default_array, IDPropertyUIDataString::default_value, IDPropertyUIData::description, IDPropertyUIDataInt::enum_items, IDP_int_ui_data_free_enum_items(), IDP_UI_DATA_TYPE_BOOLEAN, IDP_UI_DATA_TYPE_FLOAT, IDP_UI_DATA_TYPE_ID, IDP_UI_DATA_TYPE_INT, IDP_UI_DATA_TYPE_STRING, IDP_UI_DATA_TYPE_UNSUPPORTED, and MEM_SAFE_FREE.
Referenced by idprop_ui_data_update_bool(), idprop_ui_data_update_float(), idprop_ui_data_update_id(), idprop_ui_data_update_int(), and idprop_ui_data_update_string().
| bool IDP_ui_data_supported | ( | const IDProperty * | prop | ) |
Definition at line 1713 of file idprop.cc.
References IDP_ui_data_type(), and IDP_UI_DATA_TYPE_UNSUPPORTED.
Referenced by BPy_IDIDPropertyUIManager_as_dict(), BPy_IDPropertyUIManager_clear(), BPy_IDPropertyUIManager_update(), BPy_IDPropertyUIManager_update_from(), pyrna_struct_id_properties_ui(), and version_idproperty_ui_data().
| eIDPropertyUIDataType IDP_ui_data_type | ( | const IDProperty * | prop | ) |
Definition at line 1691 of file idprop.cc.
References ELEM, IDP_ARRAY, IDP_BOOLEAN, IDP_DOUBLE, IDP_FLOAT, IDP_ID, IDP_INT, IDP_STRING, IDP_UI_DATA_TYPE_BOOLEAN, IDP_UI_DATA_TYPE_FLOAT, IDP_UI_DATA_TYPE_ID, IDP_UI_DATA_TYPE_INT, IDP_UI_DATA_TYPE_STRING, IDP_UI_DATA_TYPE_UNSUPPORTED, IDProperty::subtype, and IDProperty::type.
Referenced by BPy_IDIDPropertyUIManager_as_dict(), BPy_IDProperty_Map_ValidateAndCreate(), BPy_IDPropertyUIManager_update(), IDP_ui_data_copy(), IDP_ui_data_ensure(), IDP_ui_data_free(), IDP_ui_data_supported(), idprop_ui_data_update_bool(), idprop_ui_data_update_float(), idprop_ui_data_update_id(), idprop_ui_data_update_int(), idprop_ui_data_update_string(), read_ui_data(), RNA_property_boolean_get_default(), RNA_property_boolean_get_default_array(), version_idproperty_ui_data(), and write_ui_data().
|
static |
Definition at line 1369 of file idprop.cc.
References BLI_assert_unreachable, BLO_write_double_array(), BLO_write_float_array(), BLO_write_int32_array(), BLO_write_int8_array(), BLO_write_pointer_array(), IDProperty::data, i, IDP_ARRAY, IDP_BlendWrite(), IDP_BOOLEAN, IDP_DOUBLE, IDP_FLOAT, IDP_GROUP, IDP_ID, IDP_IDPARRAY, IDP_INT, IDP_STRING, IDProperty::len, IDPropertyData::pointer, and IDProperty::subtype.
Referenced by IDP_WriteProperty_OnlyData().
|
static |
Definition at line 1432 of file idprop.cc.
References IDProperty::data, IDPropertyData::group, IDP_BlendWrite(), and LISTBASE_FOREACH.
Referenced by IDP_WriteProperty_OnlyData().
|
static |
Definition at line 1410 of file idprop.cc.
References BLO_write_struct_array, IDProperty::data, IDP_WriteProperty_OnlyData(), IDProperty::len, and IDPropertyData::pointer.
Referenced by IDP_WriteProperty_OnlyData().
| void IDP_WriteProperty_OnlyData | ( | const IDProperty * | prop, |
| BlendWriter * | writer ) |
Definition at line 1440 of file idprop.cc.
References IDP_ARRAY, IDP_GROUP, IDP_IDPARRAY, IDP_STRING, IDP_WriteArray(), IDP_WriteGroup(), IDP_WriteIDPArray(), IDP_WriteString(), IDProperty::type, IDProperty::ui_data, and write_ui_data().
Referenced by IDP_BlendWrite(), and IDP_WriteIDPArray().
|
static |
Definition at line 1424 of file idprop.cc.
References BLO_write_char_array(), IDProperty::data, IDProperty::len, and IDPropertyData::pointer.
Referenced by IDP_WriteProperty_OnlyData().
|
static |
Definition at line 1469 of file idprop.cc.
References BLI_assert_unreachable, BLO_read_double_array(), BLO_read_int32_array(), BLO_read_int8_array(), BLO_read_string(), BLO_read_struct, BLO_read_struct_array, IDPropertyUIDataBool::default_array, IDPropertyUIDataFloat::default_array, IDPropertyUIDataInt::default_array, IDPropertyUIDataBool::default_array_len, IDPropertyUIDataFloat::default_array_len, IDPropertyUIDataInt::default_array_len, IDPropertyUIDataString::default_value, IDPropertyUIData::description, IDPropertyUIDataEnumItem::description, IDPropertyUIDataInt::enum_items, IDPropertyUIDataInt::enum_items_num, i, IDPropertyUIDataEnumItem::identifier, IDP_ARRAY, IDP_ui_data_type(), IDP_UI_DATA_TYPE_BOOLEAN, IDP_UI_DATA_TYPE_FLOAT, IDP_UI_DATA_TYPE_ID, IDP_UI_DATA_TYPE_INT, IDP_UI_DATA_TYPE_STRING, IDP_UI_DATA_TYPE_UNSUPPORTED, IDPropertyUIDataEnumItem::name, IDProperty::type, and IDProperty::ui_data.
Referenced by IDP_DirectLinkProperty().
|
static |
Definition at line 1718 of file idprop.cc.
References IDPropertyUIDataBool::base, IDPropertyUIDataFloat::base, IDPropertyUIDataID::base, IDPropertyUIDataInt::base, IDPropertyUIDataString::base, BLI_assert_unreachable, FLT_MAX, IDP_UI_DATA_TYPE_BOOLEAN, IDP_UI_DATA_TYPE_FLOAT, IDP_UI_DATA_TYPE_ID, IDP_UI_DATA_TYPE_INT, IDP_UI_DATA_TYPE_STRING, IDP_UI_DATA_TYPE_UNSUPPORTED, IDPropertyUIDataFloat::max, IDPropertyUIDataInt::max, MEM_callocN(), IDPropertyUIDataFloat::min, IDPropertyUIDataInt::min, IDPropertyUIDataFloat::precision, IDPropertyUIDataFloat::soft_max, IDPropertyUIDataInt::soft_max, IDPropertyUIDataFloat::soft_min, IDPropertyUIDataInt::soft_min, IDPropertyUIDataFloat::step, and IDPropertyUIDataInt::step.
Referenced by convert_base_ui_data(), and IDP_ui_data_ensure().
|
static |
Definition at line 1170 of file idprop.cc.
References IDPropertyUIDataBool::default_array, IDPropertyUIDataFloat::default_array, IDPropertyUIDataInt::default_array, IDPropertyUIDataString::default_value, IDPropertyUIData::description, IDP_int_ui_data_free_enum_items(), IDP_UI_DATA_TYPE_BOOLEAN, IDP_UI_DATA_TYPE_FLOAT, IDP_UI_DATA_TYPE_ID, IDP_UI_DATA_TYPE_INT, IDP_UI_DATA_TYPE_STRING, IDP_UI_DATA_TYPE_UNSUPPORTED, MEM_freeN(), and MEM_SAFE_FREE.
Referenced by IDP_TryConvertUIData(), and IDP_ui_data_free().
|
static |
Definition at line 1309 of file idprop.cc.
References BLI_assert_unreachable, BLO_write_double_array(), BLO_write_int32_array(), BLO_write_int8_array(), BLO_write_string(), BLO_write_struct, BLO_write_struct_array, IDPropertyUIDataBool::default_array, IDPropertyUIDataFloat::default_array, IDPropertyUIDataInt::default_array, IDPropertyUIDataBool::default_array_len, IDPropertyUIDataFloat::default_array_len, IDPropertyUIDataInt::default_array_len, IDPropertyUIDataString::default_value, IDPropertyUIData::description, IDPropertyUIDataEnumItem::description, IDPropertyUIDataInt::enum_items, IDPropertyUIDataInt::enum_items_num, i, IDPropertyUIDataEnumItem::identifier, IDP_ARRAY, IDP_ui_data_type(), IDP_UI_DATA_TYPE_BOOLEAN, IDP_UI_DATA_TYPE_FLOAT, IDP_UI_DATA_TYPE_ID, IDP_UI_DATA_TYPE_INT, IDP_UI_DATA_TYPE_STRING, IDP_UI_DATA_TYPE_UNSUPPORTED, IDPropertyUIDataEnumItem::name, IDProperty::type, and IDProperty::ui_data.
Referenced by IDP_WriteProperty_OnlyData().
|
static |
Local size table, aligned with eIDPropertyType.
Definition at line 46 of file idprop.cc.
Referenced by IDP_EqualsProperties_ex(), IDP_New(), and IDP_ResizeArray().
|
static |