|
Blender V5.0
|
Classes | |
| class | FileListWrapper |
| class | AssetList |
| struct | GlobalStorage |
Typedefs | |
| using | AssetListIterFn = FunctionRef<bool(asset_system::AssetRepresentation &)> |
Runtime asset list cache | |
| using | AssetListMap = Map<AssetLibraryReference, AssetList> |
| using | is_new_t = bool |
| void | storage_tag_main_data_dirty () |
| void | storage_id_remap (ID *id_old, ID *id_new) |
| static void | clear (const AssetLibraryReference *library_reference, wmWindowManager *wm) |
| static void | on_save_post (Main *main, PointerRNA **pointers, int num_pointers, void *arg) |
| static AssetListMap & | libraries_map () |
| static AssetList * | lookup_list (const AssetLibraryReference &library_ref) |
| static std::optional< eFileSelectType > | asset_library_reference_to_fileselect_type (const AssetLibraryReference &library_reference) |
| static std::tuple< AssetList &, is_new_t > | ensure_list_storage (const AssetLibraryReference &library_reference, eFileSelectType filesel_type) |
| using blender::ed::asset::list::AssetListIterFn = FunctionRef<bool(asset_system::AssetRepresentation &)> |
Can return false to stop iterating.
Definition at line 40 of file ED_asset_list.hh.
A global asset list map, each entry being a list for a specific asset library.
Definition at line 299 of file asset_list.cc.
| using blender::ed::asset::list::is_new_t = bool |
Definition at line 358 of file asset_list.cc.
|
static |
Definition at line 342 of file asset_list.cc.
References ASSET_LIBRARY_ALL, ASSET_LIBRARY_CUSTOM, ASSET_LIBRARY_ESSENTIALS, ASSET_LIBRARY_LOCAL, FILE_ASSET_LIBRARY, FILE_ASSET_LIBRARY_ALL, FILE_MAIN_ASSET, and AssetLibraryReference::type.
Referenced by storage_fetch(), and storage_fetch_blocking().
| void blender::ed::asset::list::asset_reading_region_listen_fn | ( | const wmRegionListenerParams * | params | ) |
Definition at line 373 of file asset_list.cc.
References wmNotifier::category, wmNotifier::data, ED_region_tag_refresh_ui(), ELEM, NC_ASSET, ND_ASSET_LIST_PREVIEW, ND_ASSET_LIST_READING, and params.
Referenced by blender::ed::vse::add_catalog_assets_menu_type(), blender::ed::space_node::add_root_catalogs_menu_type(), blender::ed::vse::add_scene_menu_type(), blender::ed::vse::add_unassigned_assets_menu_type(), blender::ed::space_node::catalog_assets_menu_type(), blender::ed::asset::shelf::catalog_selector_panel_register(), blender::ed::object::modifier_add_catalog_assets_menu_type(), blender::ed::object::modifier_add_root_catalogs_menu_type(), blender::ed::object::modifier_add_unassigned_assets_menu_type(), blender::ed::geometry::node_group_operator_assets_menu(), blender::ed::geometry::node_group_operator_assets_menu_unassigned(), blender::ed::asset::shelf::popover_panel_register(), blender::ed::space_node::swap_root_catalogs_menu_type(), and blender::ed::space_node::unassigned_assets_menu_type().
| void blender::ed::asset::list::clear | ( | const AssetLibraryReference * | library_reference, |
| const bContext * | C ) |
Clears this asset library and the "All" asset library for reload in both the static asset list storage, as well as for all open asset browsers. Call this whenever the content of the given asset library changed in a way that a reload is necessary.
Definition at line 502 of file asset_list.cc.
References C, clear(), and CTX_wm_manager().
Referenced by blender::ed::asset::asset_library_refresh_exec(), clear(), clear_all_library(), on_save_post(), and blender::ed::asset::refresh_asset_library().
|
static |
Definition at line 465 of file asset_list.cc.
References blender::asset_system::all_library_reference(), ASSET_LIBRARY_ALL, ASSET_LIBRARY_LOCAL, blender::ed::asset::list::AssetList::clear(), blender::ed::asset::list::AssetList::clear_current_file_assets(), ED_fileselect_clear(), ED_fileselect_clear_main_assets(), foreach_visible_asset_browser_showing_library(), lookup_list(), and AssetLibraryReference::type.
| void blender::ed::asset::list::clear_all_library | ( | const bContext * | C | ) |
Clears the all asset library for reload in both the static asset list storage, as well as for all open asset browsers. Call this whenever any asset library content changed in a way that a reload is necessary.
Definition at line 507 of file asset_list.cc.
References blender::asset_system::all_library_reference(), C, clear(), and CTX_wm_manager().
Referenced by preferences_asset_library_add_exec(), and preferences_asset_library_remove_exec().
|
static |
Definition at line 359 of file asset_list.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::add(), libraries_map(), blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr().
Referenced by storage_fetch(), and storage_fetch_blocking().
|
static |
Definition at line 443 of file asset_list.cc.
References bScreen::areabase, FileAssetSelectParams::asset_library_ref, SpaceFile::asset_params, SpaceFile::browse_mode, FILE_BROWSE_MODE_ASSETS, LISTBASE_FOREACH, SPACE_FILE, and WM_window_get_active_screen().
Referenced by clear(), and has_asset_browser_storage_for_library().
| bool blender::ed::asset::list::has_asset_browser_storage_for_library | ( | const AssetLibraryReference * | library_reference, |
| const bContext * | C ) |
Returns if any asset browser is visible showing the given asset library. Asset browsers are not really handled by this API, but for convenience of managing clearing it's handled here together with has_list_storage_for_library().
Definition at line 518 of file asset_list.cc.
References C, CTX_wm_manager(), and foreach_visible_asset_browser_showing_library().
Referenced by blender::ed::asset::asset_library_refresh_poll().
| bool blender::ed::asset::list::has_list_storage_for_library | ( | const AssetLibraryReference * | library_reference | ) |
Returns if the given asset library in global asset list storage.
Definition at line 513 of file asset_list.cc.
References lookup_list().
Referenced by blender::ed::asset::asset_library_refresh_poll().
| bool blender::ed::asset::list::is_loaded | ( | const AssetLibraryReference * | library_reference | ) |
Definition at line 431 of file asset_list.cc.
References lookup_list().
Referenced by blender::ed::object::all_loading_finished(), blender::ed::space_node::all_loading_finished(), blender::ed::vse::all_loading_finished(), blender::ed::asset::build_filtered_all_catalog_tree(), blender::ed::asset::shelf::AssetViewItem::build_grid_tile(), blender::ed::asset::find_asset_from_weak_ref(), and blender::ed::asset::get_local_asset_from_relative_identifier().
| void blender::ed::asset::list::iterate | ( | const AssetLibraryReference & | library_reference, |
| AssetListIterFn | fn ) |
Definition at line 530 of file asset_list.cc.
References lookup_list().
Referenced by blender::ed::asset::build_filtered_all_catalog_tree(), blender::ed::asset::build_filtered_catalog_tree(), blender::ed::asset::shelf::AssetView::build_items(), blender::ed::asset::find_asset_from_weak_ref(), blender::ed::space_node::gather_search_link_ops_for_all_assets(), and blender::ed::asset::get_local_asset_from_relative_identifier().
|
static |
Wrapper for Construct on First Use idiom, to avoid the Static Initialization Fiasco.
Definition at line 317 of file asset_list.cc.
References blender::ed::asset::list::GlobalStorage::list_map.
Referenced by ensure_list_storage(), lookup_list(), storage_exit(), storage_id_remap(), and storage_tag_main_data_dirty().
| asset_system::AssetLibrary * blender::ed::asset::list::library_get_once_available | ( | const AssetLibraryReference & | library_reference | ) |
Get the asset library being read into an asset-list and identified using library_reference.
Definition at line 538 of file asset_list.cc.
References lookup_list().
Referenced by blender::ed::asset::shelf::build_asset_view(), blender::ed::asset::build_filtered_all_catalog_tree(), blender::ed::asset::shelf::AssetView::build_items(), blender::ed::geometry::catalog_assets_draw(), blender::ed::asset::shelf::catalog_selector_panel_draw(), blender::ed::asset::shelf::catalog_tree_draw(), blender::ed::asset::find_asset_from_weak_ref(), blender::ed::object::ui_template_modifier_asset_menu_items(), and blender::ed::geometry::ui_template_node_operator_asset_menu_items().
| bool blender::ed::asset::list::listen | ( | const wmNotifier * | notifier | ) |
Definition at line 548 of file asset_list.cc.
References blender::ed::asset::list::AssetList::listen().
Referenced by blender::ed::asset::shelf::region_listen().
|
static |
Definition at line 323 of file asset_list.cc.
References libraries_map(), and blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::lookup_ptr().
Referenced by clear(), has_list_storage_for_library(), is_loaded(), iterate(), library_get_once_available(), and size().
|
static |
Definition at line 387 of file asset_list.cc.
References clear(), blender::asset_system::current_file_library_reference(), and main.
Referenced by blender::ed::asset::list::GlobalStorage::GlobalStorage().
| int blender::ed::asset::list::size | ( | const AssetLibraryReference * | library_reference | ) |
Definition at line 553 of file asset_list.cc.
References lookup_list().
| void blender::ed::asset::list::storage_exit | ( | ) |
Can't wait for static deallocation to run. There's nested data allocated with our guarded allocator, it will complain about unfreed memory on exit.
Definition at line 562 of file asset_list.cc.
References blender::Map< Key, Value, InlineBufferCapacity, ProbingStrategy, Hash, IsEqual, Slot, Allocator >::clear(), and libraries_map().
Referenced by WM_exit_ex(), and wm_file_read_setup_wm_init().
| void blender::ed::asset::list::storage_fetch | ( | const AssetLibraryReference * | library_reference, |
| const bContext * | C ) |
Invoke asset list reading, potentially in a parallel job. Won't wait until the job is done, and may return earlier.
Definition at line 402 of file asset_list.cc.
References asset_library_reference_to_fileselect_type(), C, and ensure_list_storage().
Referenced by blender::ed::asset::shelf::asset_shelf_header_draw(), blender::ed::asset::shelf::build_asset_view(), blender::ed::asset::build_filtered_all_catalog_tree(), blender::ed::asset::shelf::ensure_asset_library_fetched(), blender::ed::asset::find_asset_from_weak_ref(), blender::ed::space_node::gather_search_link_ops_for_all_assets(), and blender::ed::asset::get_local_asset_from_relative_identifier().
| void blender::ed::asset::list::storage_fetch_blocking | ( | const AssetLibraryReference & | library_reference, |
| const bContext & | C ) |
Invoke asset list reading, guaranteed to execute on the same thread.
Definition at line 416 of file asset_list.cc.
References asset_library_reference_to_fileselect_type(), C, and ensure_list_storage().
Referenced by blender::ed::sculpt_paint::brush_asset_activate_exec(), and blender::ed::object::shade_auto_smooth_exec().
Remapping of ID pointers within the asset lists. Typically called when an ID is deleted to clear all references to it (id_new is null then).
Definition at line 335 of file asset_list.cc.
References libraries_map().
Referenced by WM_main_remap_editor_id_reference().
| void blender::ed::asset::list::storage_tag_main_data_dirty | ( | ) |
Tag all asset lists in the storage that show main data as needing an update (re-fetch).
This only tags the data. If the asset list is visible on screen, the space is still responsible for ensuring the necessary redraw. It can use listen() to check if the asset-list needs a redraw for a given notifier.
Definition at line 328 of file asset_list.cc.
References libraries_map().
Referenced by blender::ed::asset::clear_id(), ED_editors_init(), ed_undo_step_post(), lib_id_generate_preview_exec(), lib_id_generate_preview_from_object_exec(), blender::ed::asset::mark_id(), and blender::ed::asset::screenshot_preview_exec().