Blender V4.3
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
9#pragma once
10
11#include "BLI_compiler_attrs.h"
12#include "BLI_utildefines.h"
13
14#include "DNA_asset_types.h"
15
17struct AssetMetaData;
18struct AssetTag;
19struct BlendDataReader;
20struct BlendWriter;
21struct ID;
22struct IDProperty;
23struct PreviewImage;
24
25using PreSaveFn = void (*)(void *asset_ptr, AssetMetaData *asset_data);
26using OnMarkAssetFn = void (*)(void *asset_ptr, AssetMetaData *asset_data);
27using OnClearAssetDataFn = void (*)(void *asset_ptr, AssetMetaData *asset_data);
28
42
44void BKE_asset_metadata_free(AssetMetaData **asset_data);
45
52
55 /* Set to false if a tag of this name was already present. */
56 bool is_new;
57};
58
59AssetTag *BKE_asset_metadata_tag_add(AssetMetaData *asset_data, const char *name)
60 ATTR_NONNULL(1, 2);
66
70 bUUID catalog_id,
71 const char *catalog_simple_name);
72
74
77 const char *name) ATTR_WARN_UNUSED_RESULT;
78
80 const ID *owner_id);
81
82void BKE_asset_metadata_write(BlendWriter *writer, AssetMetaData *asset_data);
84
87
88void BKE_asset_catalog_path_list_free(ListBase &catalog_path_list);
91 const ListBase &catalog_path_list);
93 ListBase &catalog_path_list);
94bool BKE_asset_catalog_path_list_has_path(const ListBase &catalog_path_list,
95 const char *catalog_path);
96void 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:175
IDProperty * BKE_asset_metadata_idprop_find(const AssetMetaData *asset_data, const char *name) ATTR_WARN_UNUSED_RESULT
Definition asset.cc:186
PreviewImage * BKE_asset_metadata_preview_get_from_id(const AssetMetaData *asset_data, const ID *owner_id)
Definition asset.cc:196
void BKE_asset_catalog_path_list_free(ListBase &catalog_path_list)
void BKE_asset_metadata_read(BlendDataReader *reader, AssetMetaData *asset_data)
Definition asset.cc:222
void(*)(void *asset_ptr, AssetMetaData *asset_data) OnClearAssetDataFn
Definition BKE_asset.hh:27
AssetMetaData * BKE_asset_metadata_create()
Definition asset.cc:32
void(*)(void *asset_ptr, AssetMetaData *asset_data) OnMarkAssetFn
Definition BKE_asset.hh:26
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:204
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:25
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(...)
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:35
OnClearAssetDataFn on_clear_asset_fn
Definition BKE_asset.hh:40
PreSaveFn pre_save_fn
Definition BKE_asset.hh:34
Definition DNA_ID.h:413
Universally Unique Identifier according to RFC4122.