|
Blender V5.0
|
#include <string>#include "DNA_ID.h"#include "DNA_brush_types.h"#include "DNA_collection_types.h"#include "DNA_light_types.h"#include "DNA_material_types.h"#include "DNA_node_types.h"#include "DNA_object_types.h"#include "DNA_scene_types.h"#include "DNA_screen_types.h"#include "DNA_texture_types.h"#include "DNA_world_types.h"#include "BKE_icons.h"#include "BLI_ghash.h"#include "BLI_string.h"#include "BLI_threads.h"#include "BLO_read_write.hh"#include "GPU_texture.hh"#include "IMB_imbuf.hh"#include "IMB_thumbs.hh"#include "atomic_ops.h"#include "BKE_preview_image.hh"Go to the source code of this file.
Classes | |
| struct | blender::bke::PreviewDeferredLoadingData |
Namespaces | |
| namespace | blender |
| namespace | blender::bke |
Macros | |
| #define | ID_PRV_CASE(id_code, id_struct) |
Variables | |
| static GHash * | gCachedPreviews = nullptr |
| #define ID_PRV_CASE | ( | id_code, | |
| id_struct ) |
Referenced by BKE_previewimg_id_get_p().
| void BKE_preview_images_free | ( | ) |
Definition at line 112 of file preview_image.cc.
References BKE_previewimg_freefunc(), BLI_ghash_free(), gCachedPreviews, and MEM_freeN().
Referenced by UI_icons_free().
| void BKE_preview_images_init | ( | ) |
Definition at line 105 of file preview_image.cc.
References BLI_ghash_str_new(), and gCachedPreviews.
Referenced by WM_init().
| void BKE_previewimg_blend_read | ( | BlendDataReader * | reader, |
| PreviewImage * | prv ) |
Definition at line 493 of file preview_image.cc.
References BLO_read_data_is_undo(), BLO_read_uint32_array(), PreviewImage::flag, PreviewImage::h, i, NUM_ICON_SIZES, PRV_RENDERING, PreviewImage::rect, PreviewImage::runtime, and PreviewImage::w.
Referenced by blender::bke::action_blend_read_data(), BKE_collection_blend_read_data(), BKE_screen_blend_read_data(), brush_blend_read_data(), image_blend_read_data(), light_blend_read_data(), material_blend_read_data(), blender::bke::node_tree_blend_read_data(), object_blend_read_data(), scene_blend_read_data(), texture_blend_read_data(), and world_blend_read_data().
| void BKE_previewimg_blend_write | ( | BlendWriter * | writer, |
| const PreviewImage * | prv ) |
Definition at line 472 of file preview_image.cc.
References BLO_write_struct_at_address, BLO_write_uint32_array(), PreviewImage::h, PreviewImage::rect, PreviewImage::runtime, and PreviewImage::w.
Referenced by blender::bke::action_blend_write(), BKE_collection_blend_write_nolib(), brush_blend_write(), image_blend_write(), light_blend_write(), material_blend_write(), blender::bke::node_tree_blend_write(), object_blend_write(), scene_blend_write(), screen_blend_write(), texture_blend_write(), and world_blend_write().
| PreviewImage * BKE_previewimg_cached_ensure | ( | const char * | name | ) |
Generate an empty PreviewImage, if not yet existing.
Definition at line 289 of file preview_image.cc.
References BKE_previewimg_create(), BLI_assert, BLI_ghash_ensure_p_ex(), BLI_strdup(), BLI_thread_is_main(), gCachedPreviews, and name.
Referenced by bpy_utils_previews_new().
| PreviewImage * BKE_previewimg_cached_get | ( | const char * | name | ) |
Definition at line 283 of file preview_image.cc.
References BLI_assert, BLI_ghash_lookup(), BLI_thread_is_main(), gCachedPreviews, and name.
| void BKE_previewimg_cached_release | ( | const char * | name | ) |
Definition at line 354 of file preview_image.cc.
References BKE_previewimg_deferred_release(), BLI_assert, BLI_ghash_popkey(), BLI_thread_is_main(), gCachedPreviews, MEM_freeN(), and name.
Referenced by bpy_utils_previews_release(), and blender::asset_system::AssetRepresentation::~AssetRepresentation().
| PreviewImage * BKE_previewimg_cached_thumbnail_read | ( | const char * | name, |
| const char * | filepath, | ||
| int | source, | ||
| bool | force_update ) |
Generate a PreviewImage from given filepath, using thumbnails management, if not yet existing. Does not actually generate the preview, BKE_previewimg_ensure() must be called for that.
Definition at line 306 of file preview_image.cc.
References BKE_previewimg_clear(), BKE_previewimg_free(), BLI_assert, BLI_ghash_insert(), BLI_ghash_lookup_p(), BLI_strdup(), BLI_thread_is_main(), gCachedPreviews, name, previewimg_deferred_create(), and PreviewImage::runtime.
Referenced by bpy_utils_previews_load(), and blender::asset_system::AssetRepresentation::ensure_previewable().
| void BKE_previewimg_clear | ( | PreviewImage * | prv | ) |
Clear the preview image or icon, but does not free it.
Definition at line 141 of file preview_image.cc.
References BKE_previewimg_clear_single(), i, and NUM_ICON_SIZES.
Referenced by BKE_previewimg_cached_thumbnail_read(), blender::ed::asset::generate_preview(), blender::ed::asset::generate_previewimg_from_buffer(), lib_id_generate_preview_exec(), and previews_clear_exec().
| void BKE_previewimg_clear_single | ( | PreviewImage * | prv, |
| enum eIconSizes | size ) |
Clear the preview image or icon at a specific size.
Definition at line 129 of file preview_image.cc.
References PreviewImage::changed_timestamp, PreviewImage::flag, GPU_texture_free(), PreviewImage::h, MEM_SAFE_FREE, PRV_CHANGED, PRV_USER_EDITED, PreviewImage::rect, PreviewImage::runtime, size(), and PreviewImage::w.
Referenced by BKE_previewimg_clear(), and ED_preview_restart_queue_work().
| PreviewImage * BKE_previewimg_copy | ( | const PreviewImage * | prv | ) |
Create a copy of the preview image.
Definition at line 148 of file preview_image.cc.
References i, MEM_dupallocN(), MEM_mallocN(), NUM_ICON_SIZES, PreviewImage::rect, and PreviewImage::runtime.
Referenced by BKE_previewimg_id_copy(), and UI_icon_to_preview().
| PreviewImage * BKE_previewimg_create | ( | ) |
Create a new preview image.
Definition at line 74 of file preview_image.cc.
References PreviewImage::changed_timestamp, PreviewImage::flag, i, MEM_callocN(), NUM_ICON_SIZES, PRV_CHANGED, and PreviewImage::runtime.
Referenced by BKE_previewimg_cached_ensure(), BKE_previewimg_id_ensure(), previewimg_deferred_create(), and UI_icon_to_preview().
| const char * BKE_previewimg_deferred_filepath_get | ( | const PreviewImage * | prv | ) |
Definition at line 421 of file preview_image.cc.
References PreviewImage::runtime.
| void BKE_previewimg_deferred_release | ( | PreviewImage * | prv | ) |
Definition at line 266 of file preview_image.cc.
References BKE_icon_delete(), BKE_previewimg_free(), PRV_TAG_DEFFERED_DELETE, PRV_TAG_DEFFERED_RENDERING, and PreviewImage::runtime.
Referenced by BKE_previewimg_cached_release(), BKE_previewimg_id_custom_set(), and icon_preview_endjob().
| std::optional< int > BKE_previewimg_deferred_thumb_source_get | ( | const PreviewImage * | prv | ) |
Definition at line 430 of file preview_image.cc.
References PreviewImage::runtime.
| void BKE_previewimg_ensure | ( | PreviewImage * | prv, |
| int | size ) |
Handle deferred (lazy) loading/generation of preview image, if needed. For now, only used with file thumbnails.
Definition at line 367 of file preview_image.cc.
References Box, ImBuf::byte_buffer, ImBufByteBuffer::data, blender::bke::PreviewDeferredLoadingData::filepath, PreviewImage::flag, PreviewImage::h, ICON_RENDER_DEFAULT_HEIGHT, ICON_SIZE_ICON, ICON_SIZE_PREVIEW, IMB_freeImBuf(), IMB_premultiply_alpha(), IMB_scale(), IMB_thumb_manage(), MEM_dupallocN(), PRV_CHANGED, PRV_RENDERING, PRV_USER_EDITED, PreviewImage::rect, PreviewImage::runtime, size(), blender::bke::PreviewDeferredLoadingData::source, THB_LARGE, PreviewImage::w, ImBuf::x, and ImBuf::y.
Referenced by BKE_previewimg_id_custom_set(), and blender::ed::asset::generate_previewimg_from_buffer().
| void BKE_previewimg_finish | ( | PreviewImage * | prv, |
| const int | size ) |
Definition at line 456 of file preview_image.cc.
References atomic_fetch_and_and_int16(), PreviewImage::flag, PRV_RENDERING, and size().
Referenced by blo_blendhandle_read_preview_rects(), and icon_preview_endjob().
| void BKE_previewimg_free | ( | PreviewImage ** | prv | ) |
Free the preview image.
Definition at line 87 of file preview_image.cc.
References GPU_texture_free(), i, MEM_freeN(), and NUM_ICON_SIZES.
Referenced by blender::bke::action_free_data(), BKE_previewimg_cached_thumbnail_read(), BKE_previewimg_deferred_release(), BKE_previewimg_freefunc(), BKE_previewimg_id_free(), brush_free_data(), collection_free_data(), image_free_data(), light_free_data(), material_free_data(), blender::bke::ntree_free_data(), object_free_data(), scene_free_data(), screen_free_data(), texture_free_data(), and world_free_data().
| void BKE_previewimg_freefunc | ( | void * | link | ) |
Free the preview image for use in list.
Definition at line 120 of file preview_image.cc.
References BKE_previewimg_free().
Referenced by BKE_preview_images_free(), and imb_thumb_load_from_blend_id().
Duplicate preview image from id and clear icon_id, to be used by data-block copy functions.
Definition at line 168 of file preview_image.cc.
References BKE_previewimg_copy(), BKE_previewimg_id_get_p(), BLI_assert, ELEM, and ID::icon_id.
Referenced by blender::bke::action_copy_data(), brush_copy_data(), collection_copy_data(), image_copy_data(), light_copy_data(), material_copy_data(), blender::bke::ntree_copy_data(), object_copy_data(), scene_copy_data(), texture_copy_data(), and world_copy_data().
| void BKE_previewimg_id_custom_set | ( | ID * | id, |
| const char * | filepath ) |
Trigger deferred loading of a custom image file into the preview buffer.
Definition at line 240 of file preview_image.cc.
References BKE_previewimg_deferred_release(), BKE_previewimg_ensure(), BKE_previewimg_id_get_p(), i, NUM_ICON_SIZES, previewimg_deferred_create(), PRV_USER_EDITED, and THB_SOURCE_IMAGE.
Referenced by blender::ed::sculpt_paint::brush_asset_load_preview_exec(), and lib_id_load_custom_preview_exec().
| PreviewImage * BKE_previewimg_id_ensure | ( | ID * | id | ) |
Retrieve existing or create new preview image.
Definition at line 227 of file preview_image.cc.
References BKE_previewimg_create(), and BKE_previewimg_id_get_p().
Referenced by BKE_icon_preview_ensure(), ED_preview_icon_render(), blender::ed::asset::generate_previewimg_from_buffer(), icon_draw_size(), lib_id_generate_preview_from_object_exec(), previews_clear_exec(), ui_icon_ensure_deferred(), UI_icon_render_id(), UI_icon_to_preview(), and ui_id_icon_render().
| void BKE_previewimg_id_free | ( | ID * | id | ) |
Free the preview image belonging to the id.
Definition at line 219 of file preview_image.cc.
References BKE_previewimg_free(), and BKE_previewimg_id_get_p().
Referenced by lib_id_generate_preview_from_object_exec(), and lib_id_remove_preview_exec().
| PreviewImage * BKE_previewimg_id_get | ( | const ID * | id | ) |
Definition at line 213 of file preview_image.cc.
References BKE_previewimg_id_get_p().
Referenced by BKE_asset_metadata_preview_get_from_id(), ED_preview_kill_jobs_for_id(), ED_preview_restart_queue_work(), blender::asset_system::AssetRepresentation::ensure_previewable(), blender::ed::asset::generate_preview(), blender::asset_system::AssetRepresentation::get_preview(), lib_id_generate_preview_exec(), lib_id_remove_preview_poll(), memfile_undosys_unfinished_id_previews_restart(), and ui_icon_is_preview_deferred_loading().
| PreviewImage ** BKE_previewimg_id_get_p | ( | const ID * | id | ) |
Get the preview from any pointer.
Definition at line 185 of file preview_image.cc.
References GS, ID_AC, ID_BR, ID_GR, ID_IM, ID_LA, ID_MA, ID_NT, ID_OB, ID_PRV_CASE, ID_SCE, ID_SCR, ID_TE, ID_WO, and ID::name.
Referenced by BKE_icon_changed(), BKE_icon_id_ensure(), BKE_previewimg_id_copy(), BKE_previewimg_id_custom_set(), BKE_previewimg_id_ensure(), BKE_previewimg_id_free(), BKE_previewimg_id_get(), ED_preview_id_is_supported(), and lib_id_preview_editing_poll_ex().
| bool BKE_previewimg_id_supports_jobs | ( | const ID * | id | ) |
Definition at line 261 of file preview_image.cc.
References ELEM, GS, ID_BR, ID_GR, ID_IM, ID_LA, ID_MA, ID_OB, ID_SCE, ID_TE, ID_WO, and ID::name.
Referenced by duplicate_ids(), ED_preview_shader_job(), and icon_set_image().
| bool BKE_previewimg_is_finished | ( | const PreviewImage * | prv, |
| const int | size ) |
Definition at line 462 of file preview_image.cc.
References PreviewImage::flag, PRV_RENDERING, and size().
Referenced by filelist_cache_previews_push(), filelist_file_create_entry(), icon_preview_startjob_all_sizes(), and memfile_undosys_unfinished_id_previews_restart().
| bool BKE_previewimg_is_invalid | ( | const PreviewImage * | prv | ) |
Deferred preview images may fail to load, e.g. because the image couldn't be found on disk.
Definition at line 467 of file preview_image.cc.
References PRV_TAG_DEFFERED_INVALID, and PreviewImage::runtime.
Referenced by blender::ed::asset::asset_preview_icon_id(), and ui_id_preview_image_render_size().
| ImBuf * BKE_previewimg_to_imbuf | ( | const PreviewImage * | prv, |
| int | size ) |
Create an ImBuf holding a copy of the preview image buffer in prv.
Definition at line 439 of file preview_image.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, PreviewImage::h, IB_byte_data, IMB_allocImBuf(), PreviewImage::rect, size(), PreviewImage::w, and w().
Referenced by filelist_cache_previews_push(), filelist_file_create_entry(), and imb_thumb_load_from_blend_id().
|
static |
Definition at line 64 of file preview_image.cc.
References BKE_previewimg_create(), and PreviewImage::runtime.
Referenced by BKE_previewimg_cached_thumbnail_read(), and BKE_previewimg_id_custom_set().
Definition at line 43 of file preview_image.cc.
Referenced by BKE_preview_images_free(), BKE_preview_images_init(), BKE_previewimg_cached_ensure(), BKE_previewimg_cached_get(), BKE_previewimg_cached_release(), and BKE_previewimg_cached_thumbnail_read().