Blender V5.0
BKE_asset.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
9#pragma once
10
11#include "BLI_compiler_attrs.h"
12
13#include "DNA_asset_types.h"
14
16struct AssetMetaData;
17struct AssetTag;
18struct BlendDataReader;
19struct BlendWriter;
20struct ID;
21struct IDProperty;
22struct PreviewImage;
23
24using PreSaveFn = void (*)(void *asset_ptr, AssetMetaData *asset_data);
25using OnMarkAssetFn = void (*)(void *asset_ptr, AssetMetaData *asset_data);
26using OnClearAssetDataFn = void (*)(void *asset_ptr, AssetMetaData *asset_data);
27
41
43void BKE_asset_metadata_free(AssetMetaData **asset_data);
44
51
54 /* Set to false if a tag of this name was already present. */
55 bool is_new;
56};
57
59 ATTR_NONNULL(1, 2);
65
69 bUUID catalog_id,
70 const char *catalog_simple_name);
71
73
76 const char *name) ATTR_WARN_UNUSED_RESULT;
77
79 const ID *owner_id);
80
81void BKE_asset_metadata_write(BlendWriter *writer, AssetMetaData *asset_data);
83
86
87void BKE_asset_catalog_path_list_free(ListBase &catalog_path_list);
90 const ListBase &catalog_path_list);
92 ListBase &catalog_path_list);
93bool BKE_asset_catalog_path_list_has_path(const ListBase &catalog_path_list,
94 const char *catalog_path);
95void BKE_asset_catalog_path_list_add_path(ListBase &catalog_path_list, const char *catalog_path);
AssetMetaData * BKE_asset_metadata_copy(const AssetMetaData *source)
Definition asset.cc:44
AssetTag AssetTagEnsureResult BKE_asset_metadata_tag_ensure(AssetMetaData *asset_data, const char *name)
Definition asset.cc:118
void BKE_asset_metadata_idprop_ensure(AssetMetaData *asset_data, IDProperty *prop)
Definition asset.cc:168
IDProperty * BKE_asset_metadata_idprop_find(const AssetMetaData *asset_data, const char *name) ATTR_WARN_UNUSED_RESULT
Definition asset.cc:179
PreviewImage * BKE_asset_metadata_preview_get_from_id(const AssetMetaData *asset_data, const ID *owner_id)
Definition asset.cc:189
void BKE_asset_catalog_path_list_free(ListBase &catalog_path_list)
void BKE_asset_metadata_read(BlendDataReader *reader, AssetMetaData *asset_data)
Definition asset.cc:215
void(*)(void *asset_ptr, AssetMetaData *asset_data) OnClearAssetDataFn
Definition BKE_asset.hh:26
AssetMetaData * BKE_asset_metadata_create()
Definition asset.cc:32
void(*)(void *asset_ptr, AssetMetaData *asset_data) OnMarkAssetFn
Definition BKE_asset.hh:25
void BKE_asset_weak_reference_read(BlendDataReader *reader, AssetWeakReference *weak_ref)
void BKE_asset_metadata_free(AssetMetaData **asset_data)
Definition asset.cc:38
AssetTag * BKE_asset_metadata_tag_add(AssetMetaData *asset_data, const char *name) ATTR_NONNULL(1
void BKE_asset_metadata_catalog_id_clear(AssetMetaData *asset_data)
Definition asset.cc:154
void BKE_asset_library_reference_init_default(AssetLibraryReference *library_ref)
Definition asset.cc:149
void BKE_asset_metadata_catalog_id_set(AssetMetaData *asset_data, bUUID catalog_id, const char *catalog_simple_name)
ListBase BKE_asset_catalog_path_list_duplicate(const ListBase &catalog_path_list)
void BKE_asset_metadata_write(BlendWriter *writer, AssetMetaData *asset_data)
Definition asset.cc:197
void BKE_asset_weak_reference_write(BlendWriter *writer, const AssetWeakReference *weak_ref)
void BKE_asset_catalog_path_list_blend_write(BlendWriter *writer, const ListBase &catalog_path_list)
void(*)(void *asset_ptr, AssetMetaData *asset_data) PreSaveFn
Definition BKE_asset.hh:24
bool BKE_asset_catalog_path_list_has_path(const ListBase &catalog_path_list, const char *catalog_path)
void BKE_asset_catalog_path_list_blend_read_data(BlendDataReader *reader, ListBase &catalog_path_list)
void BKE_asset_metadata_tag_remove(AssetMetaData *asset_data, AssetTag *tag)
Definition asset.cc:140
void BKE_asset_catalog_path_list_add_path(ListBase &catalog_path_list, const char *catalog_path)
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
const char * name
The meta-data of an asset. By creating and giving this for a data-block (ID.asset_data),...
User defined tag. Currently only used by assets, could be used more often at some point....
OnMarkAssetFn on_mark_asset_fn
Definition BKE_asset.hh:34
OnClearAssetDataFn on_clear_asset_fn
Definition BKE_asset.hh:39
PreSaveFn pre_save_fn
Definition BKE_asset.hh:33
Definition DNA_ID.h:414
Universally Unique Identifier according to RFC4122.