Blender  V3.3
BKE_asset.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
7 #pragma once
8 
9 #include "BLI_compiler_attrs.h"
10 #include "BLI_utildefines.h"
11 
12 #include "DNA_asset_types.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
19 struct AssetMetaData;
20 struct BlendDataReader;
21 struct BlendWriter;
22 struct ID;
23 struct IDProperty;
24 struct PreviewImage;
25 
26 typedef void (*PreSaveFn)(void *asset_ptr, struct AssetMetaData *asset_data);
27 
28 typedef struct AssetTypeInfo {
35 
37 void BKE_asset_metadata_free(struct AssetMetaData **asset_data);
38 
40  struct AssetTag *tag;
41  /* Set to false if a tag of this name was already present. */
42  bool is_new;
43 };
44 
45 struct AssetTag *BKE_asset_metadata_tag_add(struct AssetMetaData *asset_data, const char *name);
50  const char *name);
51 void BKE_asset_metadata_tag_remove(struct AssetMetaData *asset_data, struct AssetTag *tag);
52 
54 void BKE_asset_metadata_catalog_id_clear(struct AssetMetaData *asset_data);
56  bUUID catalog_id,
57  const char *catalog_simple_name);
58 
60 
61 void BKE_asset_metadata_idprop_ensure(struct AssetMetaData *asset_data, struct IDProperty *prop);
62 struct IDProperty *BKE_asset_metadata_idprop_find(const struct AssetMetaData *asset_data,
63  const char *name) ATTR_WARN_UNUSED_RESULT;
64 
66  const struct ID *owner_id);
67 
68 void BKE_asset_metadata_write(struct BlendWriter *writer, struct AssetMetaData *asset_data);
69 void BKE_asset_metadata_read(struct BlendDataReader *reader, struct AssetMetaData *asset_data);
70 
71 #ifdef __cplusplus
72 }
73 #endif
void BKE_asset_metadata_tag_remove(struct AssetMetaData *asset_data, struct AssetTag *tag)
Definition: asset.cc:90
void BKE_asset_metadata_catalog_id_set(struct AssetMetaData *asset_data, bUUID catalog_id, const char *catalog_simple_name)
void BKE_asset_metadata_idprop_ensure(struct AssetMetaData *asset_data, struct IDProperty *prop)
Definition: asset.cc:125
struct AssetMetaData * BKE_asset_metadata_create(void)
Definition: asset.cc:28
void BKE_asset_metadata_write(struct BlendWriter *writer, struct AssetMetaData *asset_data)
Definition: asset.cc:154
void BKE_asset_library_reference_init_default(struct AssetLibraryReference *library_ref)
Definition: asset.cc:99
void BKE_asset_metadata_free(struct AssetMetaData **asset_data)
Definition: asset.cc:35
void(* PreSaveFn)(void *asset_ptr, struct AssetMetaData *asset_data)
Definition: BKE_asset.h:26
struct IDProperty * BKE_asset_metadata_idprop_find(const struct AssetMetaData *asset_data, const char *name) ATTR_WARN_UNUSED_RESULT
struct PreviewImage * BKE_asset_metadata_preview_get_from_id(const struct AssetMetaData *asset_data, const struct ID *owner_id)
void BKE_asset_metadata_catalog_id_clear(struct AssetMetaData *asset_data)
Definition: asset.cc:104
void BKE_asset_metadata_read(struct BlendDataReader *reader, struct AssetMetaData *asset_data)
Definition: asset.cc:173
struct AssetTagEnsureResult BKE_asset_metadata_tag_ensure(struct AssetMetaData *asset_data, const char *name)
Definition: asset.cc:67
struct AssetTag * BKE_asset_metadata_tag_add(struct AssetMetaData *asset_data, const char *name)
Definition: asset.cc:60
struct AssetTypeInfo AssetTypeInfo
#define ATTR_WARN_UNUSED_RESULT
SyclQueue void void size_t num_bytes void
The meta-data of an asset. By creating and giving this for a data-block (ID.asset_data),...
struct AssetTag * tag
Definition: BKE_asset.h:40
User defined tag. Currently only used by assets, could be used more often at some point....
char name[64]
PreSaveFn pre_save_fn
Definition: BKE_asset.h:33
char name[64]
Definition: DNA_ID.h:111
Definition: DNA_ID.h:368
Universally Unique Identifier according to RFC4122.