WIP: Brush assets project #106303

Draft
Julian Eisel wants to merge 358 commits from brush-assets-project into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
4 changed files with 14 additions and 1 deletions
Showing only changes of commit a78f52f5d0 - Show all commits

View File

@ -191,6 +191,11 @@ struct Main {
*/
bool is_global_main;
/**
* True if main used to store weakly referenced assets.
*/
bool is_asset_weak_reference_main;
BlendThumbnail *blen_thumb;
Library *curlib;

View File

@ -144,6 +144,7 @@ struct AssetWeakReferenceMain {
AssetWeakReferenceMain(std::string filepath)
: filepath(std::move(filepath)), main(BKE_main_new())
{
main->is_asset_weak_reference_main = true;
}
AssetWeakReferenceMain(const AssetWeakReferenceMain &) = delete;
AssetWeakReferenceMain(AssetWeakReferenceMain &&other)

View File

@ -1269,6 +1269,9 @@ void *BKE_libblock_alloc(Main *bmain, short type, const char *name, const int fl
if ((flag & LIB_ID_CREATE_NO_DEG_TAG) == 0) {
DEG_id_type_tag(bmain, type);
}
if (bmain->is_asset_weak_reference_main) {
id->tag |= LIB_TAG_ASSET_MAIN;
}
}
else {
BLI_strncpy(id->name + 2, name, sizeof(id->name) - 2);
@ -1462,6 +1465,10 @@ void BKE_libblock_copy_ex(Main *bmain, const ID *id, ID **r_newid, const int ori
DEG_id_type_tag(bmain, GS(new_id->name));
}
if (bmain && bmain->is_asset_weak_reference_main) {
new_id->tag |= LIB_TAG_ASSET_MAIN;
}
*r_newid = new_id;
}

View File

@ -1006,7 +1006,7 @@ enum {
* Datablocks like this can not be linked to and from datablocks in regular main.
* They should stay isolated from each other.
*/
LIB_TAG_ASSET_MAIN = 1 << 20,
LIB_TAG_ASSET_MAIN = 1 << 27,
/* ------------------------------------------------------------------------------------------- */