|
Blender V4.5
|
#include <cfloat>#include <climits>#include <cstddef>#include <cstdio>#include <cstdlib>#include <cstring>#include <fmt/format.h>#include "BLI_endian_switch.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 = {"bke.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) |
| 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 66 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 42 of file idprop.cc.
Referenced by IDP_ResizeArray(), and IDP_ResizeIDPArray().
|
static |
Definition at line 1760 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 725 of file idprop.cc.
References BLI_addtail(), BLI_assert, IDProperty::data, IDPropertyData::group, IDP_GetPropertyFromGroup(), IDP_GROUP, IDProperty::len, IDProperty::name, and IDProperty::type.
Referenced by bc_set_IDPropertyMatrix(), 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(), 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(), 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 138 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 538 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, 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 431 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 413 of file idprop.cc.
References BLI_assert, BLI_strnlen(), IDProperty::data, IDP_ResizeArray(), IDP_STRING, IDP_String, 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 1665 of file idprop.cc.
References IDP_DirectLinkGroup(), IDP_GROUP, and printf.
| void IDP_BlendWrite | ( | BlendWriter * | writer, |
| const IDProperty * | prop ) |
Definition at line 1453 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(), blender::bke::forward_compat::write_node_socket_interface(), write_uilist(), and write_userdef().
| void IDP_ClearProperty | ( | IDProperty * | prop | ) |
Definition at line 1249 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(), 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 823 of file idprop.cc.
References IDP_Bool, IDP_BOOLEAN, IDP_DOUBLE, IDP_Double, IDP_FLOAT, IDP_Float, IDP_INT, IDP_Int, 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 839 of file idprop.cc.
References IDP_Bool, IDP_BOOLEAN, IDP_DOUBLE, IDP_Double, IDP_FLOAT, IDP_Float, IDP_INT, IDP_Int, 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 807 of file idprop.cc.
References IDP_Bool, IDP_BOOLEAN, IDP_DOUBLE, IDP_Double, IDP_FLOAT, IDP_Float, IDP_INT, IDP_Int, and IDProperty::type.
Referenced by version_idproperty_move_data_float(), and version_idproperty_move_data_int().
|
static |
Definition at line 326 of file idprop.cc.
References IDProperty::data, flag, 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 564 of file idprop.cc.
References BLI_addtail(), BLI_assert, IDProperty::data, flag, IDPropertyData::group, IDP_CopyProperty_ex(), idp_generic_copy(), IDP_GROUP, IDProperty::len, LISTBASE_FOREACH, IDProperty::subtype, and IDProperty::type.
Referenced by IDP_CopyProperty_ex().
|
static |
Definition at line 525 of file idprop.cc.
References BLI_assert, IDProperty::data, flag, id_us_plus(), idp_generic_copy(), IDP_ID, IDP_Id, 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 78 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 873 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(), blender::bke::forward_compat::construct_interface_as_legacy_sockets(), 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 855 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(), blender::bke::node_interface::item_types::item_copy(), join_armature_remap_collection(), blender::bke::node_copy_with_mapping(), blender::bke::node_socket_copy(), blender::seq::strip_duplicate(), version_copy_socket(), and version_forward_compat_system_idprops().
| 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 878 of file idprop.cc.
References IDP_CopyProperty(), IDP_FreeProperty(), IDProperty::next, and IDProperty::prev.
Referenced by screen_user_menu_draw(), uiItemsFullEnumO_items(), blender::nodes::update_input_properties_from_node_tree(), and blender::nodes::update_output_properties_from_node_tree().
|
static |
Definition at line 398 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 1561 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 1603 of file idprop.cc.
References BLO_read_struct_list, IDProperty::data, IDPropertyData::group, IDP_DirectLinkProperty(), and LISTBASE_FOREACH.
Referenced by IDP_BlendReadData_impl(), and IDP_DirectLinkProperty().
|
static |
Definition at line 1541 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 1615 of file idprop.cc.
References BLI_endian_switch_int32(), BLI_endian_switch_int64(), BLO_read_requires_endian_switch(), IDProperty::data, 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, IDP_STRING, printf, read_ui_data(), IDProperty::subtype, IDProperty::type, IDProperty::ui_data, IDPropertyData::val, and IDPropertyData::val2.
Referenced by IDP_DirectLinkArray(), IDP_DirectLinkGroup(), and IDP_DirectLinkIDPArray().
|
static |
Definition at line 1596 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 id properties for ID id exists & return it.
Definition at line 892 of file idprop.cc.
References IDP_GROUP, MEM_callocN(), and ID::properties.
Referenced by camera_write_cycles_compatibility_data_create(), 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(), and texture_paint_image_from_view_exec().
| const IDPropertyUIDataEnumItem * IDP_EnumItemFind | ( | const IDProperty * | prop | ) |
Definition at line 463 of file idprop.cc.
References BLI_assert, IDPropertyUIDataInt::enum_items, IDPropertyUIDataInt::enum_items_num, IDP_INT, IDP_Int, 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 480 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 996 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 905 of file idprop.cc.
References BLI_assert_unreachable, IDProperty::data, fabsf, false, IDPropertyData::group, i, IDP_ARRAY, IDP_Array, IDP_Bool, IDP_BOOLEAN, IDP_DOUBLE, IDP_Double, IDP_EqualsProperties_ex(), IDP_FLOAT, IDP_Float, IDP_GetPropertyFromGroup(), IDP_GROUP, IDP_ID, IDP_Id, IDP_IDPARRAY, IDP_IDPArray, IDP_INT, IDP_Int, IDP_print(), idp_size_table, IDP_STRING, IDP_String, IDProperty::len, LISTBASE_FOREACH, max_ff(), IDProperty::name, printf, STREQLEN, IDProperty::subtype, and IDProperty::type.
Referenced by IDP_EqualsProperties(), IDP_EqualsProperties_ex(), ui_key_event_property_match(), 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 1267 of file idprop.cc.
References IDProperty::data, IDPropertyData::group, i, IDP_Array, IDP_foreach_property(), IDP_GROUP, IDP_IDPARRAY, IDProperty::len, LISTBASE_FOREACH, and IDProperty::type.
Referenced by IDP_foreach_property().
| void IDP_FreeArray | ( | IDProperty * | prop | ) |
Definition at line 250 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 760 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_idproperty_free(), RNA_property_pointer_remove(), rna_property_rna_or_id_get(), RNA_struct_idprops_unset(), and version_idproperty_ui_data().
|
static |
Definition at line 791 of file idprop.cc.
References BLI_assert, BLI_freelistN(), IDProperty::data, IDPropertyData::group, IDP_FreePropertyContent_ex(), IDP_GROUP, LISTBASE_FOREACH, and IDProperty::type.
Referenced by IDP_FreePropertyContent_ex().
|
static |
Definition at line 102 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 1243 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(), IDP_CopyPropertyContent(), IDP_FreeFromGroup(), idp_from_PyMapping(), idp_from_PySequence_Fast(), IDP_ReplaceGroupInGroup(), idp_resize_group_array(), IDP_SyncGroupTypes(), IDP_SyncGroupValues(), 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::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 1237 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(), blender::bke::forward_compat::legacy_socket_interface_free(), and blender::ed::geometry::run_node_group_exec().
| void IDP_FreePropertyContent | ( | IDProperty * | prop | ) |
Definition at line 1232 of file idprop.cc.
References IDP_FreePropertyContent_ex().
Referenced by ed_marker_delete_exec(), IDP_ClearProperty(), IDP_FreeProperty(), IDP_ResizeIDPArray(), and IDP_SetIndexArray().
| void IDP_FreePropertyContent_ex | ( | IDProperty * | prop, |
| bool | do_id_user ) |
Definition at line 1205 of file idprop.cc.
References id_us_min(), IDP_ARRAY, IDP_FreeArray(), IDP_FreeGroup(), IDP_FreeIDPArray(), IDP_FreeString(), IDP_GROUP, IDP_ID, IDP_Id, 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(), preview_id_copy_free(), scene_free_markers(), and blender::seq::seq_strip_free_ex().
| void IDP_FreeString | ( | IDProperty * | prop | ) |
Definition at line 438 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 309 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 131 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 id properties for ID id.
Definition at line 887 of file idprop.cc.
Referenced by blo_update_defaults_scene(), camera_write_cycles_compatibility_data_create(), do_versions_idproperty_ui_data(), preview_id_copy_free(), proj_paint_state_viewport_init(), texture_paint_camera_project_exec(), version_bonelayers_to_bonecollections(), version_cycles_properties_from_ID(), and version_cycles_visibility_properties_from_ID().
| IDProperty * IDP_GetPropertyFromGroup | ( | const IDProperty * | prop, |
| const blender::StringRef | name ) |
Definition at line 766 of file idprop.cc.
References BLI_assert, BLI_listbase_find(), IDProperty::data, IDPropertyData::group, IDP_GROUP, and IDProperty::type.
Referenced by blender::nodes::attribute_search_exec_fn(), bc_get_IDProperty(), 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_IDProperty_Map_ValidateAndCreate(), BPy_Wrap_SetMapItem(), collection_exporter_copy(), blender::io::usd::ensure_usd_source_path_prop(), find_rna_property_rgba(), blender::ed::object::geometry_nodes_input_attribute_toggle_exec(), blender::io::usd::get_usd_source_path(), IDP_AddToGroup(), IDP_EqualsProperties_ex(), IDP_GetPropertyTypeFromGroup(), IDP_InsertToGroup(), IDP_MergeGroup_ex(), IDP_ReplaceInGroup(), IDP_ReplaceInGroup_ex(), IDP_SyncGroupTypes(), 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_idproperty_free(), rna_path_parse(), RNA_struct_idprops_unset(), blender::ed::object::shade_auto_smooth_exec(), 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 | ( | const IDProperty * | prop, |
| const char * | name ) |
This is a slightly more efficient version of the function above in the when there are lots of properties. It can be faster because it avoids computing the length of everything that the string is compared to. Also see #140706.
Definition at line 773 of file idprop.cc.
References BLI_assert, BLI_findstring(), IDProperty::data, IDPropertyData::group, IDP_GROUP, offsetof, and IDProperty::type.
| IDProperty * IDP_GetPropertyTypeFromGroup | ( | const IDProperty * | prop, |
| blender::StringRef | name, | ||
| char | type ) |
Same as IDP_GetPropertyFromGroup but ensure the type matches.
Definition at line 779 of file idprop.cc.
References IDP_GetPropertyFromGroup(), 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().
| bool IDP_InsertToGroup | ( | IDProperty * | group, |
| IDProperty * | previous, | ||
| IDProperty * | pnew ) |
Definition at line 738 of file idprop.cc.
References BLI_assert, BLI_insertlinkafter(), IDProperty::data, IDPropertyData::group, IDP_GetPropertyFromGroup(), IDP_GROUP, IDProperty::len, IDProperty::name, and IDProperty::type.
|
static |
Definition at line 452 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 720 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 679 of file idprop.cc.
References BLI_addtail(), BLI_assert, copy(), IDProperty::data, flag, IDPropertyData::group, IDP_CopyProperty_ex(), IDP_GetPropertyFromGroup(), IDP_GROUP, IDP_MergeGroup_ex(), IDP_ReplaceInGroup_ex(), IDProperty::len, LISTBASE_FOREACH, IDProperty::name, and IDProperty::type.
Referenced by IDP_MergeGroup(), IDP_MergeGroup_ex(), and version_forward_compat_system_idprops().
| 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 1001 of file idprop.cc.
References IDPropertyTemplate::array, BLI_assert, CLOG_ERROR, blender::StringRefBase::copy_utf8_truncated(), 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, IDP_INT, idp_size_table, IDP_STRING, IDP_String, IDP_STRING_SUB_BYTE, IDP_STRING_SUB_UTF8, IDProperty::len, IDPropertyTemplate::len, LOG, MEM_calloc_arrayN(), MEM_callocN(), MEM_malloc_arrayN(), IDProperty::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(), blender::ed::object::collection_exporter_add_exec(), 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_enum_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(), and blender::io::usd::set_string_prop().
| IDProperty * IDP_NewIDPArray | ( | blender::StringRef | name | ) |
Definition at line 68 of file idprop.cc.
References blender::StringRefBase::copy_utf8_truncated(), IDP_IDPARRAY, IDProperty::len, MEM_callocN(), IDProperty::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 391 of file idprop.cc.
References IDP_NewStringMaxSize().
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 355 of file idprop.cc.
References BLI_assert, BLI_strnlen(), blender::StringRefBase::copy_utf8_truncated(), IDProperty::data, DEFAULT_ALLOC_FOR_NULL_STRINGS, IDProperty::flag, IDP_STRING, IDP_String, IDProperty::len, MEM_callocN(), MEM_malloc_arrayN(), IDProperty::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 751 of file idprop.cc.
References BLI_assert, BLI_findindex(), BLI_remlink(), IDProperty::data, IDPropertyData::group, IDP_GROUP, IDProperty::len, and IDProperty::type.
Referenced by IDP_FreeFromGroup().
| 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 630 of file idprop.cc.
References BLI_addtail(), BLI_assert, BLI_insertlinkreplace(), copy(), IDProperty::data, ListBase::first, IDPropertyData::group, IDP_CopyProperty(), IDP_CopyProperty(), IDP_FreeProperty(), IDP_GROUP, IDProperty::len, LISTBASE_FOREACH, IDProperty::name, IDProperty::next, STREQ, and IDProperty::type.
Referenced by wm_operator_create().
| void IDP_ReplaceInGroup | ( | IDProperty * | group, |
| IDProperty * | prop ) |
Definition at line 672 of file idprop.cc.
References IDP_GetPropertyFromGroup(), IDP_ReplaceInGroup_ex(), and IDProperty::name.
Referenced by BKE_asset_metadata_idprop_ensure(), RNA_property_pointer_set(), 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 654 of file idprop.cc.
References BLI_addtail(), BLI_assert, BLI_insertlinkreplace(), IDProperty::data, flag, IDPropertyData::group, IDP_FreeProperty_ex(), IDP_GetPropertyFromGroup(), IDP_GROUP, IDProperty::len, LIB_ID_CREATE_NO_USER_REFCOUNT, IDProperty::name, and IDProperty::type.
Referenced by BPy_IDProperty_Map_ValidateAndCreate(), IDP_MergeGroup_ex(), IDP_ReplaceInGroup(), idprops_ensure_named_group(), and RNA_property_pointer_set().
| void IDP_Reset | ( | IDProperty * | prop, |
| const IDProperty * | reference ) |
Definition at line 1256 of file idprop.cc.
References IDP_ClearProperty(), and IDP_MergeGroup().
|
static |
Definition at line 190 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 213 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 146 of file idprop.cc.
References BLI_assert, IDProperty::data, GETPROP, i, IDP_ARRAY_REALLOC_LIMIT, IDP_FreePropertyContent(), 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 115 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 607 of file idprop.cc.
References BLI_insertlinkreplace(), IDProperty::data, ELEM, IDPropertyData::group, IDP_ARRAY, IDP_CopyProperty(), IDP_FreeFromGroup(), IDP_FreeProperty(), IDP_GetPropertyFromGroup(), IDP_GROUP, IDP_IDPARRAY, 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 578 of file idprop.cc.
References BLI_assert, BLI_findstring(), BLI_insertlinkreplace(), IDProperty::data, IDPropertyData::group, IDP_BOOLEAN, IDP_CopyProperty(), IDP_DOUBLE, IDP_FLOAT, IDP_FreeProperty(), IDP_GROUP, IDP_INT, IDP_SyncGroupValues(), LISTBASE_FOREACH, offsetof, and IDProperty::type.
Referenced by BKE_pose_backup_restore(), IDP_SyncGroupValues(), pose_bone_do_paste(), and poseAnim_mapping_reset().
| 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 1769 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, 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 258 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 1751 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 1199 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 1109 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 1703 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 1681 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 1361 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 1424 of file idprop.cc.
References IDProperty::data, IDPropertyData::group, IDP_BlendWrite(), and LISTBASE_FOREACH.
Referenced by IDP_WriteProperty_OnlyData().
|
static |
Definition at line 1402 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 1432 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 1416 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 1461 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 1708 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 1162 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 1301 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 47 of file idprop.cc.
Referenced by IDP_EqualsProperties_ex(), IDP_New(), and IDP_ResizeArray().
|
static |