Commit: 807e85976ae0b962740bfff927ba40a13b91df68 Author: Jacques Lucke Date: Wed Jan 18 16:01:34 2023 +0100 Branches: temp-bundled-assets https://developer.blender.org/rB807e85976ae0b962740bfff927ba40a13b91df68
initial assets =================================================================== M source/blender/asset_system/intern/asset_library.cc M source/blender/asset_system/intern/asset_library_service.cc M source/blender/editors/asset/intern/asset_library_reference_enum.cc M source/blender/editors/asset/intern/asset_list.cc M source/blender/editors/space_file/filesel.cc M source/blender/makesdna/DNA_asset_types.h =================================================================== diff --git a/source/blender/asset_system/intern/asset_library.cc b/source/blender/asset_system/intern/asset_library.cc index 2379e738e37..d7fb16f99ac 100644 --- a/source/blender/asset_system/intern/asset_library.cc +++ b/source/blender/asset_system/intern/asset_library.cc @@ -259,6 +259,12 @@ StringRefNull AssetLibrary::root_path() const Vector<AssetLibraryReference> all_valid_asset_library_refs() { Vector<AssetLibraryReference> result; + { + AssetLibraryReference library_ref{}; + library_ref.custom_library_index = -1; + library_ref.type = ASSET_LIBRARY_BUNDLED; + result.append(library_ref); + } int i; LISTBASE_FOREACH_INDEX (const bUserAssetLibrary *, asset_library, &U.asset_libraries, i) { if (!BLI_is_dir(asset_library->path)) { diff --git a/source/blender/asset_system/intern/asset_library_service.cc b/source/blender/asset_system/intern/asset_library_service.cc index af48a173bc0..af6011af832 100644 --- a/source/blender/asset_system/intern/asset_library_service.cc +++ b/source/blender/asset_system/intern/asset_library_service.cc @@ -60,6 +60,11 @@ AssetLibrary *AssetLibraryService::get_asset_library( const eAssetLibraryType type = eAssetLibraryType(library_reference.type); switch (type) { + case ASSET_LIBRARY_BUNDLED: { + const std::string root_path = + "/home/jacques/blender/build_release/bin/3.5/datafiles/assets/base_meshes"; + return get_asset_library_on_disk(root_path); + } case ASSET_LIBRARY_LOCAL: { /* For the "Current File" library we get the asset library root path based on main. */ std::string root_path = bmain ? AS_asset_library_find_suitable_root_path_from_main(bmain) : diff --git a/source/blender/editors/asset/intern/asset_library_reference_enum.cc b/source/blender/editors/asset/intern/asset_library_reference_enum.cc index d20f3205a77..14051a3adb3 100644 --- a/source/blender/editors/asset/intern/asset_library_reference_enum.cc +++ b/source/blender/editors/asset/intern/asset_library_reference_enum.cc @@ -47,7 +47,7 @@ AssetLibraryReference ED_asset_library_reference_from_enum_value(int value) if (value < ASSET_LIBRARY_CUSTOM) { library.type = value; library.custom_library_index = -1; - BLI_assert(ELEM(value, ASSET_LIBRARY_ALL, ASSET_LIBRARY_LOCAL)); + BLI_assert(ELEM(value, ASSET_LIBRARY_ALL, ASSET_LIBRARY_LOCAL, ASSET_LIBRARY_BUNDLED)); return library; } @@ -100,6 +100,18 @@ const EnumPropertyItem *ED_asset_library_reference_to_rna_enum_itemf(const bool RNA_enum_item_add_separator(&item, &totitem); } + { + AssetLibraryReference library_reference; + library_reference.type = ASSET_LIBRARY_BUNDLED; + library_reference.custom_library_index = -1; + const int enum_value = ED_asset_library_reference_to_enum_value(&library_reference); + EnumPropertyItem tmp = { + enum_value, "BUNDLED", ICON_NONE, "Bundled", "Show assets that came bundled with Blender"}; + RNA_enum_item_add(&item, &totitem, &tmp); + } + + RNA_enum_item_add_separator(&item, &totitem); + int i; LISTBASE_FOREACH_INDEX (bUserAssetLibrary *, user_library, &U.asset_libraries, i) { /* Note that the path itself isn't checked for validity here. If an invalid library path is diff --git a/source/blender/editors/asset/intern/asset_list.cc b/source/blender/editors/asset/intern/asset_list.cc index 64934316413..1749391356c 100644 --- a/source/blender/editors/asset/intern/asset_list.cc +++ b/source/blender/editors/asset/intern/asset_list.cc @@ -372,6 +372,7 @@ std::optional<eFileSelectType> AssetListStorage::asset_library_reference_to_file switch (eAssetLibraryType(library_reference.type)) { case ASSET_LIBRARY_ALL: return FILE_ASSET_LIBRARY_ALL; + case ASSET_LIBRARY_BUNDLED: case ASSET_LIBRARY_CUSTOM: return FILE_ASSET_LIBRARY; case ASSET_LIBRARY_LOCAL: diff --git a/source/blender/editors/space_file/filesel.cc b/source/blender/editors/space_file/filesel.cc index 12d05054e9b..cbd4e1d7836 100644 --- a/source/blender/editors/space_file/filesel.cc +++ b/source/blender/editors/space_file/filesel.cc @@ -424,7 +424,13 @@ static void fileselect_refresh_asset_params(FileAssetSelectParams *asset_params) } } - switch (library->type) { + switch (eAssetLibraryType(library->type)) { + case ASSET_LIBRARY_BUNDLED: + BLI_strncpy(base_params->dir, + "/home/jacques/blender/build_release/bin/3.5/datafiles/assets/base_meshes", + sizeof(base_params->dir)); + base_params->type = FILE_ASSET_LIBRARY; + break; case ASSET_LIBRARY_ALL: base_params->dir[0] = '\0'; base_params->type = FILE_ASSET_LIBRARY_ALL; diff --git a/source/blender/makesdna/DNA_asset_types.h b/source/blender/makesdna/DNA_asset_types.h index 195cc059f18..504d05d45dd 100644 --- a/source/blender/makesdna/DNA_asset_types.h +++ b/source/blender/makesdna/DNA_asset_types.h @@ -86,7 +86,7 @@ typedef struct AssetMetaData { typedef enum eAssetLibraryType { /* For the future. Display assets bundled with Blender by default. */ - // ASSET_LIBRARY_BUNDLED = 0, + ASSET_LIBRARY_BUNDLED = 0, /** Display assets from the current session (current "Main"). */ ASSET_LIBRARY_LOCAL = 1, ASSET_LIBRARY_ALL = 2, _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs