23#include "RNA_prototypes.hh"
47 id->asset_data->local_type_info = type_info;
48 type_info->on_mark_asset_fn(
id, id->asset_data);
69 if (!id->asset_data) {
75 if (type_info->on_clear_asset_fn) {
76 type_info->on_clear_asset_fn(
id, id->asset_data);
93 if (!id->asset_data || !id->asset_data->local_type_info) {
97 if (id->asset_data->local_type_info->pre_save_fn) {
121 if (destination->asset_data) {
AssetMetaData * BKE_asset_metadata_copy(const AssetMetaData *source)
AssetMetaData * BKE_asset_metadata_create()
void BKE_asset_metadata_free(AssetMetaData **asset_data)
PointerRNA CTX_data_pointer_get_type_silent(const bContext *C, const char *member, StructRNA *type)
const IDTypeInfo * BKE_idtype_get_info_from_id(const ID *id)
void id_fake_user_set(ID *id)
void id_fake_user_clear(ID *id)
bool BKE_id_can_be_asset(const ID *id)
#define FOREACH_MAIN_ID_END
#define FOREACH_MAIN_ID_BEGIN(_bmain, _id)
PreviewImage * BKE_previewimg_id_get(const ID *id)
void BKE_previewimg_clear(PreviewImage *prv)
ID and Library types, which are fundamental for SDNA.
void UI_icon_render_id(const bContext *C, Scene *scene, ID *id, enum eIconSizes size, bool use_job)
void storage_tag_main_data_dirty()
bool copy_to_id(const AssetMetaData *asset_data, ID *destination)
bool can_mark_single_from_context(const bContext *C)
void generate_preview(const bContext *C, ID *id)
void pre_save_assets(Main *bmain)
bool id_type_is_supported(const ID *id)
AssetTypeInfo * asset_type_info
struct AssetMetaData * asset_data