|
Blender V5.0
|
Go to the source code of this file.
Classes | |
| struct | blender::bke::ImageRuntime |
| struct | ImageGPUTextures |
Namespaces | |
| namespace | blender |
| namespace | blender::gpu |
| namespace | blender::ocio |
| namespace | blender::bke |
Macros | |
| #define | IMA_MAX_SPACE 64 |
| #define | IMA_UDIM_MAX 2000 |
| #define | IMA_SIGNAL_RELOAD 0 |
| #define | IMA_SIGNAL_FREE 1 |
| #define | IMA_SIGNAL_SRC_CHANGE 5 |
| #define | IMA_SIGNAL_USER_NEW_IMAGE 6 |
| #define | IMA_SIGNAL_COLORMANAGE 7 |
Typedefs | |
| typedef void | StampCallback(void *data, const char *propname, char *propvalue, int propvalue_maxncpy) |
Enumerations | |
| enum | eUDIM_TILE_FORMAT { UDIM_TILE_FORMAT_NONE = 0 , UDIM_TILE_FORMAT_UDIM = 1 , UDIM_TILE_FORMAT_UVTILE = 2 } |
| #define IMA_MAX_SPACE 64 |
Definition at line 47 of file BKE_image.hh.
Referenced by openanim(), and openanim_noload().
| #define IMA_SIGNAL_COLORMANAGE 7 |
Definition at line 174 of file BKE_image.hh.
Referenced by BKE_image_save(), BKE_image_signal(), and wm_set_working_color_space_exec().
| #define IMA_SIGNAL_FREE 1 |
Definition at line 169 of file BKE_image.hh.
Referenced by BKE_image_signal(), blender::render::Context::output_to_render_result(), screen_opengl_render_init(), screen_render_exec(), and screen_render_invoke().
| #define IMA_SIGNAL_RELOAD 0 |
Definition at line 168 of file BKE_image.hh.
Referenced by BKE_image_signal(), BKE_packedfile_unpack_image(), image_foreach_path(), image_open_exec(), image_reload_exec(), image_replace_exec(), and blender::ed::space_node::node_add_image_exec().
| #define IMA_SIGNAL_SRC_CHANGE 5 |
Definition at line 171 of file BKE_image.hh.
Referenced by BKE_image_signal(), and image_replace_exec().
| #define IMA_SIGNAL_USER_NEW_IMAGE 6 |
Definition at line 173 of file BKE_image.hh.
Referenced by BKE_image_signal(), ED_space_image_auto_set(), ED_space_image_set(), image_clipboard_paste_exec(), image_new_exec(), and proj_paint_add_slot().
| #define IMA_UDIM_MAX 2000 |
Definition at line 48 of file BKE_image.hh.
Referenced by BKE_image_add_tile(), BKE_image_get_tile(), BKE_image_get_tile_info(), BKE_image_reassign_tile(), BKE_image_tile_filepath_exists(), IMAGE_OT_tile_add(), and tile_add_exec().
| typedef void StampCallback(void *data, const char *propname, char *propvalue, int propvalue_maxncpy) |
Definition at line 87 of file BKE_image.hh.
| enum eUDIM_TILE_FORMAT |
| Enumerator | |
|---|---|
| UDIM_TILE_FORMAT_NONE | |
| UDIM_TILE_FORMAT_UDIM | |
| UDIM_TILE_FORMAT_UVTILE | |
Definition at line 453 of file BKE_image.hh.
Return image buffer for given image and user:
References the result, BKE_image_release_ibuf should be used to de-reference.
Definition at line 4744 of file source/blender/blenkernel/intern/image.cc.
References image_acquire_ibuf(), lock, and Image::runtime.
Referenced by blender::ed::greasepencil::ImageBufferAccessor::acquire(), blender::image_engine::SpaceNodeAccessor::acquire_image_buffer(), blender::io::fbx::add_image_texture(), blender::bke::pbvh::pixels::apply_watertight_check(), blender::ed::space_node::backimage_fit_exec(), blender::ed::object::bake_object_check(), blender::ed::object::bake_targets_init_internal(), BKE_image_get_float_pixels_for_frame(), BKE_image_get_pixels_for_frame(), BKE_image_get_size(), BKE_image_has_alpha(), BKE_image_pool_acquire_ibuf(), BKE_image_preview(), BKE_image_save_options_init(), BKE_image_scale(), BKE_image_update_gputexture(), BKE_paint_canvas_key_get(), blender::compositor::CachedImage::CachedImage(), blender::ed::object::clear_single_image(), cmp_node_image_create_outputs(), colorfn(), blender::nodes::node_composite_cryptomatte_cc::CryptoMatteOperation::compute_image_domain(), blender::bke::pbvh::pixels::copy_pixels(), blender::bke::pbvh::pixels::copy_update(), cryptomatte_init_from_node_image(), blender::bke::pbvh::pixels::do_encode_pixels(), blender::ed::sculpt_paint::paint::image::do_paint_pixels(), blender::ed::sculpt_paint::paint::image::do_push_undo_tile(), blender::ed::space_node::draw_nodespace_back_pix(), draw_plane_marker_image(), ED_image_undo_push_begin_with_image_all_udims(), ED_space_image_acquire_buffer(), ED_space_node_color_sample(), ED_space_node_get_position(), blender::io::usd::export_in_memory_texture(), eyedropper_cryptomatte_sample_image_fl(), blender::io::usd::get_in_memory_texture_filename(), blender::nodes::node_composite_cryptomatte_cc::CryptoMatteOperation::get_layers_from_image(), gpu_texture_create_tile_array(), icon_preview_startjob(), image_clipboard_copy_exec(), image_file_format_writable(), image_flip_exec(), image_from_context_has_data_poll(), image_get_gpu_texture(), image_invert_exec(), image_rect_update(), image_rotate_orthogonal_exec(), image_save_single(), image_scale_exec(), image_scale_invoke(), image_undosys_step_encode(), blender::nodes::node_geo_image_texture_cc::ImageFieldsFunction::ImageFieldsFunction(), blender::bke::image::partial_update::ImageTileData::init_data(), BlenderImageLoader::load_metadata(), BlenderImageLoader::load_pixels(), blender::bke::pbvh::pixels::mark_image_dirty(), metadata_panel_context_draw(), blender::ed::object::multiresbake_check(), blender::nodes::node_geo_image_info_cc::node_geo_exec(), paint_2d_bucket_fill(), paint_2d_canvas_set(), paint_2d_ensure_tile_canvas(), paint_2d_gradient_fill(), paint_2d_new_stroke(), paint_2d_redraw(), paint_sample_color(), palette_extract_img_exec(), project_paint_build_proj_ima(), project_paint_PickColor(), project_paint_uvpixel_init(), project_paint_uvpixel_mask(), ptile_restore_runtime_map(), RE_bake_ibuf_clear(), render_endjob(), blender::ed::space_node::sample_apply(), screen_opengl_render_apply(), blender::bke::image::partial_update::ImagePartialUpdateTest::SetUp(), blender::ed::space_node::snode_bg_viewmove_invoke(), texture_paint_camera_project_exec(), tile_fill_init(), uhandle_restore_list(), uiTemplateImage(), uiTemplateImageInfo(), blender::bke::pbvh::pixels::update_pixels(), blender::ed::space_node::viewer_border_exec(), blender::render::Context::viewer_output_to_viewer_image(), blender::ed::space_node::WIDGETGROUP_node_corner_pin_refresh(), blender::ed::space_node::WIDGETGROUP_node_crop_refresh(), blender::ed::space_node::WIDGETGROUP_node_glare_refresh(), blender::ed::space_node::WIDGETGROUP_node_mask_refresh(), blender::ed::space_node::WIDGETGROUP_node_split_refresh(), blender::ed::space_node::WIDGETGROUP_node_transform_refresh(), and blender::ed::object::write_internal_bake_pixels().
| ImBuf * BKE_image_acquire_multilayer_view_ibuf | ( | const RenderData & | render_data, |
| Image & | image, | ||
| const ImageUser & | image_user, | ||
| const char * | pass_name, | ||
| const char * | view_name ) |
Return image buffer for given image, user, pass, and view. Is thread-safe, so another thread can be changing image while this function is executed.
If the image is single-layer then the pass name is completely ignored.
If the image is multi-layer then this function does all needed internal configurations to read the pass. There is no need to acquire a temporary ImBuf prior to this call (which is what some legacy code had to do to ensure proper type and RenderResult).
References the result, BKE_image_release_ibuf should be used to de-reference.
Definition at line 4781 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_is_multilayer(), BKE_image_multilayer_index(), BKE_scene_multiview_view_id_get(), BLI_assert, BLI_findlink(), BLI_findstringindex(), get_multilayer_view_index(), image_acquire_ibuf(), IMB_freeImBuf(), ImageUser::layer, RenderResult::layers, lock, ImageUser::multi_index, name, offsetof, ImageUser::pass, RenderLayer::passes, Image::rr, Image::runtime, and ImageUser::view.
| RenderResult * BKE_image_acquire_renderresult | ( | Scene * | scene, |
| Image * | ima ) |
Acquire render result associated with the give image.
The returned render result is user-counted It is then required to call * BKE_image_release_renderresult with the non-null render result returned by this function.
It is possible to use ibuf acquire/release API while a render result is held.
It is allowed to call BKE_image_release_renderresult with render_result of nullptr, but it is not required.
Definition at line 3805 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_get_renderslot(), BKE_image_partial_update_mark_full_update(), IMA_TYPE_R_RESULT, image_init_multilayer_multiview(), Image::last_render_slot, lock, RE_AcquireResultRead(), RE_GetSceneRender(), RE_ReferenceRenderResult(), RenderSlot::render, Image::render_slot, Image::rr, Image::runtime, and Image::type.
Referenced by blender::compositor::CachedImage::CachedImage(), draw_render_info(), blender::nodes::node_composite_cryptomatte_cc::CryptoMatteOperation::get_layers_from_image(), image_save_single(), ui_imageuser_layer_menu(), ui_imageuser_layer_menu_step(), ui_imageuser_pass_menu(), ui_imageuser_pass_menu_step(), ui_imageuser_view_menu_rr(), uiTemplateImage(), and uiTemplateImageLayers().
Create an image from ibuf. The reference-count of ibuf is increased, caller should take care to drop its reference by calling IMB_freeImBuf if needed.
Definition at line 1333 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_replace_imbuf(), BLI_path_basename(), ImBuf::filepath, IMA_SRC_FILE, IMA_SRC_GENERATED, IMA_TYPE_IMAGE, image_alloc(), and name.
Referenced by image_clipboard_paste_exec(), blender::ed::greasepencil::image_render::image_render_end(), new_image_from_plane_marker_exec(), and texture_paint_image_from_view_exec().
| Image * BKE_image_add_generated | ( | Main * | bmain, |
| unsigned int | width, | ||
| unsigned int | height, | ||
| const char * | name, | ||
| int | depth, | ||
| int | floatbuf, | ||
| short | gen_type, | ||
| const float | color[4], | ||
| bool | stereo3d, | ||
| bool | is_data, | ||
| bool | tiled ) |
Adds new image block, creates ImBuf and initializes color.
Definition at line 1242 of file source/blender/blenkernel/intern/image.cc.
References add_ibuf_for_tile(), COLOR_ROLE_DATA, Image::colorspace_settings, copy_v4_v4(), ListBase::first, IMA_GEN_FLOAT, IMA_NO_INDEX, IMA_SRC_GENERATED, IMA_SRC_TILED, IMA_TYPE_IMAGE, IMA_TYPE_UV_TEST, image_add_view(), image_alloc(), image_assign_ibuf(), IMB_colormanagement_role_colorspace_name_get(), IMB_freeImBuf(), ColorManagedColorspaceSettings::name, name, STEREO_LEFT_NAME, STEREO_RIGHT_NAME, STRNCPY_UTF8, tile, and Image::tiles.
Referenced by blender::io::fbx::create_placeholder_image(), blender::io::obj::create_placeholder_image(), image_new_exec(), and proj_paint_image_create().
| RenderSlot * BKE_image_add_renderslot | ( | Image * | ima, |
| const char * | name ) |
Definition at line 5596 of file source/blender/blenkernel/intern/image.cc.
References BLI_addtail(), BLI_listbase_count(), DATA_, MEM_callocN(), name, RenderSlot::name, Image::renderslots, SNPRINTF_UTF8, and STRNCPY_UTF8.
Referenced by BKE_image_backup_render(), image_add_render_slot_exec(), and image_init().
Definition at line 3406 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_partial_update_mark_full_update(), BLI_addtail(), BLI_insertlinkbefore(), ListBase::first, GPU_texture_free(), Image::gputexture, IMA_SRC_TILED, IMA_UDIM_MAX, imagetile_alloc(), ImageTile::next, Image::source, STRNCPY_UTF8, TEXTARGET_2D_ARRAY, TEXTARGET_TILE_MAPPING, tile, ImageTile::tile_number, and Image::tiles.
Referenced by add_udim_tiles(), BKE_image_signal(), image_open_single(), and tile_add_exec().
| void BKE_image_all_free_anim_ibufs | ( | Main * | bmain, |
| int | cfra ) |
Does all images with type MOVIE or SEQUENCE.
Definition at line 1665 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_free_anim_ibufs(), BKE_image_is_animated(), ListBase::first, Image::id, Main::images, and ID::next.
Referenced by do_render_full_pipeline().
| void BKE_image_alpha_mode_from_extension | ( | Image * | image | ) |
Definition at line 1022 of file source/blender/blenkernel/intern/image.cc.
References Image::alpha_mode, BKE_image_alpha_mode_from_extension_ex(), and Image::filepath.
Referenced by blo_do_versions_260().
| char BKE_image_alpha_mode_from_extension_ex | ( | const char * | filepath | ) |
Set an alpha mode based on file extension.
Definition at line 1013 of file source/blender/blenkernel/intern/image.cc.
References BLI_path_extension_check_n(), IMA_ALPHA_PREMUL, and IMA_ALPHA_STRAIGHT.
Referenced by blender::seq::alpha_mode_from_file_extension(), and BKE_image_alpha_mode_from_extension().
For multiple slot render, call this before render.
Definition at line 3864 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_add_renderslot(), BKE_image_clear_renderslot(), BKE_image_get_renderslot(), BLI_listbase_count(), ListBase::first, Image::last_render_slot, RE_GetSceneRender(), RE_SwapResult(), RenderSlot::render, Image::render_slot, and Image::renderslots.
Referenced by ED_node_composite_job(), screen_opengl_render_init(), screen_render_exec(), and screen_render_invoke().
Definition at line 151 of file image_gen.cc.
References IndexRange::first(), image_buf_fill_checker_slice(), blender::threading::parallel_for(), and IndexRange::size().
Referenced by BKE_image_find_nearest_tile_with_offset(), and image_buf_fill_isolated().
| void BKE_image_buf_fill_checker_color | ( | unsigned char * | rect, |
| float * | rect_float, | ||
| int | width, | ||
| int | height ) |
Definition at line 372 of file image_gen.cc.
References checker_board_color_prepare_slice(), checker_board_text(), IndexRange::first(), IB_PROFILE_LINEAR_RGB, IB_PROFILE_SRGB, IMB_buffer_float_from_float_threaded(), blender::threading::parallel_for(), and IndexRange::size().
Referenced by BKE_image_find_nearest_tile_with_offset(), and image_buf_fill_isolated().
| void BKE_image_buf_fill_color | ( | unsigned char * | rect, |
| float * | rect_float, | ||
| int | width, | ||
| int | height, | ||
| const float | color[4] ) |
Definition at line 26 of file image_gen.cc.
References copy_v4_v4(), IndexRange::first(), i, blender::threading::parallel_for(), and rgba_float_to_uchar().
Referenced by BKE_image_find_nearest_tile_with_offset(), and image_buf_fill_isolated().
| bool BKE_image_buffer_format_writable | ( | ImBuf * | ibuf | ) |
Definition at line 5424 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_format_from_imbuf(), BKE_imtype_to_ftype(), ImBuf::ftype, and ImageFormatData::imtype.
Referenced by BKE_image_find_nearest_tile_with_offset(), BKE_image_is_dirty_writable(), and image_file_format_writable().
Definition at line 5678 of file source/blender/blenkernel/intern/image.cc.
References BLI_findlink(), G, Image::last_render_slot, RE_ClearResult(), RE_FreeRenderResult(), RE_GetSceneRender(), RenderSlot::render, Image::renderslots, and ImageUser::scene.
Referenced by BKE_image_backup_render(), and image_clear_render_slot_exec().
| blender::gpu::Texture * BKE_image_create_gpu_texture_from_ibuf | ( | Image * | image, |
| ImBuf * | ibuf ) |
Not to be use directly.
References BKE_image_create_gpu_texture_from_ibuf(), BKE_image_ensure_gpu_texture(), BKE_image_get_gpu_texture(), and BKE_image_get_gpu_viewer_texture().
Referenced by BKE_image_create_gpu_texture_from_ibuf().
| void BKE_image_editors_update_frame | ( | const Main * | bmain, |
| int | cfra ) |
Definition at line 5125 of file source/blender/blenkernel/intern/image.cc.
References ListBase::first, wmWindowManager::id, image_editors_update_frame(), image_walk_id_all_users(), and Main::wm.
Referenced by BKE_scene_graph_update_for_newframe_ex().
Ensure that the cached GPU texture inside the image matches the pass, layer, and view of the given image user, if not, invalidate the cache such that the next call to the GPU texture retrieval functions such as BKE_image_get_gpu_texture updates the cache with an image that matches the give image user.
This is provided as a separate function and not implemented as part of the GPU texture retrieval functions because the current cache system only allows a single pass, layer, and stereo view to be cached, so possible frequent cache invalidation can have performance implications, and making invalidation explicit by calling this function will help make that clear and pave the way for a more complete cache system in the future.
Definition at line 348 of file image_gpu.cc.
References BKE_image_partial_update_mark_full_update(), ELEM, IMAGE_GPU_LAYER_NONE, IMAGE_GPU_PASS_NONE, IMAGE_GPU_VIEW_NONE, ImageUser::layer, ImageUser::multi_index, and ImageUser::pass.
Referenced by BKE_image_create_gpu_texture_from_ibuf().
| void BKE_image_ensure_tile_token | ( | char * | filepath, |
| size_t | filepath_maxncpy ) |
Ensures that filename contains a UDIM token if we find a supported format pattern.
Definition at line 3581 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_ensure_tile_token_filename_only(), and BLI_path_basename().
Referenced by BKE_image_signal(), BKE_packedfile_unpack_image(), do_versions_after_linking_300(), and image_file_browse_exec().
| void BKE_image_ensure_tile_token_filename_only | ( | char * | filename, |
| size_t | filename_maxncpy ) |
Definition at line 3552 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_is_filename_tokenized(), BLI_assert_msg, BLI_path_slash_find(), and BLI_strncpy().
Referenced by BKE_image_ensure_tile_token(), BKE_image_get_tile_info(), and blender::bke::tests::TEST().
Ensures an Image exists for viewing nodes or render forces existence of 1 Image for render-output or nodes, returns Image.
| name | Only for default, when making new one. |
Definition at line 2683 of file source/blender/blenkernel/intern/image.cc.
References ListBase::first, Image::id, id_us_ensure_real(), IMA_SRC_VIEWER, image_alloc(), Main::images, name, ID::next, Image::source, Image::type, and ID::us.
Referenced by blender::ed::space_node::backimage_fit_exec(), blender::ed::space_node::draw_nodespace_back_pix(), blender::draw::color_management::drw_color_management_type_for_space_node(), ED_node_composite_job(), ED_space_node_color_sample(), ED_space_node_get_position(), blender::image_engine::SpaceNodeAccessor::get_image(), image_read_viewlayers_exec(), blender::render::Context::output_to_render_result(), render_view_open(), blender::ed::space_node::sample_apply(), screen_opengl_render_init(), screen_render_exec(), screen_render_invoke(), blender::ed::space_node::snode_bg_viewmove_invoke(), blender::ed::space_node::viewer_border_exec(), blender::render::Context::viewer_output_to_viewer_image(), blender::ed::space_node::WIDGETGROUP_node_corner_pin_refresh(), blender::ed::space_node::WIDGETGROUP_node_crop_refresh(), blender::ed::space_node::WIDGETGROUP_node_glare_refresh(), blender::ed::space_node::WIDGETGROUP_node_mask_refresh(), blender::ed::space_node::WIDGETGROUP_node_split_refresh(), blender::ed::space_node::WIDGETGROUP_node_transform_refresh(), and wm_draw_region_stereo_set().
| void BKE_image_ensure_viewer_views | ( | const RenderData * | rd, |
| Image * | ima, | ||
| ImageUser * | iuser ) |
Ensures the view node cache is compatible with the scene views. Reset the image cache and views when the Viewer Nodes views don't match the scene views.
Definition at line 2767 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_free_views(), BKE_scene_multiview_is_stereo3d(), BLI_thread_lock(), BLI_thread_unlock(), ImageUser::flag, IMA_SHOW_STEREO, image_free_cached_frames(), image_viewer_create_views(), image_views_match_render_views(), lock, LOCK_DRAW_IMAGE, and Image::runtime.
Referenced by blender::render::Context::viewer_output_to_viewer_image().
| void BKE_image_file_format_set | ( | Image * | image, |
| int | ftype, | ||
| const ImbFormatOptions * | options ) |
Definition at line 5432 of file source/blender/blenkernel/intern/image.cc.
References Image::cache, ImBuf::foptions, ImBuf::ftype, IMB_moviecacheIter_done(), IMB_moviecacheIter_free(), IMB_moviecacheIter_getImBuf(), IMB_moviecacheIter_new(), IMB_moviecacheIter_step(), lock, options, and Image::runtime.
Referenced by BKE_image_find_nearest_tile_with_offset().
Definition at line 3528 of file source/blender/blenkernel/intern/image.cc.
References add_ibuf_for_tile(), BKE_image_release_ibuf(), IMA_SRC_TILED, image_assign_ibuf(), image_free_tile(), Image::source, and tile.
Referenced by do_fill_tile().
Definition at line 978 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_find_nearest_tile_with_offset().
| int BKE_image_find_nearest_tile_with_offset | ( | const Image * | image, |
| const float | co[2], | ||
| float | r_uv_offset[2] ) |
Return the tile_number for the closest UDIM tile to co.
References ATTR_WARN_UNUSED_RESULT, BKE_image_buf_fill_checker(), BKE_image_buf_fill_checker_color(), BKE_image_buf_fill_color(), BKE_image_buffer_format_writable(), BKE_image_file_format_set(), BKE_image_get_aspect(), BKE_image_get_first_ibuf(), BKE_image_get_float_pixels_for_frame(), BKE_image_get_ibuf_with_name(), BKE_image_get_pixels_for_frame(), BKE_image_get_size(), BKE_image_get_size_fl(), BKE_image_has_anim(), BKE_image_has_filepath(), BKE_image_has_loaded_ibuf(), BKE_image_has_multiple_ibufs(), BKE_image_has_packedfile(), BKE_image_is_animated(), BKE_image_is_dirty(), BKE_image_is_dirty_writable(), BKE_image_mark_dirty(), BKE_image_sequence_guess_offset(), options, and tile.
Referenced by blender::ed::transform::clip_uv_transform_resize(), blender::ed::transform::clip_uv_transform_translation(), uv_nearest_image_tile_distance(), and uv_sculpt_stroke_init().
| void BKE_image_free_all_gputextures | ( | Main * | bmain | ) |
Definition at line 586 of file image_gpu.cc.
References BKE_image_free_gputextures(), Main::images, and LISTBASE_FOREACH.
Referenced by ED_object_texture_paint_mode_enter_ex(), and ED_object_texture_paint_mode_exit_ex().
| void BKE_image_free_all_textures | ( | Main * | bmain | ) |
Goes over all textures that use images.
Definition at line 1603 of file source/blender/blenkernel/intern/image.cc.
References Image::cache, ListBase::first, Image::id, Tex::id, ID_TAG_DOIT, Tex::ima, image_mem_size(), imagecache_check_dirty(), Main::images, IMB_moviecache_cleanup(), ID::next, printf, ID::tag, and Main::textures.
| void BKE_image_free_anim_gputextures | ( | Main * | bmain | ) |
Same as BKE_image_free_all_gputextures but only free animated images.
Definition at line 595 of file image_gpu.cc.
References BKE_image_free_gputextures(), BKE_image_is_animated(), Main::images, and LISTBASE_FOREACH.
Referenced by ED_view3d_draw_offscreen().
| void BKE_image_free_anim_ibufs | ( | Image * | ima, |
| int | except_frame ) |
Operates on one image only!
| except_frame | This is weak, only works for sequences without offset. |
Definition at line 1657 of file source/blender/blenkernel/intern/image.cc.
References Image::cache, imagecache_check_free_anim(), IMB_moviecache_cleanup(), lock, and Image::runtime.
Referenced by BKE_image_all_free_anim_ibufs().
| void BKE_image_free_buffers | ( | Image * | image | ) |
Definition at line 635 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_free_buffers_ex().
| void BKE_image_free_buffers_ex | ( | Image * | image, |
| bool | do_lock ) |
Simply free the image data from memory, on display the image can load again (except for render buffers).
Definition at line 614 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_free_gputextures(), image_free_anims(), image_free_cached_frames(), RE_FreeRenderResult(), Image::rr, and Image::runtime.
Referenced by BKE_image_free_buffers(), and BlenderImageLoader::load_pixels().
| void BKE_image_free_data | ( | Image * | image | ) |
Free (or release) any data used by this image (does not free the image itself).
Definition at line 640 of file source/blender/blenkernel/intern/image.cc.
References Image::id, and image_free_data().
| void BKE_image_free_gputextures | ( | Image * | ima | ) |
Definition at line 581 of file image_gpu.cc.
References BLI_thread_is_main(), and image_free_gpu().
Referenced by blender::ed::object::bake_targets_refresh(), BKE_image_free_all_gputextures(), BKE_image_free_anim_gputextures(), BKE_image_free_buffers_ex(), BKE_image_free_old_gputextures(), BKE_image_paint_set_mipmap(), paint_2d_redraw(), ptile_restore_runtime_map(), and texture_paint_camera_project_exec().
| void BKE_image_free_old_gputextures | ( | Main * | bmain | ) |
Definition at line 606 of file image_gpu.cc.
References BKE_image_free_buffers, BKE_image_free_gputextures(), BKE_image_has_opengl_texture(), BLI_time_now_seconds(), G, IMA_NOCOLLECT, Main::images, LISTBASE_FOREACH, and U.
Referenced by view3d_main_region_draw().
| void BKE_image_free_packedfiles | ( | Image * | image | ) |
Definition at line 591 of file source/blender/blenkernel/intern/image.cc.
References image_free_packedfiles().
Referenced by image_save_as_exec().
| void BKE_image_free_unused_gpu_textures | ( | ) |
Delayed free of OpenGL buffers by main thread.
Definition at line 547 of file image_gpu.cc.
References BLI_thread_is_main(), and gpu_free_unused_buffers().
Referenced by wm_draw_update(), and WM_exit_ex().
| void BKE_image_free_views | ( | Image * | image | ) |
Definition at line 596 of file source/blender/blenkernel/intern/image.cc.
References BLI_freelistN(), and Image::views.
Referenced by BKE_image_ensure_viewer_views(), image_free_data(), image_init_multilayer_multiview(), image_open_single(), and image_update_views_format().
Definition at line 5281 of file source/blender/blenkernel/intern/image.cc.
References Image::aspx, and Image::aspy.
Referenced by BKE_image_find_nearest_tile_with_offset(), BKE_mask_coord_from_image(), BKE_mask_coord_to_image(), ED_image_get_uv_aspect(), and ED_space_image_get_aspect().
References the result, BKE_image_release_ibuf is to be called to de-reference. Use lock=NULL when calling BKE_image_release_ibuf().
TODO(sergey): This is actually "get first item from the cache", which is not so much predictable. But using first loaded image buffer was also malicious logic and all the areas which uses this function are to be re-considered.
Definition at line 5496 of file source/blender/blenkernel/intern/image.cc.
References Image::cache, IMB_moviecacheIter_done(), IMB_moviecacheIter_free(), IMB_moviecacheIter_getImBuf(), IMB_moviecacheIter_new(), IMB_refImBuf(), lock, and Image::runtime.
Referenced by BKE_image_find_nearest_tile_with_offset().
Definition at line 5324 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), BKE_imageuser_default(), ImBufFloatBuffer::data, ImBuf::float_buffer, ImageUser::framenr, lock, MEM_dupallocN(), ImageUser::tile, and tile.
Referenced by BKE_image_find_nearest_tile_with_offset().
| ImageGPUTextures BKE_image_get_gpu_material_texture | ( | Image * | image, |
| ImageUser * | iuser, | ||
| const bool | use_tile_mapping ) |
Definition at line 506 of file image_gpu.cc.
References image_get_gpu_texture().
Referenced by blender::draw::detail::PassBase< DrawCommandBufType >::material_set(), blender::workbench::MaterialTexture::MaterialTexture(), and blender::workbench::MaterialTexture::MaterialTexture().
| ImageGPUTextures BKE_image_get_gpu_material_texture_try | ( | Image * | image, |
| ImageUser * | iuser, | ||
| const bool | use_tile_mapping ) |
Definition at line 513 of file image_gpu.cc.
References image_get_gpu_texture().
Referenced by blender::draw::detail::PassBase< DrawCommandBufType >::material_set().
| blender::gpu::Texture * BKE_image_get_gpu_texture | ( | Image * | image, |
| ImageUser * | iuser ) |
Get the blender::gpu::Texture for a given Image.
The requested GPU texture will be cached for subsequent calls, but only a single layer, pass, and view can be cached at a time, so the cache should be invalidated in operators and RNA callbacks that change the layer, pass, or view of the image to maintain a correct cache state. However, in some cases, multiple layers, passes, or views might be needed at the same time, like is the case for the compositor. This is currently not supported, so the caller should ensure that the requested layer is indeed the cached one and invalidated the cached otherwise by calling BKE_image_ensure_gpu_texture. This is a workaround until image can support a more complete caching system.
Definition at line 496 of file image_gpu.cc.
References image_get_gpu_texture(), and ImageGPUTextures::texture.
Referenced by blender::draw::overlay::Paints::begin_sync(), BKE_image_create_gpu_texture_from_ibuf(), blender::draw::overlay::MeshUVs::end_sync(), blender::draw::gpencil::gpencil_image_texture_get(), blender::eevee::LookdevWorld::LookdevWorld(), and pygpu_texture_from_image().
| blender::gpu::Texture * BKE_image_get_gpu_viewer_texture | ( | Image * | image, |
| ImageUser * | iuser ) |
Definition at line 501 of file image_gpu.cc.
References image_get_gpu_texture(), and ImageGPUTextures::texture.
Referenced by BKE_image_create_gpu_texture_from_ibuf().
References the result, BKE_image_release_ibuf is to be called to de-reference. Use lock=NULL when calling BKE_image_release_ibuf().
Definition at line 5472 of file source/blender/blenkernel/intern/image.cc.
References BLI_assert, BLI_path_is_rel(), Image::cache, ImBuf::filepath, IMB_moviecacheIter_done(), IMB_moviecacheIter_free(), IMB_moviecacheIter_getImBuf(), IMB_moviecacheIter_new(), IMB_moviecacheIter_step(), IMB_refImBuf(), lock, Image::runtime, and STREQ.
Referenced by BKE_image_find_nearest_tile_with_offset().
Definition at line 5294 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), BKE_imageuser_default(), ImBuf::byte_buffer, ImBufByteBuffer::data, ImageUser::framenr, lock, MEM_dupallocN(), ImageUser::tile, and tile.
Referenced by BKE_image_find_nearest_tile_with_offset().
| RenderSlot * BKE_image_get_renderslot | ( | Image * | ima, |
| int | index ) |
Definition at line 5706 of file source/blender/blenkernel/intern/image.cc.
References BLI_findlink(), and Image::renderslots.
Referenced by BKE_image_acquire_renderresult(), BKE_image_backup_render(), ED_image_slot_cycle(), image_cycle_render_slot_exec(), image_get_render_result(), and uiblock_layer_pass_buttons().
Definition at line 5244 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), BKE_render_resolution(), IMA_TYPE_R_RESULT, IMG_SIZE_FALLBACK, lock, Scene::r, ImageUser::scene, Image::type, ImBuf::x, and ImBuf::y.
Referenced by BKE_image_find_nearest_tile_with_offset(), BKE_image_get_size_fl(), ED_image_get_uv_aspect(), and blender::io::usd::process_usdz_textures().
Definition at line 5272 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_get_size(), and float.
Referenced by BKE_image_find_nearest_tile_with_offset(), BKE_mask_coord_from_image(), BKE_mask_coord_to_image(), blender::draw::overlay::MeshUVs::end_sync(), and WIDGETGROUP_empty_image_refresh().
Definition at line 821 of file source/blender/blenkernel/intern/image.cc.
References ELEM, ListBase::first, IMA_SRC_TILED, IMA_UDIM_MAX, LISTBASE_FOREACH, Image::source, tile, and Image::tiles.
Definition at line 847 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_get_tile, and image_get_tile_number_from_iuser().
Definition at line 852 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_get_tile, copy_v2_v2(), IMA_SRC_TILED, Image::source, sub_v2_v2(), and zero_v2().
Referenced by ED_space_image_color_sample(), image_sample_apply(), image_sample_line_exec(), imagewrap(), paint_2d_bucket_fill(), paint_2d_gradient_fill(), and paint_sample_color().
| bool BKE_image_get_tile_info | ( | char * | filepath, |
| ListBase * | tiles, | ||
| int * | r_tile_start, | ||
| int * | r_tile_range ) |
Checks whether the given filepath refers to a UDIM tiled texture. If yes, the range from the lowest to the highest tile is returned.
| filepath | may be modified to ensure a UDIM token is present. |
| tiles | may be filled even if the result ultimately is false! |
Definition at line 3355 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_ensure_tile_token_filename_only(), BKE_image_get_tile_number_from_filepath(), BKE_image_get_tile_strformat(), BKE_image_is_filename_tokenized(), BLI_addtail(), BLI_filelist_dir_contents(), BLI_filelist_free(), BLI_genericNodeN(), BLI_path_join, BLI_path_split_dir_file(), dirname(), FILE_MAX, FILE_MAXDIR, FILE_MAXFILE, i, IMA_UDIM_MAX, max_ii(), MEM_SAFE_FREE, min_ii(), POINTER_FROM_INT, and tiles.
Referenced by BKE_image_signal(), get_udim_tiles(), and image_detect_frame_range().
| int BKE_image_get_tile_label | ( | const Image * | ima, |
| const ImageTile * | tile, | ||
| char * | label, | ||
| int | label_maxncpy ) |
Get tile index for tiled images.
Definition at line 3339 of file source/blender/blenkernel/intern/image.cc.
References BLI_snprintf_rlen(), BLI_strncpy_rlen(), and tile.
| bool BKE_image_get_tile_number_from_filepath | ( | const char * | filepath, |
| const char * | pattern, | ||
| eUDIM_TILE_FORMAT | tile_format, | ||
| int * | r_tile_number ) |
Definition at line 3642 of file source/blender/blenkernel/intern/image.cc.
References result, UDIM_TILE_FORMAT_UDIM, UDIM_TILE_FORMAT_UVTILE, and v.
Referenced by BKE_image_get_tile_info(), BKE_image_tile_filepath_exists(), and blender::bke::tests::TEST().
| char * BKE_image_get_tile_strformat | ( | const char * | filepath, |
| eUDIM_TILE_FORMAT * | r_tile_format ) |
Retrieves the UDIM token format and returns the pattern from the provided filepath. The returned pattern is typically passed to either BKE_image_get_tile_number_from_filepath or BKE_image_set_filepath_from_tile_number.
Definition at line 3623 of file source/blender/blenkernel/intern/image.cc.
References BLI_string_replaceN(), UDIM_TILE_FORMAT_NONE, UDIM_TILE_FORMAT_UDIM, and UDIM_TILE_FORMAT_UVTILE.
Referenced by BKE_image_get_tile_info(), BKE_image_save(), BKE_image_signal(), BKE_image_tile_filepath_exists(), BKE_image_user_file_path_ex(), blender::io::usd::copy_tiled_textures(), blender::io::usd::export_in_memory_texture(), image_foreach_path(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), and blender::bke::tests::TEST().
Definition at line 880 of file source/blender/blenkernel/intern/image.cc.
References float, IMA_SRC_TILED, Image::source, tile_index, and zero_v2().
Referenced by blender::ed::object::bake_targets_init_internal(), and BKE_image_find_nearest_tile_with_offset().
| bool BKE_image_has_alpha | ( | Image * | image | ) |
Check if texture has alpha planes == 32 || planes == 16.
Definition at line 5230 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), ELEM, lock, and ImBuf::planes.
Referenced by uiTemplateImage().
| bool BKE_image_has_anim | ( | Image * | image | ) |
Definition at line 5359 of file source/blender/blenkernel/intern/image.cc.
References Image::anims, and BLI_listbase_is_empty().
Referenced by BKE_image_find_nearest_tile_with_offset(), BKE_image_load_exists_in_lib(), image_match_len_exec(), ui_tooltip_from_image(), and uiTemplateImageInfo().
| bool BKE_image_has_filepath | ( | const Image * | ima | ) |
Definition at line 5369 of file source/blender/blenkernel/intern/image.cc.
References Image::filepath.
Referenced by BKE_image_find_nearest_tile_with_offset(), blender::io::obj::get_image_filepath(), image_save_invoke(), image_should_pack_during_save_all(), and uiTemplateImage().
Is the alpha of the blender::gpu::Texture for a given image/ibuf premultiplied.
Definition at line 47 of file image_gpu.cc.
References ImBufFloatBuffer::data, ELEM, ImBuf::float_buffer, IMA_ALPHA_PREMUL, IMA_ALPHA_STRAIGHT, IMA_TYPE_COMPOSITE, IMA_TYPE_R_RESULT, and IMA_TYPE_UV_TEST.
Referenced by gpu_texture_create_tile_array(), gpu_texture_update_from_ibuf(), image_get_gpu_texture(), and blender::image_engine::ShaderParameters::update().
Checks whether there's an image buffer for given image and user.
Definition at line 4841 of file source/blender/blenkernel/intern/image.cc.
References image_acquire_ibuf(), image_get_cached_ibuf(), image_quick_test(), IMB_freeImBuf(), lock, and Image::runtime.
Referenced by draw_plane_marker_ex(), image_from_context_editable_has_data_poll_active_tile(), palette_extract_img_poll(), project_paint_prepare_all_faces(), tile_add_poll(), and tile_fill_poll().
| bool BKE_image_has_loaded_ibuf | ( | Image * | image | ) |
Definition at line 5450 of file source/blender/blenkernel/intern/image.cc.
References Image::cache, IMB_moviecacheIter_done(), IMB_moviecacheIter_free(), IMB_moviecacheIter_getImBuf(), IMB_moviecacheIter_new(), IMB_moviecacheIter_step(), lock, and Image::runtime.
Referenced by BKE_image_find_nearest_tile_with_offset(), BlenderImageLoader::BlenderImageLoader(), and imagewrap().
| bool BKE_image_has_multiple_ibufs | ( | Image * | image | ) |
Checks whether the image consists of multiple buffers.
Definition at line 5381 of file source/blender/blenkernel/intern/image.cc.
References ELEM, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE, IMA_SRC_TILED, and Image::source.
Referenced by BKE_image_find_nearest_tile_with_offset(), and image_get_multiview_index().
| bool BKE_image_has_opengl_texture | ( | Image * | ima | ) |
Check if texture has GPU texture code.
Definition at line 802 of file source/blender/blenkernel/intern/image.cc.
References Image::gputexture, i, and TEXTARGET_COUNT.
Referenced by BKE_image_free_old_gputextures(), and BKE_image_paint_set_mipmap().
| bool BKE_image_has_packedfile | ( | const Image * | image | ) |
Definition at line 5364 of file source/blender/blenkernel/intern/image.cc.
References BLI_listbase_is_empty(), and Image::packedfiles.
Referenced by BKE_image_find_nearest_tile_with_offset(), BKE_image_signal(), BKE_packedfile_count_all(), BKE_packedfile_id_check(), BKE_packedfile_id_unpack(), BKE_packedfile_pack_all(), BKE_packedfile_unpack_all(), blender::io::hydra::cache_or_get_image_file(), ED_image_save_all_modified(), ED_image_save_all_modified_info(), blender::io::obj::get_image_filepath(), blender::io::usd::get_in_memory_texture_filename(), image_foreach_path(), image_load_image_file(), image_save_exec(), image_save_invoke(), image_unpack_exec(), image_unpack_invoke(), blender::io::usd::is_packed_texture(), blender::io::usd::load_image(), blender::io::usd::USDMaterialReader::load_tex_image(), blender::io::fbx::load_texture_image(), paint_2d_new_stroke(), and uiTemplateImage().
Definition at line 3032 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_multilayer_index(), ImageUser::layer, ImageUser::multi_index, ImageUser::pass, Image::rr, and ImageUser::view.
Referenced by BKE_image_signal(), and image_open_exec().
| bool BKE_image_is_animated | ( | Image * | image | ) |
Checks the image buffer changes with time (not keyframed values).
Definition at line 5376 of file source/blender/blenkernel/intern/image.cc.
References ELEM, IMA_SRC_MOVIE, IMA_SRC_SEQUENCE, and Image::source.
Referenced by BKE_image_all_free_anim_ibufs(), BKE_image_find_nearest_tile_with_offset(), BKE_image_free_anim_gputextures(), BKE_image_user_frame_calc(), BKE_texture_dependsOnTime(), image_editors_update_frame(), image_tag_frame_recalc(), image_user_id_eval_animation(), image_user_id_has_animation(), MOD_init_texture(), blender::nodes::node_geo_image_info_cc::node_geo_exec(), blender::nodes::node_geo_image_texture_cc::node_geo_exec(), and uiTemplateImage().
| bool BKE_image_is_dirty | ( | Image * | image | ) |
Definition at line 5414 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_is_dirty_writable().
Referenced by BKE_image_find_nearest_tile_with_offset(), blender::io::usd::get_in_memory_texture_filename(), image_foreach_path(), image_pack_exec(), blender::io::usd::is_in_memory_texture(), blender::ed::space_node::node_buts_image_user(), pack_all_invoke(), and uiTemplateImage().
| bool BKE_image_is_dirty_writable | ( | Image * | image, |
| bool * | r_is_writable ) |
Definition at line 5386 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_buffer_format_writable(), Image::cache, IB_BITMAPDIRTY, IMB_moviecacheIter_done(), IMB_moviecacheIter_free(), IMB_moviecacheIter_getImBuf(), IMB_moviecacheIter_new(), IMB_moviecacheIter_step(), lock, Image::runtime, and ImBuf::userflags.
Referenced by BKE_image_find_nearest_tile_with_offset(), BKE_image_is_dirty(), and image_should_be_saved().
| bool BKE_image_is_filename_tokenized | ( | char * | filepath | ) |
Checks if the filename portion of the path contains a UDIM token.
Definition at line 3546 of file source/blender/blenkernel/intern/image.cc.
References BLI_path_basename().
Referenced by BKE_image_ensure_tile_token_filename_only(), BKE_image_get_tile_info(), BKE_image_signal(), and blender::io::usd::get_in_memory_texture_filename().
| bool BKE_image_is_multilayer | ( | const Image * | ima | ) |
For multi-layer images as well as for render-viewer and because rendered results use fake layer/passes, don't correct for wrong indices here.
Definition at line 3745 of file source/blender/blenkernel/intern/image.cc.
References ELEM, IMA_SRC_FILE, IMA_SRC_SEQUENCE, IMA_SRC_TILED, IMA_SRC_VIEWER, IMA_TYPE_MULTILAYER, IMA_TYPE_R_RESULT, Image::source, and Image::type.
Referenced by BKE_image_acquire_multilayer_view_ibuf(), blender::compositor::compute_image_user_for_pass(), and image_get_multiview_index().
| bool BKE_image_is_multiview | ( | const Image * | ima | ) |
Definition at line 3763 of file source/blender/blenkernel/intern/image.cc.
References ListBase::first, view, and Image::views.
Referenced by BKE_image_is_stereo(), BKE_image_memorypack(), BKE_image_reassign_tile(), BKE_image_save_options_init(), BKE_image_user_file_path_ex(), image_free_tile(), image_get_multiview_index(), image_load_image_file(), image_load_movie_file(), image_num_viewfiles(), image_save_as_init(), image_save_single(), image_update_views_format(), and uiblock_layer_pass_buttons().
| bool BKE_image_is_openexr | ( | Image * | ima | ) |
For multi-layer images as well as for single-layer.
Definition at line 3852 of file source/blender/blenkernel/intern/image.cc.
References BLI_path_extension_check(), ELEM, Image::filepath, IMA_SRC_FILE, IMA_SRC_SEQUENCE, IMA_SRC_TILED, Image::source, and UNUSED_VARS.
| bool BKE_image_is_stereo | ( | const Image * | ima | ) |
Definition at line 3769 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_is_multiview(), BLI_findstring(), name, offsetof, STEREO_LEFT_NAME, STEREO_RIGHT_NAME, and Image::views.
Referenced by BKE_image_multiview_index(), ED_screen_stereo3d_required(), image_get_multiview_index(), image_get_render_result(), image_load_image_file(), image_load_movie_file(), image_save_single(), blender::draw::overlay::Images::stereo_setup(), and uiblock_layer_pass_buttons().
Returns a new image or NULL if it can't load.
Definition at line 1041 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_load_in_lib().
Referenced by blender::bke::tests::ImageTest::load_image(), and blender::io::usd::process_usdz_textures().
Returns existing Image when filename/type is same.
Checks if image was already loaded, then returns same image otherwise creates new (does not load ibuf itself).
Definition at line 1083 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_load_exists_in_lib().
Referenced by blender::io::usd::load_image(), blender::io::obj::load_image_at_path(), blender::io::usd::USDMaterialReader::load_tex_image(), blender::io::fbx::load_texture_image(), and WM_operator_drop_load_path().
| Image * BKE_image_load_exists_in_lib | ( | Main * | bmain, |
| std::optional< Library * > | owner_library, | ||
| const char * | filepath, | ||
| bool * | r_exists = nullptr ) |
Definition at line 1088 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_has_anim(), BKE_image_load_in_lib(), BLI_path_abs(), BLI_path_cmp, Main::curlib, ELEM, FILE_MAX, Image::filepath, ListBase::first, Image::id, ID_BLEND_PATH, id_us_plus(), IMA_SRC_GENERATED, IMA_SRC_VIEWER, image_abs_path(), Main::images, ID::lib, ID::next, Image::source, STRNCPY(), and ID::us.
Referenced by BKE_image_load_exists(), and image_open_single().
| Image * BKE_image_load_in_lib | ( | Main * | bmain, |
| std::optional< Library * > | owner_library, | ||
| const char * | filepath ) |
Definition at line 1046 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_tile_filepath_exists(), BLI_open(), BLI_path_basename(), BLI_path_extension_check_array(), Main::curlib, FILE_MAX, Image::filepath, IMA_SRC_FILE, IMA_SRC_MOVIE, IMA_TYPE_IMAGE, image_abs_path(), image_alloc(), image_init_color_management(), imb_ext_movie, O_BINARY, Image::source, and STRNCPY().
Referenced by BKE_image_load(), and BKE_image_load_exists_in_lib().
Definition at line 5419 of file source/blender/blenkernel/intern/image.cc.
References IB_BITMAPDIRTY, and ImBuf::userflags.
Referenced by BKE_image_find_nearest_tile_with_offset(), BKE_image_replace_imbuf(), BKE_image_scale(), ED_imapaint_dirty_region(), image_flip_exec(), image_invert_exec(), image_rotate_orthogonal_exec(), image_scale_exec(), project_paint_undo_subtiles(), uhandle_restore_list(), and blender::ed::object::write_internal_bake_pixels().
| bool BKE_image_memorypack | ( | Image * | ima | ) |
Pack image to memory.
Definition at line 1414 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_is_multiview(), BKE_image_user_file_path(), BKE_imageuser_default(), BLI_findlink(), BLI_path_suffix(), FILE_MAX, ImageView::filepath, ImBuf::filepath, IMA_GEN_TILE, IMA_NO_INDEX, IMA_SRC_FILE, IMA_SRC_GENERATED, IMA_SRC_TILED, IMA_TYPE_IMAGE, image_free_packedfiles(), image_get_cached_ibuf_for_index_entry(), image_memorypack_imbuf(), image_num_viewfiles(), IMB_freeImBuf(), LISTBASE_FOREACH, R_IMF_VIEWS_INDIVIDUAL, R_IMF_VIEWS_STEREO_3D, Image::source, STEREO_LEFT_SUFFIX, STEREO_RIGHT_SUFFIX, ImageUser::tile, tile, Image::tiles, Image::type, view, Image::views, and Image::views_format.
Referenced by ED_image_save_all_modified(), image_pack_exec(), and image_save_exec().
Merge source into dest, and free source.
Definition at line 758 of file source/blender/blenkernel/intern/image.cc.
References BKE_id_free(), Image::cache, imagecache_put(), IMB_moviecacheIter_done(), IMB_moviecacheIter_free(), IMB_moviecacheIter_getImBuf(), IMB_moviecacheIter_getUserKey(), IMB_moviecacheIter_new(), IMB_moviecacheIter_step(), ImageCacheKey::index, and Image::runtime.
| RenderPass * BKE_image_multilayer_index | ( | RenderResult * | rr, |
| ImageUser * | iuser ) |
Sets index offset for multi-layer files and because rendered results use fake layer/passes, don't correct for wrong indices here.
Definition at line 3689 of file source/blender/blenkernel/intern/image.cc.
References BLI_listbase_count(), ListBase::first, ImageUser::flag, IMA_SHOW_STEREO, image_render_pass_get(), ImageUser::layer, RenderResult::layers, ImageUser::multi_index, ImageUser::multiview_eye, RenderLayer::next, ImageUser::pass, RenderLayer::passes, RE_HasCombinedLayer(), RE_RenderResult_is_stereo(), and ImageUser::view.
Referenced by BKE_image_acquire_multilayer_view_ibuf(), BKE_image_init_imageuser(), blender::compositor::compute_image_user_for_pass(), image_get_ibuf_multilayer(), image_load_sequence_multilayer(), image_multi_cb(), image_save_single(), blender::image_engine::Instance::image_sync(), ui_imageuser_layer_menu_step(), and ui_imageuser_pass_menu_step().
| void BKE_image_multilayer_stamp_info_callback | ( | void * | data, |
| const Image & | image, | ||
| StampCallback | callback, | ||
| bool | noskip ) |
Definition at line 2436 of file source/blender/blenkernel/intern/image.cc.
References BKE_stamp_info_callback(), data, lock, Image::rr, Image::runtime, and RenderResult::stamp_data.
Sets index offset for multi-view files.
Definition at line 3725 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_is_stereo(), BLI_listbase_count_at_most(), ImageUser::flag, IMA_SHOW_STEREO, ImageUser::multi_index, ImageUser::multiview_eye, ImageUser::view, and Image::views.
Referenced by blender::compositor::compute_image_user_for_pass(), image_multiview_cb(), image_save_single(), blender::image_engine::Instance::image_sync(), and blender::draw::overlay::Images::stereo_setup().
| void BKE_image_packfiles | ( | ReportList * | reports, |
| Image * | ima, | ||
| const char * | basepath ) |
Definition at line 1481 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_user_file_path(), BKE_imageuser_default(), BKE_packedfile_new(), BLI_addtail(), BLI_freelinkN(), FILE_MAX, ImagePackedFile::filepath, image_num_viewfiles(), LISTBASE_FOREACH, MEM_mallocN(), ImagePackedFile::packedfile, Image::packedfiles, STRNCPY(), ImageUser::tile, tile, ImagePackedFile::tile_number, Image::tiles, ImagePackedFile::view, ImageUser::view, and view.
Referenced by BKE_image_signal(), BKE_packedfile_pack_all(), image_pack_exec(), blender::io::usd::load_image(), and blender::io::usd::USDMaterialReader::load_tex_image().
| void BKE_image_packfiles_from_mem | ( | ReportList * | reports, |
| Image * | ima, | ||
| char * | data, | ||
| size_t | data_len ) |
Definition at line 1510 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_get_tile, BKE_packedfile_new_from_memory(), BKE_report(), BLI_addtail(), data, Image::filepath, ImagePackedFile::filepath, ImageTile::gen_flag, IMA_GEN_TILE, IMA_SRC_TILED, image_num_viewfiles(), MEM_mallocN(), ImagePackedFile::packedfile, Image::packedfiles, RPT_ERROR, Image::source, STRNCPY(), ImagePackedFile::tile_number, and ImagePackedFile::view.
Referenced by blender::io::fbx::load_texture_image().
| void BKE_image_paint_set_mipmap | ( | Main * | bmain, |
| bool | mipmap ) |
Called on entering and exiting texture paint mode, temporary disabling/enabling mipmapping on all images for quick texture updates with glTexSubImage2D. images that didn't change don't have to be re-uploaded to OpenGL.
Definition at line 937 of file image_gpu.cc.
References BKE_image_free_gputextures(), BKE_image_has_opengl_texture(), ELEM, GPU_texture_mipmap_mode(), IMA_GPU_MIPMAP_COMPLETE, Main::images, LISTBASE_FOREACH, TEXTARGET_2D, TEXTARGET_2D_ARRAY, and TEXTARGET_COUNT.
Referenced by ED_object_texture_paint_mode_enter_ex(), and ED_object_texture_paint_mode_exit_ex().
| PartialUpdateUser * BKE_image_partial_update_create | ( | const Image * | image | ) |
Create a new PartialUpdateUser. An Object that contains data to use partial updates.
Definition at line 544 of file image_partial_update.cc.
References UNUSED_VARS, and blender::bke::image::partial_update::wrap().
Referenced by image_get_gpu_texture(), and blender::bke::image::partial_update::ImagePartialUpdateTest::SetUp().
| void BKE_image_partial_update_free | ( | PartialUpdateUser * | user | ) |
free a partial update user.
Definition at line 559 of file image_partial_update.cc.
References blender::bke::image::partial_update::unwrap().
Referenced by image_runtime_free_data(), and blender::bke::image::partial_update::ImagePartialUpdateTest::TearDown().
| void BKE_image_partial_update_mark_full_update | ( | Image * | image | ) |
Mark the whole image to be updated.
Definition at line 587 of file image_partial_update.cc.
References blender::bke::image::partial_update::image_partial_update_register_ensure(), blender::bke::image::partial_update::PartialUpdateRegisterImpl::mark_full_update(), and blender::bke::image::partial_update::unwrap().
Referenced by blender::bke::pbvh::pixels::apply_watertight_check(), blender::ed::object::bake_targets_refresh(), BKE_image_acquire_renderresult(), BKE_image_add_tile(), BKE_image_ensure_gpu_texture(), BKE_image_reassign_tile(), BKE_image_save(), BKE_image_signal(), BKE_image_update_gputexture_delayed(), BKE_image_user_frame_calc(), current_scene_update(), ED_image_slot_cycle(), image_flip_exec(), image_free_tile(), image_invert_exec(), image_listener(), image_rotate_orthogonal_exec(), image_scale_exec(), image_tag_reload(), imapaint_image_update(), blender::bke::pbvh::pixels::NodeData::mark_region(), blender::ed::object::multiresbake_freejob(), blender::render::Context::output_to_render_result(), screen_opengl_render_apply(), blender::bke::image::partial_update::TEST_F(), uhandle_restore_list(), update_image_from_plane_marker_exec(), blender::render::Context::viewer_output_to_viewer_image(), and wm_set_working_color_space_exec().
| void BKE_image_partial_update_mark_region | ( | Image * | image, |
| const ImageTile * | image_tile, | ||
| const ImBuf * | image_buffer, | ||
| const rcti * | updated_region ) |
Mark a region of the image to update.
Definition at line 577 of file image_partial_update.cc.
References blender::bke::image::partial_update::image_partial_update_register_ensure(), blender::bke::image::partial_update::PartialUpdateRegisterImpl::mark_region(), blender::bke::image::partial_update::unwrap(), and blender::bke::image::partial_update::PartialUpdateRegisterImpl::update_resolution().
Referenced by BKE_image_update_gputexture_delayed(), blender::bke::pbvh::pixels::NodeData::mark_region(), blender::bke::image::partial_update::TEST_F(), blender::bke::image::partial_update::TEST_F(), blender::bke::image::partial_update::TEST_F(), blender::bke::image::partial_update::TEST_F(), blender::bke::image::partial_update::TEST_F(), blender::bke::image::partial_update::TEST_F(), and blender::bke::image::partial_update::TEST_F().
| void BKE_image_partial_update_register_free | ( | Image * | image | ) |
Definition at line 567 of file image_partial_update.cc.
References blender::bke::image::partial_update::unwrap().
Referenced by image_runtime_free_data().
Definition at line 4949 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_acquire_ibuf(), BLI_addtail(), BLI_mempool_alloc(), ImagePoolItem::entry, ImagePoolItem::ibuf, ImagePoolItem::image, ImagePool::image_buffers, image_get_entry_and_index(), image_pool_find_item(), image_quick_test(), ImagePoolItem::index, lock, ImagePool::memory_pool, and ImagePool::mutex.
Referenced by BKE_texture_fetch_images_for_pool(), image_sample(), imagewrap(), blender::ed::sculpt_paint::load_tex_task_cb_ex(), multitex_nodes_intern(), blender::ed::sculpt_paint::paint_stroke_new(), and texture_nodes_fetch_images_for_pool().
| void BKE_image_pool_free | ( | ImagePool * | pool | ) |
Definition at line 4915 of file source/blender/blenkernel/intern/image.cc.
References BLI_mempool_destroy(), ListBase::first, ImagePool::image_buffers, IMB_freeImBuf(), lock, ImagePool::memory_pool, ImagePool::mutex, and ImagePoolItem::next.
Referenced by brush_painter_2d_refresh_cache(), displaceModifier_do(), dynamicPaint_setInitialColor(), blender::ed::sculpt_paint::load_tex(), project_paint_op(), shader_preview_texture(), and SculptSession::~SculptSession().
| ImagePool * BKE_image_pool_new | ( | ) |
Definition at line 4908 of file source/blender/blenkernel/intern/image.cc.
References BLI_mempool_create(), BLI_MEMPOOL_NOP, and ImagePool::memory_pool.
Referenced by brush_init_tex(), brush_painter_2d_refresh_cache(), displaceModifier_do(), dynamicPaint_setInitialColor(), blender::ed::sculpt_paint::expand::ensure_sculptsession_data(), blender::ed::sculpt_paint::load_tex(), project_paint_op(), and shader_preview_texture().
Definition at line 5001 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_release_ibuf().
Referenced by image_sample(), imagewrap(), blender::ed::sculpt_paint::load_tex_task_cb_ex(), multitex_nodes_intern(), and blender::ed::sculpt_paint::paint_stroke_new().
Return image buffer of preview for given image r_width & r_height are optional and return the original size of the image.
Definition at line 4863 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_acquire_ibuf(), BKE_image_release_ibuf(), Box, float, IMB_byte_from_float(), IMB_dupImBuf(), IMB_scale(), lock, ImBuf::x, and ImBuf::y.
Referenced by ui_tooltip_from_image().
| void BKE_image_print_memlist | ( | Main * | bmain | ) |
Prints memory statistics for images.
Definition at line 1571 of file source/blender/blenkernel/intern/image.cc.
References ListBase::first, Image::id, image_mem_size(), Main::images, ID::name, ID::next, printf, and size().
Definition at line 3469 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_is_multiview(), BKE_image_partial_update_mark_full_update(), BLI_listbase_count(), GPU_texture_free(), Image::gputexture, i, IMA_SRC_TILED, IMA_UDIM_MAX, image_assign_ibuf(), image_get_cached_ibuf_for_index_entry(), image_remove_ibuf(), IMB_freeImBuf(), Image::source, TEXTARGET_2D_ARRAY, TEXTARGET_TILE_MAPPING, tile, and Image::views.
Definition at line 4822 of file source/blender/blenkernel/intern/image.cc.
References BLI_thread_unlock(), IMB_freeImBuf(), lock, LOCK_VIEWER, RE_ReleaseResultImage(), and Image::runtime.
Referenced by blender::io::fbx::add_image_texture(), blender::bke::pbvh::pixels::apply_watertight_check(), blender::ed::space_node::backimage_fit_exec(), blender::ed::object::bake_object_check(), blender::ed::object::bake_targets_init_internal(), BKE_image_fill_tile(), BKE_image_get_float_pixels_for_frame(), BKE_image_get_pixels_for_frame(), BKE_image_get_size(), BKE_image_has_alpha(), BKE_image_pool_release_ibuf(), BKE_image_preview(), BKE_image_save_options_init(), BKE_image_scale(), BKE_image_update_gputexture(), BKE_paint_canvas_key_get(), blender::compositor::CachedImage::CachedImage(), blender::ed::object::clear_single_image(), cmp_node_image_create_outputs(), colorfn(), blender::nodes::node_composite_cryptomatte_cc::CryptoMatteOperation::compute_image_domain(), blender::bke::pbvh::pixels::copy_pixels(), blender::bke::pbvh::pixels::copy_update(), cryptomatte_init_from_node_image(), blender::bke::pbvh::pixels::do_encode_pixels(), blender::ed::sculpt_paint::paint::image::do_paint_pixels(), blender::ed::sculpt_paint::paint::image::do_push_undo_tile(), blender::ed::space_node::draw_nodespace_back_pix(), draw_plane_marker_image(), ED_image_undo_push_begin_with_image_all_udims(), ED_space_image_acquire_buffer(), ED_space_image_release_buffer(), ED_space_node_color_sample(), ED_space_node_get_position(), blender::io::usd::export_in_memory_texture(), eyedropper_cryptomatte_sample_image_fl(), blender::bke::image::partial_update::ImageTileData::free_data(), blender::io::usd::get_in_memory_texture_filename(), blender::nodes::node_composite_cryptomatte_cc::CryptoMatteOperation::get_layers_from_image(), gpu_texture_create_tile_array(), icon_preview_startjob(), image_clipboard_copy_exec(), image_file_format_writable(), image_flip_exec(), image_from_context_has_data_poll(), image_get_gpu_texture(), image_invert_exec(), image_rect_update(), blender::ed::greasepencil::image_render::image_render_end(), image_rotate_orthogonal_exec(), image_save_single(), image_scale_exec(), image_scale_invoke(), image_undosys_step_encode(), blender::nodes::node_geo_image_texture_cc::ImageFieldsFunction::ImageFieldsFunction(), BlenderImageLoader::load_metadata(), BlenderImageLoader::load_pixels(), blender::bke::pbvh::pixels::mark_image_dirty(), metadata_panel_context_draw(), blender::ed::object::multiresbake_check(), blender::nodes::node_geo_image_info_cc::node_geo_exec(), paint_2d_bucket_fill(), paint_2d_canvas_free(), paint_2d_canvas_set(), paint_2d_ensure_tile_canvas(), paint_2d_gradient_fill(), paint_2d_new_stroke(), paint_2d_redraw(), paint_sample_color(), palette_extract_img_exec(), project_paint_end(), project_paint_PickColor(), project_paint_uvpixel_init(), project_paint_uvpixel_mask(), ptile_restore_runtime_map(), RE_bake_ibuf_clear(), blender::ed::greasepencil::ImageBufferAccessor::release(), blender::image_engine::SpaceNodeAccessor::release_buffer(), render_endjob(), blender::ed::space_node::sample_apply(), screen_opengl_render_apply(), blender::ed::space_node::snode_bg_viewmove_invoke(), blender::bke::image::partial_update::ImagePartialUpdateTest::TearDown(), tile_fill_init(), uhandle_restore_list(), uiTemplateImage(), uiTemplateImageInfo(), blender::bke::pbvh::pixels::update_pixels(), blender::ed::space_node::viewer_border_exec(), blender::render::Context::viewer_output_to_viewer_image(), blender::ed::space_node::WIDGETGROUP_node_corner_pin_refresh(), blender::ed::space_node::WIDGETGROUP_node_crop_refresh(), blender::ed::space_node::WIDGETGROUP_node_glare_refresh(), blender::ed::space_node::WIDGETGROUP_node_mask_refresh(), blender::ed::space_node::WIDGETGROUP_node_split_refresh(), blender::ed::space_node::WIDGETGROUP_node_transform_refresh(), blender::ed::object::write_internal_bake_pixels(), and blender::nodes::node_geo_image_texture_cc::ImageFieldsFunction::~ImageFieldsFunction().
| void BKE_image_release_renderresult | ( | Scene * | scene, |
| Image * | ima, | ||
| RenderResult * | render_result ) |
Definition at line 3834 of file source/blender/blenkernel/intern/image.cc.
References IMA_TYPE_R_RESULT, Image::last_render_slot, lock, RE_FreeRenderResult(), RE_GetSceneRender(), RE_ReleaseResult(), Image::render_slot, Image::rr, Image::runtime, and Image::type.
Referenced by blender::compositor::CachedImage::CachedImage(), draw_render_info(), blender::nodes::node_composite_cryptomatte_cc::CryptoMatteOperation::get_layers_from_image(), image_save_single(), ui_imageuser_layer_menu(), ui_imageuser_layer_menu_step(), ui_imageuser_pass_menu(), ui_imageuser_pass_menu_step(), ui_imageuser_view_menu_rr(), uiTemplateImage(), and uiTemplateImageLayers().
Definition at line 5610 of file source/blender/blenkernel/intern/image.cc.
References BLI_findindex(), BLI_findlink(), BLI_listbase_count(), BLI_remlink(), G, Image::last_render_slot, MEM_freeN(), RE_FreeRenderResult(), RE_GetSceneRender(), RE_SwapResult(), RenderSlot::render, Image::render_slot, Image::renderslots, and ImageUser::scene.
Referenced by image_remove_render_slot_exec().
Definition at line 3460 of file source/blender/blenkernel/intern/image.cc.
References IMA_SRC_TILED, image_remove_tile(), Image::source, and tile.
Referenced by add_udim_tiles(), BKE_image_signal(), and tile_remove_exec().
For a non-viewer single-buffer image (single frame file, or generated image) replace its image buffer with the given one. If an unsupported image type (multi-layer, image sequence, ...) the function will assert in the debug mode and will have an undefined behavior in the release mode.
Definition at line 1355 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_free_buffers, BKE_image_mark_dirty(), BLI_assert, ImBufFloatBuffer::data, ELEM, ImBuf::float_buffer, IMA_GEN_FLOAT, IMA_NO_INDEX, IMA_SRC_FILE, IMA_SRC_GENERATED, IMA_TYPE_IMAGE, image_assign_ibuf(), image_colorspace_from_imbuf(), Image::source, Image::type, ImBuf::x, and ImBuf::y.
Referenced by BKE_image_add_from_imbuf(), and update_image_from_plane_marker_exec().
Scale the image.
Definition at line 782 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_acquire_ibuf(), BKE_image_mark_dirty(), BKE_image_release_ibuf(), Box, IMB_scale(), and lock.
Referenced by blender::io::usd::process_usdz_textures().
| int BKE_image_sequence_guess_offset | ( | Image * | image | ) |
Guess offset for the first frame in the sequence.
Definition at line 5354 of file source/blender/blenkernel/intern/image.cc.
References BLI_path_sequence_decode(), and Image::filepath.
Referenced by BKE_image_find_nearest_tile_with_offset(), cmp_node_image_create_outputs(), and cryptomatte_init_from_node_image().
| void BKE_image_set_filepath_from_tile_number | ( | char * | filepath, |
| const char * | pattern, | ||
| eUDIM_TILE_FORMAT | tile_format, | ||
| int | tile_number ) |
Definition at line 3670 of file source/blender/blenkernel/intern/image.cc.
References BLI_snprintf(), FILE_MAX, UDIM_TILE_FORMAT_UDIM, UDIM_TILE_FORMAT_UVTILE, and v.
Referenced by BKE_image_save(), BKE_image_signal(), BKE_image_user_file_path_ex(), blender::io::usd::copy_tiled_textures(), blender::io::usd::export_in_memory_texture(), image_foreach_path(), and blender::bke::tests::TEST().
Definition at line 3095 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_add_tile(), BKE_image_ensure_tile_token(), BKE_image_free_buffers, BKE_image_get_tile, BKE_image_get_tile_info(), BKE_image_get_tile_strformat(), BKE_image_has_packedfile(), BKE_image_init_imageuser(), BKE_image_is_filename_tokenized(), BKE_image_packfiles(), BKE_image_partial_update_mark_full_update(), BKE_image_remove_tile(), BKE_image_set_filepath_from_tile_number(), BKE_image_walk_all_users(), BKE_ntree_update(), BKE_ntree_update_tag_id_changed(), BKE_packedfile_free(), BKE_packedfile_new(), BLI_freelistN(), BLI_listbase_count(), BLI_listbase_count_is_equal_to(), BLI_path_abs(), BLI_path_is_rel(), BLI_path_rel(), ELEM, FILE_MAX, Image::filepath, ImageTile::gen_flag, ImageTile::gen_x, ImageTile::gen_y, Image::id, ID_BLEND_PATH, ID_BLEND_PATH_FROM_GLOBAL, IMA_GEN_TILE, IMA_NO_INDEX, IMA_SIGNAL_COLORMANAGE, IMA_SIGNAL_FREE, IMA_SIGNAL_RELOAD, IMA_SIGNAL_SRC_CHANGE, IMA_SIGNAL_USER_NEW_IMAGE, IMA_SRC_FILE, IMA_SRC_GENERATED, IMA_SRC_SEQUENCE, IMA_SRC_TILED, IMA_TYPE_IMAGE, IMA_TYPE_MULTILAYER, IMA_TYPE_UV_TEST, image_free_packedfiles(), image_get_cached_ibuf_for_index_entry(), image_num_viewfiles(), image_remove_all_tiles(), image_tag_frame_recalc(), image_tag_reload(), image_update_views_format(), IMB_freeImBuf(), LISTBASE_FOREACH, MEM_freeN(), Image::packedfiles, pf, POINTER_AS_INT, printf, result, Image::runtime, ImageUser::scene, Image::source, STRNCPY(), ImageTile::tile_number, Image::tiles, Image::type, ImBuf::x, and ImBuf::y.
Referenced by BKE_image_save(), BKE_packedfile_unpack_image(), ED_space_image_auto_set(), ED_space_image_set(), image_clipboard_paste_exec(), image_foreach_path(), image_new_exec(), image_open_exec(), image_reload_exec(), image_replace_exec(), blender::ed::space_node::node_add_image_exec(), blender::render::Context::output_to_render_result(), proj_paint_add_slot(), screen_opengl_render_init(), screen_render_exec(), screen_render_invoke(), and wm_set_working_color_space_exec().
| void BKE_image_sort_tiles | ( | Image * | ima | ) |
Definition at line 3519 of file source/blender/blenkernel/intern/image.cc.
References BLI_listbase_sort(), IMA_SRC_TILED, Image::source, tile_sort_cb(), and Image::tiles.
Referenced by gpu_texture_create_tile_mapping(), and tile_add_exec().
| void BKE_image_stamp_buf | ( | Scene * | scene, |
| Object * | camera, | ||
| const StampData * | stamp_data_template, | ||
| ImBuf * | ibuf ) |
Definition at line 2005 of file source/blender/blenkernel/intern/image.cc.
References RenderData::bg_stamp, BLF_buffer(), BLF_buffer_col(), BLF_descender(), BLF_disable(), BLF_draw_buffer(), BLF_enable(), BLF_height_max(), blf_mono_font_render, BLF_position(), BLF_size(), BLF_width_max(), BLF_WORD_WRAP, BLF_wordwrap(), BUFF_MARGIN_X, BUFF_MARGIN_Y, ImBuf::byte_buffer, StampData::camera, StampData::cameralens, ImBufByteBuffer::colorspace, ImBufByteBuffer::data, ImBufFloatBuffer::data, StampData::date, RenderData::fg_stamp, StampData::file, ImBuf::float_buffer, StampData::frame, StampData::frame_range, StampData::hostname, IMB_colormanagement_srgb_to_scene_linear_v3(), IMB_rectfill_area(), StampData::marker, StampData::memory, StampData::note, pad, Scene::r, R_STAMP_HIDE_LABELS, StampData::rendertime, StampData::scene, RenderData::stamp, RenderData::stamp_font_id, stampdata(), stampdata_from_template(), StampData::strip, TEXT_SIZE_CHECK, TEXT_SIZE_CHECK_WORD_WRAP, StampData::time, w(), wrap(), ImBuf::x, x, ImBuf::y, and y.
Referenced by renderresult_stampinfo(), and screen_opengl_render_doit().
| void BKE_image_tag_time | ( | Image * | ima | ) |
Definition at line 1537 of file source/blender/blenkernel/intern/image.cc.
References BLI_time_now_seconds_i(), and Image::lastused.
Referenced by image_acquire_ibuf(), image_get_gpu_texture(), image_init_after_load(), and multitex().
| bool BKE_image_tile_filepath_exists | ( | const char * | filepath | ) |
When provided with an absolute virtual filepath, check to see if at least one concrete file exists. NOTE: This function requires directory traversal and may be inefficient in time-critical, or iterative, code paths.
Definition at line 3587 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_get_tile_number_from_filepath(), BKE_image_get_tile_strformat(), BLI_assert, BLI_filelist_dir_contents(), BLI_filelist_free(), BLI_path_is_rel(), BLI_path_split_dir_part(), dirname(), FILE_MAXDIR, i, IMA_UDIM_MAX, and MEM_SAFE_FREE.
Referenced by BKE_image_load_in_lib().
Partial update of texture for texture painting. This is often much quicker than fully updating the texture for high resolution images.
Definition at line 913 of file image_gpu.cc.
References BKE_image_acquire_ibuf(), BKE_image_get_tile_from_iuser, BKE_image_release_ibuf(), BKE_image_update_gputexture_delayed(), w(), x, and y.
Referenced by imapaint_image_update().
| void BKE_image_update_gputexture_delayed | ( | Image * | ima, |
| ImageTile * | image_tile, | ||
| ImBuf * | ibuf, | ||
| int | x, | ||
| int | y, | ||
| int | w, | ||
| int | h ) |
Mark areas on the blender::gpu::Texture that needs to be updated. The areas are marked in chunks. The next time the blender::gpu::Texture is used these tiles will be refreshes. This saves time when writing to the same place multiple times This happens for during foreground rendering.
Definition at line 921 of file image_gpu.cc.
References BKE_image_partial_update_mark_full_update(), BKE_image_partial_update_mark_region(), BLI_rcti_init(), IMA_SRC_TILED, Image::source, w(), ImBuf::x, x, ImBuf::y, and y.
Referenced by BKE_image_update_gputexture(), and image_rect_update().
Definition at line 5182 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_user_file_path_ex(), and G_MAIN.
Referenced by BKE_image_memorypack(), BKE_image_packfiles(), image_file_browse_invoke(), image_init_color_management(), load_image_single(), and load_movie_single().
| void BKE_image_user_file_path_ex | ( | const Main * | bmain, |
| const ImageUser * | iuser, | ||
| const Image * | ima, | ||
| char * | filepath, | ||
| const bool | resolve_udim, | ||
| const bool | resolve_multiview ) |
Definition at line 5187 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_get_tile_strformat(), BKE_image_is_multiview(), BKE_image_set_filepath_from_tile_number(), BLI_findlink(), BLI_path_abs(), BLI_path_sequence_decode(), BLI_path_sequence_encode(), BLI_strncpy(), ELEM, FILE_MAX, Image::filepath, ImageView::filepath, ImageUser::framenr, Image::id, ID_BLEND_PATH, IMA_SRC_SEQUENCE, IMA_SRC_TILED, image_get_tile_number_from_iuser(), Image::lastframe, MEM_SAFE_FREE, Image::source, ImageUser::view, and Image::views.
Referenced by BKE_image_save_options_init(), BKE_image_user_file_path(), blender::io::hydra::cache_or_get_image_file(), and image_user_file_path().
Called on frame change or before render.
Definition at line 5073 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_is_animated(), BKE_image_partial_update_mark_full_update(), BKE_image_user_frame_get(), ImageUser::flag, ImageUser::framenr, Image::gpuframenr, IMA_NEED_FRAME_RECALC, IMA_USER_FRAME_IN_RANGE, and IMAGE_GPU_FRAME_NONE.
Referenced by eyedropper_cryptomatte_sample_image_fl(), blender::compositor::CachedImageContainer::get(), blender::nodes::node_composite_cryptomatte_cc::CryptoMatteOperation::get_image_user(), image_editors_update_frame(), image_match_len_exec(), image_refresh(), image_user_file_path(), image_user_frame_number(), image_user_id_eval_animation(), load_image_single(), MOD_init_texture(), and uiTemplateImage().
| int BKE_image_user_frame_get | ( | const ImageUser * | iuser, |
| int | cfra, | ||
| bool * | r_is_in_range ) |
Definition at line 5011 of file source/blender/blenkernel/intern/image.cc.
References ImageUser::cycl, ImageUser::frames, len, ImageUser::offset, and ImageUser::sfra.
Referenced by BKE_image_user_frame_calc(), blender::ed::space_node::node_buts_image_user(), and uiTemplateImageInfo().
| void BKE_image_user_id_eval_animation | ( | Depsgraph * | depsgraph, |
| ID * | id ) |
Definition at line 5171 of file source/blender/blenkernel/intern/image.cc.
References depsgraph, image_user_id_eval_animation(), and image_walk_id_all_users().
Referenced by blender::deg::DepsgraphNodeBuilder::build_animation_images().
| bool BKE_image_user_id_has_animation | ( | ID * | id | ) |
Dependency graph update for image user users.
Definition at line 5143 of file source/blender/blenkernel/intern/image.cc.
References image_user_id_has_animation(), and image_walk_id_all_users().
Referenced by blender::deg::DepsgraphNodeBuilder::build_animation_images(), blender::deg::DepsgraphRelationBuilder::build_animation_images(), and blender::deg::DepsgraphRelationBuilder::build_texture().
| void BKE_image_walk_all_users | ( | const Main * | mainp, |
| void * | customdata, | ||
| void | callbackImage *ima, ID *iuser_id, ImageUser *iuser, void *customdata ) |
Definition at line 2935 of file source/blender/blenkernel/intern/image.cc.
References Main::cameras, ListBase::first, bNodeTree::id, image_walk_id_all_users(), Main::materials, ID::next, Main::nodetrees, Main::objects, Main::scenes, Main::textures, and Main::wm.
Referenced by BKE_image_signal().
| void BKE_imageuser_default | ( | ImageUser * | iuser | ) |
For reload, refresh, pack.
Definition at line 3025 of file source/blender/blenkernel/intern/image.cc.
References ImageUser::frames, and ImageUser::sfra.
Referenced by blender::ed::object::bake_object_check(), blender::ed::object::bake_targets_init_internal(), BKE_image_get_float_pixels_for_frame(), BKE_image_get_pixels_for_frame(), BKE_image_memorypack(), BKE_image_packfiles(), BKE_image_save(), BKE_image_save_options_init(), blender::ed::object::clear_single_image(), gpu_texture_create_tile_array(), icon_preview_startjob(), image_create(), image_save_single(), image_user_from_context_and_active_tile(), blender::ed::object::multiresbake_check(), blender::nodes::node_geo_image_info_cc::node_geo_exec(), blender::nodes::node_geo_image_texture_cc::node_geo_exec(), blender::nodes::node_shader_tex_environment_cc::node_shader_init_tex_environment(), blender::nodes::node_shader_tex_image_cc::node_shader_init_tex_image(), paint_2d_bucket_fill(), paint_sample_color(), project_paint_PickColor(), project_paint_prepare_all_faces(), pygpu_texture_from_image(), texture_init_data(), tile_fill_init(), and blender::ed::object::write_internal_bake_pixels().
| bool BKE_imbuf_alpha_test | ( | ImBuf * | ibuf | ) |
Definition at line 2540 of file source/blender/blenkernel/intern/image.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, and IMB_get_pixel_count().
Referenced by image_save_single().
| void BKE_imbuf_stamp_info | ( | const RenderResult * | rr, |
| ImBuf * | ibuf ) |
Definition at line 2512 of file source/blender/blenkernel/intern/image.cc.
References BKE_stamp_info_callback(), IMB_metadata_ensure(), ImBuf::metadata, metadata_set_field(), and RenderResult::stamp_data.
Referenced by BKE_imbuf_write_stamp(), image_get_ibuf_multilayer(), image_load_sequence_multilayer(), image_save_single(), and renderresult_set_passes_metadata().
| bool BKE_imbuf_write | ( | ImBuf * | ibuf, |
| const char * | filepath, | ||
| const ImageFormatData * | imf ) |
Definition at line 2562 of file source/blender/blenkernel/intern/image.cc.
References BKE_image_format_to_imbuf(), BLI_file_ensure_parent_dir_exists(), CLOG_ERROR, IB_byte_data, IMB_save_image(), and LOG.
Referenced by BKE_imbuf_write_as(), BKE_imbuf_write_stamp(), image_render_write_stamp_test(), screenshot_exec(), and blender::ed::object::write_external_bake_pixels().
| bool BKE_imbuf_write_as | ( | ImBuf * | ibuf, |
| const char * | filepath, | ||
| const ImageFormatData * | imf, | ||
| bool | save_copy ) |
Same as BKE_imbuf_write() but crappy workaround not to permanently modify some, values in the imbuf.
Definition at line 2579 of file source/blender/blenkernel/intern/image.cc.
References BKE_imbuf_write(), ImBuf::foptions, ImBuf::ftype, ImageFormatData::planes, and ImBuf::planes.
Referenced by blender::io::usd::export_in_memory_imbuf(), and image_save_single().
| bool BKE_imbuf_write_stamp | ( | const Scene * | scene, |
| const RenderResult * | rr, | ||
| ImBuf * | ibuf, | ||
| const char * | filepath, | ||
| const ImageFormatData * | imf ) |
Definition at line 2602 of file source/blender/blenkernel/intern/image.cc.
References BKE_imbuf_stamp_info(), BKE_imbuf_write(), Scene::r, R_STAMP_ALL, and RenderData::stamp.
Referenced by image_render_write_stamp_test().
| void BKE_render_result_stamp_data | ( | RenderResult * | rr, |
| const char * | key, | ||
| const char * | value ) |
Definition at line 2450 of file source/blender/blenkernel/intern/image.cc.
References BLI_addtail(), BLI_strdup(), StampData::custom_fields, StampDataCustomField::key, MEM_callocN(), MEM_mallocN(), RenderResult::stamp_data, STRNCPY_UTF8, and StampDataCustomField::value.
Referenced by add_render_result_meta_data(), metadata_copy_custom_fields(), blender::compositor::FileOutput::save(), and blender::bke::cryptomatte::tests::TEST().
| void BKE_render_result_stamp_info | ( | Scene * | scene, |
| Object * | camera, | ||
| RenderResult * | rr, | ||
| bool | allocate_only ) |
Definition at line 2322 of file source/blender/blenkernel/intern/image.cc.
References MEM_callocN(), Scene::r, R_STAMP_ALL, RenderData::stamp, RenderResult::stamp_data, and stampdata().
Referenced by do_render_full_pipeline(), do_render_sequencer(), blender::compositor::FileOutput::save(), screen_opengl_render_write(), screen_opengl_views_setup(), and write_result().
Definition at line 2463 of file source/blender/blenkernel/intern/image.cc.
References BLI_duplicatelist(), StampData::custom_fields, LISTBASE_FOREACH, and MEM_dupallocN().
Referenced by RE_DuplicateRenderResult(), and render_result_uncrop().
| void BKE_stamp_data_free | ( | StampData * | stamp_data | ) |
Definition at line 2479 of file source/blender/blenkernel/intern/image.cc.
References BLI_freelistN(), StampData::custom_fields, LISTBASE_FOREACH, and MEM_freeN().
Referenced by render_result_free().
| void BKE_stamp_info_callback | ( | void * | data, |
| StampData * | stamp_data, | ||
| StampCallback | callback, | ||
| bool | noskip ) |
Definition at line 2395 of file source/blender/blenkernel/intern/image.cc.
References CALL, StampData::custom_fields, data, and LISTBASE_FOREACH.
Referenced by BKE_image_multilayer_stamp_info_callback(), BKE_imbuf_stamp_info(), BKE_stamp_info_from_imbuf(), CryptomatteSession::CryptomatteSession(), openexr_header_metadata_multi(), blender::render::Context::populate_meta_data_for_pass(), and blender::bke::cryptomatte::tests::TEST().
| void BKE_stamp_info_from_imbuf | ( | RenderResult * | rr, |
| ImBuf * | ibuf ) |
Definition at line 2528 of file source/blender/blenkernel/intern/image.cc.
References BKE_stamp_info_callback(), IMB_metadata_ensure(), IMB_metadata_foreach(), MEM_callocN(), ImBuf::metadata, metadata_copy_custom_fields(), metadata_get_field(), and RenderResult::stamp_data.
Referenced by do_render_sequencer().
Fills in the static stamp data (i.e. everything except things that can change per frame). The caller is responsible for freeing the allocated memory.
Definition at line 2349 of file source/blender/blenkernel/intern/image.cc.
References MEM_callocN(), Scene::r, R_STAMP_ALL, RenderData::stamp, and stampdata().
| bool BKE_stamp_is_known_field | ( | const char * | field_name | ) |
Check whether the given metadata field name translates to a known field of a stamp.
Definition at line 2383 of file source/blender/blenkernel/intern/image.cc.
References i, stamp_metadata_fields, and STREQ.
Referenced by metadata_copy_custom_fields(), and metadata_is_custom_drawable().
| MovieReader * openanim | ( | const char * | filepath, |
| int | ibuf_flags, | ||
| int | streamindex, | ||
| bool | keep_original_colorspace, | ||
| char | colorspace[IMA_MAX_SPACE] ) |
Used by sequencer too.
Definition at line 2627 of file source/blender/blenkernel/intern/image.cc.
References BLI_exists(), CLOG_INFO, IMA_MAX_SPACE, IMB_freeImBuf(), IMB_PROXY_NONE, IMB_TC_NONE, LOG, MOV_close(), MOV_decode_frame(), and MOV_open_file().
Referenced by blender::seq::add_movie_strip(), blender::seq::add_reload_new_file(), load_movie_single(), movieclip_open_anim_file(), blender::seq::open_anim_filepath(), blender::ed::vse::prefetch_data_fn(), blender::seq::seq_proxy_fetch(), and blender::seq::seq_render_movie_strip_custom_file_proxy().
| MovieReader * openanim_noload | ( | const char * | filepath, |
| int | flags, | ||
| int | streamindex, | ||
| bool | keep_original_colorspace, | ||
| char | colorspace[IMA_MAX_SPACE] ) |
Definition at line 2615 of file source/blender/blenkernel/intern/image.cc.
References IMA_MAX_SPACE, and MOV_open_file().
Referenced by blender::seq::open_anim_filepath().