110 void (*error_fn)(
const char *));
260#define IDP_Int(prop) ((prop)->data.val)
261#define IDP_Bool(prop) ((prop)->data.val)
262#define IDP_Array(prop) ((prop)->data.pointer)
264#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 201112L)
265# define IDP_Float(prop) \
267 IDProperty *: (*(float *)&(prop)->data.val), \
268 const IDProperty *: (*(const float *)&(prop)->data.val))
269# define IDP_Double(prop) \
271 IDProperty *: (*(double *)&(prop)->data.val), \
272 const IDProperty *: (*(const double *)&(prop)->data.val))
273# define IDP_String(prop) \
275 IDProperty *: ((char *)(prop)->data.pointer), \
276 const IDProperty *: ((const char *)(prop)->data.pointer))
277# define IDP_IDPArray(prop) \
279 IDProperty *: ((IDProperty *)(prop)->data.pointer), \
280 const IDProperty *: ((const IDProperty *)(prop)->data.pointer))
281# define IDP_Id(prop) \
283 IDProperty *: ((ID *)(prop)->data.pointer), \
284 const IDProperty *: ((const ID *)(prop)->data.pointer))
286# define IDP_Float(prop) (*(float *)&(prop)->data.val)
287# define IDP_Double(prop) (*(double *)&(prop)->data.val)
288# define IDP_String(prop) ((char *)(prop)->data.pointer)
289# define IDP_IDPArray(prop) ((IDProperty *)(prop)->data.pointer)
290# define IDP_Id(prop) ((ID *)(prop)->data.pointer)
324 void (*str_append_fn)(
void *user_data,
const char *
str,
uint str_len),
334 const char *caller_func_id);
335#define IDP_BlendDataRead(reader, prop) IDP_BlendReadData_impl(reader, prop, __func__)
414std::unique_ptr<IDProperty, IDPropertyDeleter>
create(StringRefNull prop_name,
419std::unique_ptr<IDProperty, IDPropertyDeleter>
create(StringRefNull prop_name,
420 const StringRefNull value,
424std::unique_ptr<IDProperty, IDPropertyDeleter>
create(StringRefNull prop_name,
433std::unique_ptr<IDProperty, IDPropertyDeleter>
create(StringRefNull prop_name,
434 Span<int32_t> values,
442std::unique_ptr<IDProperty, IDPropertyDeleter>
create(StringRefNull prop_name,
451std::unique_ptr<IDProperty, IDPropertyDeleter>
create(StringRefNull prop_name,
461std::unique_ptr<IDProperty, IDPropertyDeleter>
create_group(StringRefNull prop_name,
IDProperty * IDP_NewIDPArray(const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_Reset(IDProperty *prop, const IDProperty *reference)
void IDP_ui_data_free(IDProperty *prop)
IDPropertyUIData * IDP_TryConvertUIData(IDPropertyUIData *src, eIDPropertyUIDataType src_type, eIDPropertyUIDataType dst_type)
bool IDP_EnumItemsValidate(const IDPropertyUIDataEnumItem *items, int items_num, void(*error_fn)(const char *))
void IDP_FreeFromGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
void IDP_CopyPropertyContent(IDProperty *dst, const IDProperty *src) ATTR_NONNULL()
float IDP_coerce_to_float_or_zero(const IDProperty *prop)
bool IDP_InsertToGroup(IDProperty *group, IDProperty *previous, IDProperty *pnew) ATTR_NONNULL(1
eIDPropertyUIDataType IDP_ui_data_type(const IDProperty *prop)
bool IDP_ui_data_supported(const IDProperty *prop)
void IDP_AssignString(IDProperty *prop, const char *st) ATTR_NONNULL()
void IDP_foreach_property(IDProperty *id_property_root, int type_filter, blender::FunctionRef< void(IDProperty *id_property)> callback)
IDPropertyUIData * IDP_ui_data_copy(const IDProperty *prop)
IDProperty * IDP_GetPropertyFromGroup(const IDProperty *prop, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_MergeGroup_ex(IDProperty *dest, const IDProperty *src, bool do_overwrite, int flag) ATTR_NONNULL()
void IDP_AssignStringMaxSize(IDProperty *prop, const char *st, size_t st_maxncpy) ATTR_NONNULL()
char * IDP_reprN(const IDProperty *prop, uint *r_len)
const char * IDP_type_str(eIDPropertyType type, short sub_type)
void IDP_ResizeIDPArray(IDProperty *prop, int len)
@ IDP_UI_DATA_TYPE_BOOLEAN
@ IDP_UI_DATA_TYPE_UNSUPPORTED
@ IDP_UI_DATA_TYPE_STRING
IDProperty * IDP_GetIndexArray(IDProperty *prop, int index) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_FreeProperty(IDProperty *prop)
int IDP_coerce_to_int_or_zero(const IDProperty *prop)
IDProperty * IDP_CopyIDPArray(const IDProperty *array, int flag) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_FreePropertyContent(IDProperty *prop)
void IDP_ReplaceInGroup_ex(IDProperty *group, IDProperty *prop, IDProperty *prop_exist)
void IDP_FreePropertyContent_ex(IDProperty *prop, bool do_id_user)
IDProperty * IDP_GetPropertyTypeFromGroup(const IDProperty *prop, const char *name, char type) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool void IDP_RemoveFromGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
void IDP_ClearProperty(IDProperty *prop)
IDProperty * IDP_New(char type, const IDPropertyTemplate *val, const char *name, eIDPropertyFlag flags={}) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
double IDP_coerce_to_double_or_zero(const IDProperty *prop)
void IDP_SetIndexArray(IDProperty *prop, int index, IDProperty *item) ATTR_NONNULL()
bool IDP_AddToGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
IDProperty * IDP_CopyProperty_ex(const IDProperty *prop, int flag) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
bool IDP_EqualsProperties_ex(const IDProperty *prop1, const IDProperty *prop2, bool is_strict) ATTR_WARN_UNUSED_RESULT
void IDP_AppendArray(IDProperty *prop, IDProperty *item)
IDProperty * IDP_EnsureProperties(ID *id) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void IDP_AssignID(IDProperty *prop, ID *id, int flag)
IDProperty * IDP_GetProperties(ID *id) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void IDP_ResizeArray(IDProperty *prop, int newlen)
IDProperty * IDP_CopyProperty(const IDProperty *prop) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_print(const IDProperty *prop)
void IDP_repr_fn(const IDProperty *prop, void(*str_append_fn)(void *user_data, const char *str, uint str_len), void *user_data)
void IDP_ui_data_free_unique_contents(IDPropertyUIData *ui_data, eIDPropertyUIDataType type, const IDPropertyUIData *other)
void IDP_ReplaceGroupInGroup(IDProperty *dest, const IDProperty *src) ATTR_NONNULL()
IDProperty * IDP_NewStringMaxSize(const char *st, size_t st_maxncpy, const char *name, eIDPropertyFlag flags={}) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(3)
void IDP_MergeGroup(IDProperty *dest, const IDProperty *src, bool do_overwrite) ATTR_NONNULL()
void IDP_FreeString(IDProperty *prop) ATTR_NONNULL()
void IDP_BlendWrite(BlendWriter *writer, const IDProperty *prop)
void IDP_SyncGroupValues(IDProperty *dest, const IDProperty *src) ATTR_NONNULL()
void IDP_FreeProperty_ex(IDProperty *prop, bool do_id_user)
IDPropertyUIData * IDP_ui_data_ensure(IDProperty *prop)
bool IDP_EqualsProperties(const IDProperty *prop1, const IDProperty *prop2) ATTR_WARN_UNUSED_RESULT
void IDP_ReplaceInGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
void IDP_FreeArray(IDProperty *prop)
void(*)(void *user_data, IDProperty *idp) IDPWalkFunc
IDProperty * IDP_NewString(const char *st, const char *name, eIDPropertyFlag flags={}) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(2)
void IDP_BlendReadData_impl(BlendDataReader *reader, IDProperty **prop, const char *caller_func_id)
const IDPropertyUIDataEnumItem * IDP_EnumItemFind(const IDProperty *prop)
void IDP_SyncGroupTypes(IDProperty *dest, const IDProperty *src, bool do_arraylen) ATTR_NONNULL()
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
Enumerations for DNA_ID.h.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a producing a negative Combine Generate a color from its and blue Hue Saturation Value
void operator()(IDProperty *id_prop)
std::unique_ptr< IDProperty, IDPropertyDeleter > create_bool(StringRefNull prop_name, bool value, eIDPropertyFlag flags={})
Allocate a new IDProperty of type IDP_BOOLEAN, set its name and value.
std::unique_ptr< blender::io::serialize::ArrayValue > convert_to_serialize_values(const IDProperty *properties)
Convert the given properties to Value objects for serialization.
std::unique_ptr< IDProperty, IDPropertyDeleter > create(StringRefNull prop_name, int32_t value, eIDPropertyFlag flags={})
Allocate a new IDProperty of type IDP_INT, set its name and value.
std::unique_ptr< IDProperty, IDPropertyDeleter > create_group(StringRefNull prop_name, eIDPropertyFlag flags={})
Allocate a new IDProperty of type IDP_GROUP.
IDProperty * convert_from_serialize_value(const blender::io::serialize::Value &value)
Convert the given value to an IDProperty.
struct IDPropertyTemplate::@256344174103037336365063055337161312220253363161 string