35 return MEM_new<AssetMetaData>(__func__, *default_metadata);
40 MEM_delete(*asset_data);
41 *asset_data =
nullptr;
46 return MEM_new<AssetMetaData>(__func__, *source);
50 : local_type_info(other.local_type_info),
52 catalog_id(other.catalog_id),
53 active_tag(other.active_tag),
54 tot_tags(other.tot_tags)
56 if (other.properties) {
60 STRNCPY(catalog_simple_name, other.catalog_simple_name);
71 : local_type_info(other.local_type_info),
72 properties(std::exchange(other.properties, nullptr)),
73 catalog_id(other.catalog_id),
74 author(std::exchange(other.author, nullptr)),
75 description(std::exchange(other.description, nullptr)),
76 copyright(std::exchange(other.copyright, nullptr)),
77 license(std::exchange(other.license, nullptr)),
78 active_tag(other.active_tag),
79 tot_tags(other.tot_tags)
81 STRNCPY(catalog_simple_name, other.catalog_simple_name);
86AssetMetaData::~AssetMetaData()
129 result.is_new =
false;
136 result.is_new =
true;
161 const ::bUUID catalog_id,
162 const char *catalog_simple_name)
179 asset_data->
properties = idprop::create_group(
"AssetMetaData.properties").release();
IDProperty * IDP_GetPropertyFromGroup(const IDProperty *prop, const char *name) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
#define IDP_BlendDataRead(reader, prop)
void IDP_FreeProperty(IDProperty *prop)
IDProperty * IDP_CopyProperty(const IDProperty *prop) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void IDP_BlendWrite(BlendWriter *writer, const IDProperty *prop)
void IDP_ReplaceInGroup(IDProperty *group, IDProperty *prop) ATTR_NONNULL()
PreviewImage * BKE_previewimg_id_get(const ID *id)
void * BLI_findstring(const struct ListBase *listbase, const char *id, int offset) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
void BLI_freelinkN(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void void void void void void BLI_duplicatelist(struct ListBase *dst, const struct ListBase *src) ATTR_NONNULL(1
BLI_INLINE void BLI_listbase_clear(struct ListBase *lb)
void void BLI_freelistN(struct ListBase *listbase) ATTR_NONNULL(1)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_findindex(const struct ListBase *listbase, const void *vlink) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
#define STRNCPY(dst, src)
char * BLI_strdup_null(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_MALLOC
#define STRNCPY_UTF8(dst, src)
void BLI_uniquename(const struct ListBase *list, void *vlink, const char *defname, char delim, int name_offset, size_t name_maxncpy) ATTR_NONNULL(1
#define BLO_write_struct(writer, struct_name, data_ptr)
void BLO_read_string(BlendDataReader *reader, char **ptr_p)
void BLO_write_string(BlendWriter *writer, const char *data_ptr)
#define BLO_read_struct_list(reader, struct_name, list)
#define BLO_read_struct(reader, struct_name, ptr_p)
ID and Library types, which are fundamental for SDNA.
#define DNA_struct_default_get(struct_name)
Read Guarded memory(de)allocation.
AssetMetaData * BKE_asset_metadata_copy(const AssetMetaData *source)
void BKE_asset_metadata_idprop_ensure(AssetMetaData *asset_data, IDProperty *prop)
IDProperty * BKE_asset_metadata_idprop_find(const AssetMetaData *asset_data, const char *name)
void BKE_asset_metadata_read(BlendDataReader *reader, AssetMetaData *asset_data)
PreviewImage * BKE_asset_metadata_preview_get_from_id(const AssetMetaData *, const ID *owner_id)
AssetMetaData * BKE_asset_metadata_create()
AssetTagEnsureResult BKE_asset_metadata_tag_ensure(AssetMetaData *asset_data, const char *name)
void BKE_asset_metadata_free(AssetMetaData **asset_data)
void BKE_asset_metadata_catalog_id_clear(AssetMetaData *asset_data)
void BKE_asset_library_reference_init_default(AssetLibraryReference *library_ref)
void BKE_asset_metadata_write(BlendWriter *writer, AssetMetaData *asset_data)
static AssetTag * asset_metadata_tag_add(AssetMetaData *asset_data, const char *const name)
AssetTag * BKE_asset_metadata_tag_add(AssetMetaData *asset_data, const char *name)
void BKE_asset_metadata_catalog_id_set(AssetMetaData *asset_data, const ::bUUID catalog_id, const char *catalog_simple_name)
void BKE_asset_metadata_tag_remove(AssetMetaData *asset_data, AssetTag *tag)
void copy(char *dst, int64_t dst_size) const
constexpr StringRef substr(int64_t start, int64_t size) const
constexpr StringRef trim() const
void *(* MEM_callocN)(size_t len, const char *str)
User defined tag. Currently only used by assets, could be used more often at some point....