|
Blender V4.5
|
#include "../gpu/GPU_texture.hh"#include "BLI_math_matrix_types.hh"#include "BLI_utildefines.h"#include "IMB_imbuf_types.hh"Go to the source code of this file.
Namespaces | |
| namespace | blender |
| namespace | blender::ocio |
Macros | |
| #define | FILTER_MASK_NULL 0 |
| #define | FILTER_MASK_MARGIN 1 |
| #define | FILTER_MASK_USED 2 |
Functions | |
| void | IMB_init () |
| void | IMB_exit () |
| ImBuf * | IMB_load_image_from_memory (const unsigned char *mem, const size_t size, const int flags, const char *descr, const char *filepath=nullptr, char r_colorspace[IM_MAX_SPACE]=nullptr) |
| ImBuf * | IMB_load_image_from_file_descriptor (const int file, const int flags, const char *filepath=nullptr, char r_colorspace[IM_MAX_SPACE]=nullptr) |
| ImBuf * | IMB_load_image_from_filepath (const char *filepath, const int flags, char r_colorspace[IM_MAX_SPACE]=nullptr) |
| bool | IMB_save_image (ImBuf *ibuf, const char *filepath, const int flags) |
| bool | IMB_test_image (const char *filepath) |
| bool | IMB_test_image_type_matches (const char *filepath, int filetype) |
| int | IMB_test_image_type_from_memory (const unsigned char *buf, size_t buf_size) |
| int | IMB_test_image_type (const char *filepath) |
| ENUM_OPERATORS (IMBThumbLoadFlags, IMBThumbLoadFlags::LoadLargeFiles) | |
| ImBuf * | IMB_thumb_load_image (const char *filepath, const size_t max_thumb_size, char colorspace[IM_MAX_SPACE], const IMBThumbLoadFlags load_flags=IMBThumbLoadFlags::Zero) |
| ImBuf * | IMB_allocImBuf (unsigned int x, unsigned int y, unsigned char planes, unsigned int flags) |
| void | IMB_freeImBuf (ImBuf *ibuf) |
| bool | IMB_initImBuf (ImBuf *ibuf, unsigned int x, unsigned int y, unsigned char planes, unsigned int flags) |
| ImBuf * | IMB_allocFromBufferOwn (uint8_t *byte_buffer, float *float_buffer, unsigned int w, unsigned int h, unsigned int channels) |
| ImBuf * | IMB_allocFromBuffer (const uint8_t *byte_buffer, const float *float_buffer, unsigned int w, unsigned int h, unsigned int channels) |
| void | IMB_assign_byte_buffer (ImBuf *ibuf, uint8_t *buffer_data, ImBufOwnership ownership) |
| void | IMB_assign_float_buffer (ImBuf *ibuf, float *buffer_data, ImBufOwnership ownership) |
| void | IMB_assign_byte_buffer (ImBuf *ibuf, const ImBufByteBuffer &buffer, ImBufOwnership ownership) |
| void | IMB_assign_float_buffer (ImBuf *ibuf, const ImBufFloatBuffer &buffer, ImBufOwnership ownership) |
| void | IMB_assign_dds_data (ImBuf *ibuf, const DDSData &data, ImBufOwnership ownership) |
| void | IMB_make_writable_byte_buffer (ImBuf *ibuf) |
| void | IMB_make_writable_float_buffer (ImBuf *ibuf) |
| uint8_t * | IMB_steal_byte_buffer (ImBuf *ibuf) |
| float * | IMB_steal_float_buffer (ImBuf *ibuf) |
| uint8_t * | IMB_steal_encoded_buffer (ImBuf *ibuf) |
| void | IMB_refImBuf (ImBuf *ibuf) |
| ImBuf * | IMB_makeSingleUser (ImBuf *ibuf) |
| ImBuf * | IMB_dupImBuf (const ImBuf *ibuf1) |
| size_t | IMB_get_size_in_memory (const ImBuf *ibuf) |
| size_t | IMB_get_pixel_count (const ImBuf *ibuf) |
| Get the length of the data of the given image buffer in pixels. | |
| void | IMB_blend_color_byte (unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4], IMB_BlendMode mode) |
| void | IMB_blend_color_float (float dst[4], const float src1[4], const float src2[4], IMB_BlendMode mode) |
| void | IMB_rect_crop (ImBuf *ibuf, const rcti *crop) |
| void | IMB_rect_size_set (ImBuf *ibuf, const uint size[2]) |
| void | IMB_rectclip (ImBuf *dbuf, const ImBuf *sbuf, int *destx, int *desty, int *srcx, int *srcy, int *width, int *height) |
| void | IMB_rectcpy (ImBuf *dbuf, const ImBuf *sbuf, int destx, int desty, int srcx, int srcy, int width, int height) |
| void | IMB_rectblend (ImBuf *dbuf, const ImBuf *obuf, const ImBuf *sbuf, unsigned short *dmask, const unsigned short *curvemask, const unsigned short *texmask, float mask_max, int destx, int desty, int origx, int origy, int srcx, int srcy, int width, int height, IMB_BlendMode mode, bool accumulate) |
| void | IMB_rectblend_threaded (ImBuf *dbuf, const ImBuf *obuf, const ImBuf *sbuf, unsigned short *dmask, const unsigned short *curvemask, const unsigned short *texmask, float mask_max, int destx, int desty, int origx, int origy, int srcx, int srcy, int width, int height, IMB_BlendMode mode, bool accumulate) |
| void | IMB_mask_filter_extend (char *mask, int width, int height) |
| void | IMB_mask_clear (ImBuf *ibuf, const char *mask, int val) |
| void | IMB_filter_extend (ImBuf *ibuf, char *mask, int filter) |
| void | IMB_makemipmap (ImBuf *ibuf, int use_filter) |
| void | IMB_remakemipmap (ImBuf *ibuf, int use_filter) |
| ImBuf * | IMB_getmipmap (ImBuf *ibuf, int level) |
| void | IMB_filtery (ImBuf *ibuf) |
| ImBuf * | IMB_onehalf (ImBuf *ibuf1) |
| bool | IMB_scale (ImBuf *ibuf, unsigned int newx, unsigned int newy, IMBScaleFilter filter, bool threaded=true) |
| ImBuf * | IMB_scale_into_new (const ImBuf *ibuf, unsigned int newx, unsigned int newy, IMBScaleFilter filter, bool threaded=true) |
| bool | IMB_alpha_affects_rgb (const ImBuf *ibuf) |
| void | IMB_byte_from_float (ImBuf *ibuf) |
| void | IMB_float_from_byte_ex (ImBuf *dst, const ImBuf *src, const rcti *region_to_update) |
| void | IMB_float_from_byte (ImBuf *ibuf) |
| void | IMB_color_to_bw (ImBuf *ibuf) |
| void | IMB_saturation (ImBuf *ibuf, float sat) |
| void | IMB_buffer_byte_from_float (unsigned char *rect_to, const float *rect_from, int channels_from, float dither, int profile_to, int profile_from, bool predivide, int width, int height, int stride_to, int stride_from, int start_y=0) |
| void | IMB_buffer_byte_from_float_mask (unsigned char *rect_to, const float *rect_from, int channels_from, float dither, bool predivide, int width, int height, int stride_to, int stride_from, char *mask) |
| void | IMB_buffer_float_from_byte (float *rect_to, const unsigned char *rect_from, int profile_to, int profile_from, bool predivide, int width, int height, int stride_to, int stride_from) |
| void | IMB_buffer_float_from_float (float *rect_to, const float *rect_from, int channels_from, int profile_to, int profile_from, bool predivide, int width, int height, int stride_to, int stride_from) |
| void | IMB_buffer_float_from_float_threaded (float *rect_to, const float *rect_from, int channels_from, int profile_to, int profile_from, bool predivide, int width, int height, int stride_to, int stride_from) |
| void | IMB_buffer_float_from_float_mask (float *rect_to, const float *rect_from, int channels_from, int width, int height, int stride_to, int stride_from, char *mask) |
| void | IMB_buffer_byte_from_byte (unsigned char *rect_to, const unsigned char *rect_from, int profile_to, int profile_from, bool predivide, int width, int height, int stride_to, int stride_from) |
| void | IMB_alpha_under_color_float (float *rect_float, int x, int y, float backcol[3]) |
| void | IMB_alpha_under_color_byte (unsigned char *rect, int x, int y, const float backcol[3]) |
| ImBuf * | IMB_half_x (ImBuf *ibuf1) |
| ImBuf * | IMB_half_y (ImBuf *ibuf1) |
| void | IMB_flipx (ImBuf *ibuf) |
| void | IMB_flipy (ImBuf *ibuf) |
| bool | IMB_rotate_orthogonal (ImBuf *ibuf, int degrees) |
| void | IMB_premultiply_alpha (ImBuf *ibuf) |
| void | IMB_unpremultiply_alpha (ImBuf *ibuf) |
| void | IMB_rectfill (ImBuf *drect, const float col[4]) |
| void | IMB_rectfill_area (ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2, const ColorManagedDisplay *display) |
| void | IMB_rectfill_area_replace (const ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2) |
| void | IMB_rectfill_alpha (ImBuf *ibuf, float value) |
| void | buf_rectfill_area (unsigned char *rect, float *rectf, int width, int height, const float col[4], const ColorManagedDisplay *display, int x1, int y1, int x2, int y2) |
| void * | imb_alloc_pixels (unsigned int x, unsigned int y, unsigned int channels, size_t typesize, bool initialize_pixels, const char *alloc_name) |
| bool | IMB_alloc_byte_pixels (ImBuf *ibuf, bool initialize_pixels=true) |
| void | IMB_free_byte_pixels (ImBuf *ibuf) |
| bool | IMB_alloc_float_pixels (ImBuf *ibuf, const unsigned int channels, bool initialize_pixels=true) |
| void | IMB_free_float_pixels (ImBuf *ibuf) |
| void | IMB_free_mipmaps (ImBuf *ibuf) |
| void | IMB_free_all_data (ImBuf *ibuf) |
| void | IMB_free_gpu_textures (ImBuf *ibuf) |
| void | IMB_transform (const ImBuf *src, ImBuf *dst, eIMBTransformMode mode, eIMBInterpolationFilterMode filter, const blender::float3x3 &transform_matrix, const rctf *src_crop) |
| Transform source image buffer onto destination image buffer using a transform matrix. | |
| GPUTexture * | IMB_create_gpu_texture (const char *name, ImBuf *ibuf, bool use_high_bitdepth, bool use_premult) |
| eGPUTextureFormat | IMB_gpu_get_texture_format (const ImBuf *ibuf, bool high_bitdepth, bool use_grayscale) |
| void | IMB_gpu_clamp_half_float (ImBuf *image_buffer) |
| GPUTexture * | IMB_touch_gpu_texture (const char *name, ImBuf *ibuf, int w, int h, int layers, bool use_high_bitdepth, bool use_grayscale) |
| void | IMB_update_gpu_texture_sub (GPUTexture *tex, ImBuf *ibuf, int x, int y, int z, int w, int h, bool use_high_bitdepth, bool use_grayscale, bool use_premult) |
| void | IMB_stereo3d_write_dimensions (char mode, bool is_squeezed, size_t width, size_t height, size_t *r_width, size_t *r_height) |
| void | IMB_stereo3d_read_dimensions (char mode, bool is_squeezed, size_t width, size_t height, size_t *r_width, size_t *r_height) |
| ImBuf * | IMB_stereo3d_ImBuf (const ImageFormatData *im_format, ImBuf *ibuf_left, ImBuf *ibuf_right) |
| void | IMB_ImBufFromStereo3d (const Stereo3dFormat *s3d, ImBuf *ibuf_stereo3d, ImBuf **r_ibuf_left, ImBuf **r_ibuf_right) |
| #define FILTER_MASK_MARGIN 1 |
Definition at line 296 of file IMB_imbuf.hh.
Referenced by IMB_filter_extend(), and IMB_mask_filter_extend().
| #define FILTER_MASK_NULL 0 |
Definition at line 295 of file IMB_imbuf.hh.
| #define FILTER_MASK_USED 2 |
Definition at line 297 of file IMB_imbuf.hh.
Referenced by bake_ibuf_normalize_displacement(), IMB_buffer_byte_from_float_mask(), IMB_buffer_float_from_float_mask(), RE_bake_mask_fill(), and set_rast_triangle().
| Enumerator | |
|---|---|
| IMB_FILTER_NEAREST | |
| IMB_FILTER_BILINEAR | |
| IMB_FILTER_CUBIC_BSPLINE | |
| IMB_FILTER_CUBIC_MITCHELL | |
| IMB_FILTER_BOX | |
Definition at line 287 of file IMB_imbuf.hh.
| enum eIMBTransformMode |
Transform modes to use for IMB_transform function.
These are not flags as the combination of cropping and repeat can lead to different expectation.
Definition at line 586 of file IMB_imbuf.hh.
| enum IMB_BlendMode |
Definition at line 185 of file IMB_imbuf.hh.
|
strong |
Interpolation filter used by IMB_scale.
| Enumerator | |
|---|---|
| Nearest | No filtering (point sampling). This is fastest but lowest quality. |
| Bilinear | Bilinear filter: each pixel in result image interpolates between 2x2 pixels of source image. |
| Box | Box filter. Behaves exactly like Bilinear when scaling up, better results when scaling down by more than 2x. |
Definition at line 323 of file IMB_imbuf.hh.
|
strong |
| Enumerator | |
|---|---|
| Zero | |
| LoadLargeFiles | Normally files larger than 100MB are not loaded for thumbnails, except when this flag is set. |
Definition at line 73 of file IMB_imbuf.hh.
| void buf_rectfill_area | ( | unsigned char * | rect, |
| float * | rectf, | ||
| int | width, | ||
| int | height, | ||
| const float | col[4], | ||
| const ColorManagedDisplay * | display, | ||
| int | x1, | ||
| int | y1, | ||
| int | x2, | ||
| int | y2 ) |
This should not be here, really, we needed it for operating on render data, IMB_rectfill_area calls it.
Definition at line 1058 of file rectop.cc.
References BLI_assert, CLAMP, col, copy_v4_v4(), fb(), i, IMB_colormanagement_display_to_scene_linear_v3(), srgb_to_linearrgb_v4(), and unit_float_to_uchar_clamp().
Referenced by BKE_image_stamp_buf(), and IMB_rectfill_area().
| ENUM_OPERATORS | ( | IMBThumbLoadFlags | , |
| IMBThumbLoadFlags::LoadLargeFiles | ) |
References data, IM_MAX_SPACE, LoadLargeFiles, w(), x, y, and Zero.
Allocate storage for byte type pixels. If the image already contains byte data storage, it is freed first.
Definition at line 381 of file allocimbuf.cc.
References ImBuf::byte_buffer, ImBuf::flags, IB_byte_data, imb_alloc_buffer(), imb_free_buffer(), ImBuf::x, and ImBuf::y.
Referenced by colormanagement_imbuf_make_display_space(), IMB_byte_from_float(), IMB_ImBufFromStereo3d(), IMB_initImBuf(), imb_loadwebp(), imb_onehalf_no_alloc(), IMB_stereo3d_ImBuf(), blender::bke::node_preview_verify(), and ubuf_ensure_compat_ibuf().
| bool IMB_alloc_float_pixels | ( | ImBuf * | ibuf, |
| const unsigned int | channels, | ||
| bool | initialize_pixels = true ) |
Allocate storage for float type pixels. If the image already contains float data storage, it is freed first.
Definition at line 356 of file allocimbuf.cc.
References ImBuf::channels, ImBufFloatBuffer::data, ImBuf::flags, ImBuf::float_buffer, IB_float_data, imb_alloc_buffer(), IMB_free_float_pixels(), ImBuf::x, and ImBuf::y.
Referenced by IMB_dupImBuf(), IMB_ImBufFromStereo3d(), IMB_initImBuf(), imb_load_openexr(), IMB_stereo3d_ImBuf(), blender::seq::seq_imbuf_to_sequencer_space(), seq_process_render_image(), ubuf_ensure_compat_ibuf(), and blender::render::Context::viewer_output_to_viewer_image().
| void * imb_alloc_pixels | ( | unsigned int | x, |
| unsigned int | y, | ||
| unsigned int | channels, | ||
| size_t | typesize, | ||
| bool | initialize_pixels, | ||
| const char * | alloc_name ) |
Exported for image tools in blender, to quickly allocate 32 bits rect.
Definition at line 343 of file allocimbuf.cc.
References MEM_callocN(), MEM_mallocN(), size(), SIZE_MAX, x, and y.
Referenced by convertRGBAToLogElement(), imb_alloc_buffer(), logImageGetDataRGBA(), and logImageSetDataRGBA().
| ImBuf * IMB_allocFromBuffer | ( | const uint8_t * | byte_buffer, |
| const float * | float_buffer, | ||
| unsigned int | w, | ||
| unsigned int | h, | ||
| unsigned int | channels ) |
Create a copy of a pixel buffer and wrap it to a new ImBuf
Definition at line 518 of file allocimbuf.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, imb_alloc_buffer(), IMB_allocImBuf(), and w().
Referenced by BKE_main_thumbnail_to_imbuf(), imb_gpu_get_data(), imb_load_filepath_thumbnail_openexr(), GHOST_SystemWayland::putClipboardImage(), putClipboardImagePNG(), studiolight_load_equirect_image(), UI_svg_icon_bitmap(), update_do_scale(), and WM_clipboard_image_get().
| ImBuf * IMB_allocFromBufferOwn | ( | uint8_t * | byte_buffer, |
| float * | float_buffer, | ||
| unsigned int | w, | ||
| unsigned int | h, | ||
| unsigned int | channels ) |
Create a copy of a pixel buffer and wrap it to a new ImBuf (transferring ownership to the in imbuf).
Definition at line 492 of file allocimbuf.cc.
References BLI_assert, ImBuf::channels, IB_TAKE_OWNERSHIP, IMB_allocImBuf(), IMB_assign_byte_buffer(), IMB_assign_float_buffer(), MEM_allocN_len, and w().
Referenced by blend_file_thumb_from_screenshot(), and studiolight_load_equirect_image().
Definition at line 550 of file allocimbuf.cc.
References IMB_freeImBuf(), IMB_initImBuf(), MEM_callocN(), x, and y.
Referenced by accessor_get_ibuf(), add_ibuf_for_tile(), blender::compositor::FileOutput::add_pass(), blender::compositor::FileOutput::add_view(), BKE_icon_geom_rasterize(), BKE_previewimg_to_imbuf(), BKE_tracking_get_plane_imbuf(), BKE_tracking_get_search_imbuf(), BKE_tracking_sample_pattern(), BKE_tracking_stabilize_frame(), brush_painter_imbuf_new(), brush_painter_imbuf_partial_update(), blender::io::usd::cache_image_color(), blender::image_engine::FloatBufferCache::cached_float_buffer(), colormanage_cache_put(), blender::compositor::compute_linear_buffer(), blender::imbuf::tests::create_6x2_test_image(), blender::imbuf::tests::create_6x2_test_image_fl(), blender::seq::create_missing_media_image(), create_src_image(), dynamicPaint_outputSurfaceImage(), ED_view3d_draw_offscreen_imbuf(), float_image_to_ibuf(), ibJpegImageFromCinfo(), image_acquire_ibuf(), image_get_render_result(), blender::ed::greasepencil::image_render::image_render_end(), IMB_allocFromBuffer(), IMB_allocFromBufferOwn(), IMB_dupImBuf(), IMB_font_preview(), IMB_half_x(), IMB_half_y(), IMB_ImBufFromStereo3d(), imb_load_dpx_cineon(), imb_load_filepath_thumbnail_openexr(), imb_load_filepath_thumbnail_svg(), imb_load_filepath_thumbnail_webp(), imb_load_jp2_stream(), imb_load_openexr(), imb_loadiris(), imb_loadwebp(), IMB_makemipmap(), IMB_onehalf(), IMB_remakemipmap(), IMB_scale_into_new(), imb_scale_via_transform(), IMB_stereo3d_ImBuf(), IMB_thumb_load_font(), imbuf_alloc_temp_tile(), blender::seq::input_preprocess(), blender::imbuf::load_pixels(), Freestyle::Canvas::loadMap(), M_imbuf_new(), make_grayscale_ibuf_copy(), blender::ed::vse::make_sep_waveform_view_from_ibuf(), blender::ed::vse::make_vectorscope_view_from_ibuf(), blender::ed::vse::make_waveform_view_from_ibuf(), blender::ed::vse::make_zebra_view_from_ibuf(), blender::bke::node_preview_verify(), NSImageToImBuf(), paint_2d_lift_clone(), blender::seq::prepare_effect_imbufs(), RE_layer_load_from_file(), RE_render_result_rect_to_ibuf(), RE_RenderPassEnsureImBuf(), RE_RenderViewEnsureImBuf(), render_layer_allocate_pass(), Freestyle::SteerableViewMap::saveSteerableViewMap(), screen_opengl_render_doit(), screenshot_exec(), seq_process_render_image(), blender::seq::seq_render_effect_strip_impl(), blender::seq::seq_render_mask(), blender::seq::seq_render_scene_strip(), blender::seq::seq_render_strip(), blender::seq::seq_render_strip_stack(), blender::ed::asset::take_screenshot_crop(), blender::imbuf::tests::TEST(), thumb_create_ex(), blender::imbuf::tests::transform_2x_smaller(), blender::imbuf::tests::transform_fractional_larger(), ui_tooltip_data_from_button_or_extra_icon(), and blender::ed::object::write_external_bake_pixels().
| bool IMB_alpha_affects_rgb | ( | const ImBuf * | ibuf | ) |
Test if color-space conversions of pixels in buffer need to take into account alpha.
Definition at line 65 of file conversion.cc.
References ImBuf::flags, and IB_alphamode_channel_packed.
Referenced by colormanage_imbuf_make_linear(), display_buffer_init_handle(), blender::image_engine::SpaceImageAccessor::get_shader_parameters(), blender::image_engine::SpaceNodeAccessor::get_shader_parameters(), IMB_byte_from_float(), IMB_colormanagement_imbuf_to_byte_texture(), IMB_colormanagement_imbuf_to_float_texture(), and IMB_float_from_byte_ex().
| void IMB_alpha_under_color_byte | ( | unsigned char * | rect, |
| int | x, | ||
| int | y, | ||
| const float | backcol[3] ) |
Definition at line 34 of file imageprocess.cc.
References IndexRange::first(), i, mul(), blender::threading::parallel_for(), x, and y.
Referenced by IMB_colormanagement_imbuf_for_write().
| void IMB_alpha_under_color_float | ( | float * | rect_float, |
| int | x, | ||
| int | y, | ||
| float | backcol[3] ) |
Definition at line 20 of file imageprocess.cc.
References IndexRange::first(), i, madd_v3_v3fl(), mul(), blender::threading::parallel_for(), x, and y.
Referenced by IMB_colormanagement_imbuf_for_write().
| void IMB_assign_byte_buffer | ( | ImBuf * | ibuf, |
| const ImBufByteBuffer & | buffer, | ||
| ImBufOwnership | ownership ) |
Assign the content and the color space of the corresponding buffer the data from the given buffer.
Definition at line 466 of file allocimbuf.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::colorspace, ImBufByteBuffer::data, and IMB_assign_byte_buffer().
| void IMB_assign_byte_buffer | ( | ImBuf * | ibuf, |
| uint8_t * | buffer_data, | ||
| ImBufOwnership | ownership ) |
Assign the content of the corresponding buffer with the given data and ownership. The current content of the buffer is released corresponding to its ownership configuration.
Definition at line 440 of file allocimbuf.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBuf::flags, IB_byte_data, imb_free_buffer(), and ImBufByteBuffer::ownership.
Referenced by colormanage_cache_put(), blender::compositor::compute_linear_buffer(), image_undo_steal_and_assign_byte_buffer(), IMB_allocFromBufferOwn(), IMB_assign_byte_buffer(), IMB_rotate_orthogonal(), IMB_scale_into_new(), paint_2d_do_making_brush(), RE_render_result_rect_from_ibuf(), RE_render_result_rect_to_ibuf(), render_result_rect_fill_zero(), scale_with_function(), screenshot_exec(), and blender::ed::asset::take_screenshot_crop().
| void IMB_assign_dds_data | ( | ImBuf * | ibuf, |
| const DDSData & | data, | ||
| ImBufOwnership | ownership ) |
Definition at line 482 of file allocimbuf.cc.
References BLI_assert, data, ImBuf::dds_data, ImBuf::ftype, imb_free_dds_buffer(), IMB_FTYPE_DDS, and DDSData::ownership.
Referenced by blender::compositor::compute_linear_buffer().
| void IMB_assign_float_buffer | ( | ImBuf * | ibuf, |
| const ImBufFloatBuffer & | buffer, | ||
| ImBufOwnership | ownership ) |
Definition at line 474 of file allocimbuf.cc.
References ImBufFloatBuffer::colorspace, ImBufFloatBuffer::data, ImBuf::float_buffer, and IMB_assign_float_buffer().
| void IMB_assign_float_buffer | ( | ImBuf * | ibuf, |
| float * | buffer_data, | ||
| ImBufOwnership | ownership ) |
Definition at line 453 of file allocimbuf.cc.
References ImBufFloatBuffer::data, ImBuf::flags, ImBuf::float_buffer, IB_float_data, imb_free_buffer(), and ImBufFloatBuffer::ownership.
Referenced by blender::compositor::FileOutput::add_pass(), blender::compositor::FileOutput::add_view(), BKE_brush_gen_radial_control_imbuf(), BKE_movieclip_convert_multilayer_ibuf(), blender::image_engine::FloatBufferCache::cached_float_buffer(), blender::compositor::compute_linear_buffer(), blender::seq::convert_multilayer_ibuf(), float_image_to_ibuf(), image_undo_steal_and_assign_float_buffer(), IMB_allocFromBufferOwn(), IMB_assign_float_buffer(), IMB_float_from_byte(), IMB_rotate_orthogonal(), IMB_scale_into_new(), make_grayscale_ibuf_copy(), blender::render::Context::output_to_render_result(), paint_2d_do_making_brush(), RE_pass_set_buffer_data(), RE_render_result_rect_from_ibuf(), RE_render_result_rect_to_ibuf(), render_layer_allocate_pass(), scale_with_function(), and shader_preview_texture().
| void IMB_blend_color_byte | ( | unsigned char | dst[4], |
| const unsigned char | src1[4], | ||
| const unsigned char | src2[4], | ||
| IMB_BlendMode | mode ) |
Definition at line 29 of file rectop.cc.
References blend_color_add_alpha_byte(), blend_color_add_byte(), blend_color_burn_byte(), blend_color_color_byte(), blend_color_darken_byte(), blend_color_difference_byte(), blend_color_dodge_byte(), blend_color_erase_alpha_byte(), blend_color_exclusion_byte(), blend_color_hardlight_byte(), blend_color_hue_byte(), blend_color_lighten_byte(), blend_color_linearburn_byte(), blend_color_linearlight_byte(), blend_color_luminosity_byte(), blend_color_mix_byte(), blend_color_mul_byte(), blend_color_overlay_byte(), blend_color_pinlight_byte(), blend_color_saturation_byte(), blend_color_screen_byte(), blend_color_softlight_byte(), blend_color_sub_byte(), blend_color_vividlight_byte(), IMB_BLEND_ADD, IMB_BLEND_ADD_ALPHA, IMB_BLEND_COLOR, IMB_BLEND_COLORBURN, IMB_BLEND_COLORDODGE, IMB_BLEND_DARKEN, IMB_BLEND_DIFFERENCE, IMB_BLEND_ERASE_ALPHA, IMB_BLEND_EXCLUSION, IMB_BLEND_HARDLIGHT, IMB_BLEND_HUE, IMB_BLEND_LIGHTEN, IMB_BLEND_LINEARBURN, IMB_BLEND_LINEARLIGHT, IMB_BLEND_LUMINOSITY, IMB_BLEND_MIX, IMB_BLEND_MUL, IMB_BLEND_OVERLAY, IMB_BLEND_PINLIGHT, IMB_BLEND_SATURATION, IMB_BLEND_SCREEN, IMB_BLEND_SOFTLIGHT, IMB_BLEND_SUB, and IMB_BLEND_VIVIDLIGHT.
Referenced by do_projectpaint_clone(), do_projectpaint_draw(), do_projectpaint_mask(), do_projectpaint_thread(), paint_2d_bucket_fill(), and paint_2d_gradient_fill().
| void IMB_blend_color_float | ( | float | dst[4], |
| const float | src1[4], | ||
| const float | src2[4], | ||
| IMB_BlendMode | mode ) |
Definition at line 117 of file rectop.cc.
References blend_color_add_alpha_float(), blend_color_add_float(), blend_color_burn_float(), blend_color_color_float(), blend_color_darken_float(), blend_color_difference_float(), blend_color_dodge_float(), blend_color_erase_alpha_float(), blend_color_exclusion_float(), blend_color_hardlight_float(), blend_color_hue_float(), blend_color_lighten_float(), blend_color_linearburn_float(), blend_color_linearlight_float(), blend_color_luminosity_float(), blend_color_mix_float(), blend_color_mul_float(), blend_color_overlay_float(), blend_color_pinlight_float(), blend_color_saturation_float(), blend_color_screen_float(), blend_color_softlight_float(), blend_color_sub_float(), blend_color_vividlight_float(), IMB_BLEND_ADD, IMB_BLEND_ADD_ALPHA, IMB_BLEND_COLOR, IMB_BLEND_COLORBURN, IMB_BLEND_COLORDODGE, IMB_BLEND_DARKEN, IMB_BLEND_DIFFERENCE, IMB_BLEND_ERASE_ALPHA, IMB_BLEND_EXCLUSION, IMB_BLEND_HARDLIGHT, IMB_BLEND_HUE, IMB_BLEND_LIGHTEN, IMB_BLEND_LINEARBURN, IMB_BLEND_LINEARLIGHT, IMB_BLEND_LUMINOSITY, IMB_BLEND_MIX, IMB_BLEND_MUL, IMB_BLEND_OVERLAY, IMB_BLEND_PINLIGHT, IMB_BLEND_SATURATION, IMB_BLEND_SCREEN, IMB_BLEND_SOFTLIGHT, IMB_BLEND_SUB, and IMB_BLEND_VIVIDLIGHT.
Referenced by blender::ed::sculpt_paint::expand::colors_update_task(), blender::ed::sculpt_paint::color::do_paint_brush_task(), do_projectpaint_clone_f(), do_projectpaint_draw_f(), do_projectpaint_mask_f(), do_projectpaint_thread(), blender::ed::sculpt_paint::paint::image::PaintingKernel< ImageBuffer >::paint(), paint_2d_bucket_fill(), and paint_2d_gradient_fill().
| void IMB_buffer_byte_from_byte | ( | unsigned char * | rect_to, |
| const unsigned char * | rect_from, | ||
| int | profile_to, | ||
| int | profile_from, | ||
| bool | predivide, | ||
| int | width, | ||
| int | height, | ||
| int | stride_to, | ||
| int | stride_from ) |
Byte to byte pixels, input and output 4-channel RGBA.
Definition at line 535 of file conversion.cc.
References BLI_assert, IB_PROFILE_LINEAR_RGB, IB_PROFILE_NONE, IB_PROFILE_SRGB, linearrgb_to_srgb_predivide_v4(), linearrgb_to_srgb_v4(), rgba_float_to_uchar(), rgba_uchar_to_float(), srgb_to_linearrgb_predivide_v4(), srgb_to_linearrgb_v4(), x, and y.
Referenced by do_display_buffer_apply_no_processor().
| void IMB_buffer_byte_from_float | ( | unsigned char * | rect_to, |
| const float * | rect_from, | ||
| int | channels_from, | ||
| float | dither, | ||
| int | profile_to, | ||
| int | profile_from, | ||
| bool | predivide, | ||
| int | width, | ||
| int | height, | ||
| int | stride_to, | ||
| int | stride_from, | ||
| int | start_y = 0 ) |
Float to byte pixels, output 4-channel RGBA.
Definition at line 70 of file conversion.cc.
References BLI_assert, float_to_byte_dither_v4(), IB_PROFILE_LINEAR_RGB, IB_PROFILE_NONE, IB_PROFILE_SRGB, linearrgb_to_srgb_ushort4(), linearrgb_to_srgb_v3_v3(), premul_float_to_straight_uchar(), premul_to_straight_v4_v4(), rgb_float_to_uchar(), rgba_float_to_uchar(), srgb_to_linearrgb_predivide_v4(), srgb_to_linearrgb_v3_v3(), srgb_to_linearrgb_v4(), unit_float_to_uchar_clamp(), ushort_to_byte_dither_v4(), ushort_to_byte_v4(), x, and y.
Referenced by do_display_buffer_apply_no_processor(), do_display_buffer_apply_thread(), blender::seq::do_glow_effect_byte(), IMB_byte_from_float(), IMB_display_buffer_transform_apply(), partial_buffer_update_rect(), blender::ed::object::write_external_bake_pixels(), and blender::ed::object::write_internal_bake_pixels().
| void IMB_buffer_byte_from_float_mask | ( | unsigned char * | rect_to, |
| const float * | rect_from, | ||
| int | channels_from, | ||
| float | dither, | ||
| bool | predivide, | ||
| int | width, | ||
| int | height, | ||
| int | stride_to, | ||
| int | stride_from, | ||
| char * | mask ) |
Float to byte pixels, output 4-channel RGBA.
Definition at line 222 of file conversion.cc.
References FILTER_MASK_USED, float_to_byte_dither_v4(), mask(), premul_float_to_straight_uchar(), premul_to_straight_v4_v4(), rgb_float_to_uchar(), rgba_float_to_uchar(), unit_float_to_uchar_clamp(), x, and y.
Referenced by blender::ed::object::write_internal_bake_pixels().
| void IMB_buffer_float_from_byte | ( | float * | rect_to, |
| const unsigned char * | rect_from, | ||
| int | profile_to, | ||
| int | profile_from, | ||
| bool | predivide, | ||
| int | width, | ||
| int | height, | ||
| int | stride_to, | ||
| int | stride_from ) |
Byte to float pixels, input and output 4-channel RGBA.
Definition at line 298 of file conversion.cc.
References BLI_assert, IB_PROFILE_LINEAR_RGB, IB_PROFILE_NONE, IB_PROFILE_SRGB, linearrgb_to_srgb_predivide_v4(), linearrgb_to_srgb_v4(), rgba_uchar_to_float(), srgb_to_linearrgb_uchar4(), srgb_to_linearrgb_uchar4_predivide(), x, and y.
Referenced by do_display_buffer_apply_no_processor(), do_processor_transform_thread(), IMB_float_from_byte_ex(), and partial_buffer_update_rect().
| void IMB_buffer_float_from_float | ( | float * | rect_to, |
| const float * | rect_from, | ||
| int | channels_from, | ||
| int | profile_to, | ||
| int | profile_from, | ||
| bool | predivide, | ||
| int | width, | ||
| int | height, | ||
| int | stride_to, | ||
| int | stride_from ) |
Float to float pixels, output 4-channel RGBA.
Definition at line 357 of file conversion.cc.
References BLI_assert, copy_v3_v3(), IB_PROFILE_LINEAR_RGB, IB_PROFILE_NONE, IB_PROFILE_SRGB, linearrgb_to_srgb_predivide_v4(), linearrgb_to_srgb_v3_v3(), linearrgb_to_srgb_v4(), srgb_to_linearrgb_predivide_v4(), srgb_to_linearrgb_v3_v3(), srgb_to_linearrgb_v4(), x, and y.
Referenced by do_display_buffer_apply_no_processor(), IMB_buffer_float_from_float_threaded(), studiolight_multilayer_convert_pass(), blender::ed::object::write_external_bake_pixels(), and blender::ed::object::write_internal_bake_pixels().
| void IMB_buffer_float_from_float_mask | ( | float * | rect_to, |
| const float * | rect_from, | ||
| int | channels_from, | ||
| int | width, | ||
| int | height, | ||
| int | stride_to, | ||
| int | stride_from, | ||
| char * | mask ) |
Float to float pixels, output 4-channel RGBA.
Definition at line 482 of file conversion.cc.
References copy_v3_v3(), copy_v4_v4(), FILTER_MASK_USED, mask(), x, and y.
Referenced by blender::ed::object::write_internal_bake_pixels().
| void IMB_buffer_float_from_float_threaded | ( | float * | rect_to, |
| const float * | rect_from, | ||
| int | channels_from, | ||
| int | profile_to, | ||
| int | profile_from, | ||
| bool | predivide, | ||
| int | width, | ||
| int | height, | ||
| int | stride_to, | ||
| int | stride_from ) |
Definition at line 454 of file conversion.cc.
References IndexRange::first(), IMB_buffer_float_from_float(), blender::threading::parallel_for(), and IndexRange::size().
Referenced by BKE_image_buf_fill_checker_color(), and blender::seq::convert_multilayer_ibuf().
| void IMB_byte_from_float | ( | ImBuf * | ibuf | ) |
Create char buffer, color corrected if necessary, for ImBufs that lack one.
Definition at line 604 of file conversion.cc.
References ImBuf::byte_buffer, blender::StringRefNull::c_str(), ImBuf::channels, COLOR_ROLE_DEFAULT_BYTE, COLOR_ROLE_SCENE_LINEAR, ImBufByteBuffer::colorspace, ImBufFloatBuffer::colorspace, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::dither, ImBuf::float_buffer, IB_PROFILE_SRGB, IB_RECT_INVALID, IMB_alloc_byte_pixels(), IMB_alpha_affects_rgb(), IMB_buffer_byte_from_float(), IMB_colormanagement_role_colorspace_name_get(), IMB_colormanagement_transform_float(), IMB_unpremultiply_rect_float(), MEM_dupallocN(), MEM_freeN(), blender::ocio::ColorSpace::name(), ImBuf::userflags, ImBuf::x, and ImBuf::y.
Referenced by BKE_image_preview(), BKE_main_thumbnail_from_imbuf(), ED_view3d_draw_offscreen_imbuf(), icon_copy_rect(), image_flip_exec(), image_invert_exec(), blender::ed::greasepencil::image_render::image_render_end(), IMB_colormanagement_imbuf_for_write(), imb_load_hdr(), imb_load_jp2_stream(), imb_load_openexr(), imb_loadiris(), IMB_rotate_orthogonal(), imb_save_dpx_cineon(), IMB_save_image(), IMB_thumb_manage(), paint_2d_canvas_set(), blender::seq::prepare_effect_imbufs(), project_paint_op(), blender::ed::space_node::sample_apply(), screen_opengl_render_doit(), blender::ed::vse::sequencer_draw_scopes(), thumb_create_ex(), ui_draw_but_TRACKPREVIEW(), and ui_tooltip_from_clip().
| void IMB_color_to_bw | ( | ImBuf * | ibuf | ) |
No profile conversion.
Definition at line 747 of file conversion.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, i, IMB_colormanagement_get_luminance(), IMB_colormanagement_get_luminance_byte(), and IMB_get_pixel_count().
Referenced by RE_render_result_rect_to_ibuf(), and screenshot_exec().
| GPUTexture * IMB_create_gpu_texture | ( | const char * | name, |
| ImBuf * | ibuf, | ||
| bool | use_high_bitdepth, | ||
| bool | use_premult ) |
Definition at line 312 of file util_gpu.cc.
References BLI_assert, data, DDSData::data, ImBuf::dds_data, ImBuf::ftype, GPU_texture_anisotropic_filter(), GPU_texture_create_2d(), GPU_texture_create_compressed_2d(), GPU_texture_size_with_limit(), GPU_texture_swizzle_set(), GPU_texture_update(), GPU_TEXTURE_USAGE_GENERAL, GPU_TEXTURE_USAGE_HOST_READ, GPU_TEXTURE_USAGE_SHADER_READ, IMB_FTYPE_DDS, IMB_gpu_get_compressed_format(), imb_gpu_get_data(), imb_gpu_get_format(), imb_gpu_get_swizzle(), is_power_of_2_i(), max_ii(), MEM_freeN(), DDSData::nummipmaps, size(), UNPACK2, ImBuf::x, and ImBuf::y.
Referenced by BKE_movieclip_get_gpu_texture(), blender::compositor::CachedImage::CachedImage(), and image_get_gpu_texture().
Definition at line 599 of file allocimbuf.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBuf::colormanage_cache, ImBufByteBuffer::colorspace, ImBufFloatBuffer::colorspace, DDSData::data, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::dds_data, ImBuf::display_buffer_flags, ImBuf::encoded_buffer, ImBuf::encoded_buffer_size, ImBuf::encoded_size, ImBuf::float_buffer, ImBuf::gpu, IB_byte_data, IB_uninitialized_pixels, imb_addencodedbufferImBuf(), IMB_alloc_float_pixels(), IMB_allocImBuf(), IMB_freeImBuf(), IMB_MIPMAP_LEVELS, ImBuf::metadata, ImBuf::mipmap, ImBuf::planes, ImBuf::refcounter, ImBufGPU::texture, ImBuf::x, x, ImBuf::y, and y.
Referenced by accessor_get_ibuf(), BKE_image_preview(), BKE_tracking_distortion_exec(), blend_file_thumb_from_camera(), blend_file_thumb_from_screenshot(), blender::bke::bNodePreview::bNodePreview(), brush_copy_data(), blender::seq::do_render_strip_uncached(), blender::seq::do_speed_effect(), duplicate_render_pass(), duplicate_render_view(), image_save_single(), IMB_half_x(), IMB_half_y(), IMB_makeSingleUser(), IMB_scale_into_new(), imbuf_ensure_editable(), Freestyle::Canvas::loadMap(), postprocess_frame(), py_imbuf_copy(), RE_DuplicateRenderResult(), RE_render_result_rect_to_ibuf(), screen_opengl_render_doit(), seq_process_render_image(), blender::ed::vse::sequencer_calc_scopes(), blender::ed::vse::sequencer_make_scope(), and UI_tooltip_image_field_add().
| void IMB_exit | ( | ) |
Definition at line 23 of file module.cc.
References colormanagement_exit(), imb_filetypes_exit(), and imb_mmap_lock_exit().
Referenced by BKE_blender_free(), blender::bke::image::partial_update::ImagePartialUpdateTest::TearDown(), blender::bke::tests::ImageTest::TearDown(), blender::bke::tests::LibQueryTest::TearDownTestSuite(), blender::bke::tests::LibRemapTest::TearDownTestSuite(), blender::nodes::tests::NodeTest::TearDownTestSuite(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), and wm_main_playanim_intern().
| void IMB_filter_extend | ( | ImBuf * | ibuf, |
| char * | mask, | ||
| int | filter ) |
If alpha is zero, it checks surrounding pixels and averages color. sets new alphas to 1.0 When a mask is given, the mask will be used instead of the alpha channel, where only pixels with a mask value of 0 will be written to, and only pixels with a mask value of 1 will be used for the average. The mask will be set to one for the pixels which were written.
Definition at line 317 of file filter.cc.
References ImBuf::byte_buffer, check_pixel_assigned(), ImBufByteBuffer::data, ImBufFloatBuffer::data, filter, filter_make_index(), FILTER_MASK_MARGIN, ImBuf::float_buffer, i, mask(), MEM_dupallocN(), MEM_freeN(), nullptr, sqrt, ImBuf::x, x, ImBuf::y, and y.
Referenced by bake_ibuf_filter(), blender::render::texturemargin::generate_margin(), and RE_bake_margin().
| void IMB_filtery | ( | ImBuf * | ibuf | ) |
Definition at line 63 of file filter.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, filtcolum(), filtcolumf(), ImBuf::float_buffer, ImBuf::planes, ImBuf::x, x, ImBuf::y, and y.
Referenced by blender::seq::input_preprocess().
| void IMB_flipx | ( | ImBuf * | ibuf | ) |
Definition at line 151 of file imbuf/intern/rotate.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, ImBuf::x, x, ImBuf::y, and y.
Referenced by blender::seq::input_preprocess().
| void IMB_flipy | ( | ImBuf * | ibuf | ) |
Definition at line 92 of file imbuf/intern/rotate.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, MEM_freeN(), MEM_malloc_arrayN(), top, ImBuf::x, and ImBuf::y.
Referenced by imb_load_dpx_cineon(), imb_load_filepath_thumbnail_openexr(), imb_load_filepath_thumbnail_svg(), blender::seq::input_preprocess(), and UI_svg_icon_bitmap().
| void IMB_float_from_byte | ( | ImBuf * | ibuf | ) |
Definition at line 712 of file conversion.cc.
References BLI_rcti_init(), ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IB_TAKE_OWNERSHIP, IMB_assign_float_buffer(), IMB_float_from_byte_ex(), IMB_get_pixel_count(), MEM_calloc_arrayN(), ImBuf::x, and ImBuf::y.
Referenced by accessor_get_ibuf(), blender::image_engine::FloatBufferCache::cached_float_buffer(), colorfn(), blender::compositor::compute_linear_buffer(), blender::nodes::node_composite_movieclip_cc::MovieClipOperation::get_movie_clip_buffer(), blender::nodes::node_geo_image_texture_cc::ImageFieldsFunction::ImageFieldsFunction(), IMB_colormanagement_imbuf_for_write(), paint_2d_canvas_set(), project_paint_op(), RE_layer_load_from_file(), RE_render_result_rect_to_ibuf(), and studiolight_load_equirect_image().
Definition at line 658 of file conversion.cc.
References BLI_assert_msg, BLI_rcti_size_x(), BLI_rcti_size_y(), ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::colorspace, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, i, IB_PROFILE_SRGB, IMB_alpha_affects_rgb(), IMB_buffer_float_from_byte(), IMB_colormanagement_colorspace_to_scene_linear(), IMB_premultiply_rect_float(), ImBuf::x, rcti::xmax, rcti::xmin, ImBuf::y, rcti::ymax, and rcti::ymin.
Referenced by IMB_float_from_byte().
| void IMB_free_all_data | ( | ImBuf * | ibuf | ) |
Deallocate all CPU side data storage (byte, float, encoded, mipmaps).
Definition at line 220 of file allocimbuf.cc.
References free_encoded_data(), IMB_free_byte_pixels(), and IMB_free_float_pixels().
Referenced by IMB_freeImBuf(), and ubuf_ensure_compat_ibuf().
| void IMB_free_byte_pixels | ( | ImBuf * | ibuf | ) |
Deallocate image byte storage. Also deallocates any mipmaps.
Definition at line 193 of file allocimbuf.cc.
References ImBuf::byte_buffer, ImBuf::flags, IB_byte_data, imb_free_buffer(), and IMB_free_mipmaps().
Referenced by BKE_tracking_distortion_exec(), colormanage_imbuf_make_linear(), image_save_post(), IMB_colormanagement_imbuf_for_write(), IMB_free_all_data(), blender::seq::input_preprocess(), blender::seq::make_thumb_for_image(), project_paint_end(), RE_render_result_rect_from_ibuf(), scale_with_function(), blender::seq::seq_imbuf_to_sequencer_space(), blender::seq::seq_render_image_strip_view(), blender::seq::seq_render_movie_strip_view(), and blender::render::Context::viewer_output_to_viewer_image().
| void IMB_free_float_pixels | ( | ImBuf * | ibuf | ) |
Deallocate image float storage. Also deallocates any mipmaps.
Definition at line 180 of file allocimbuf.cc.
References ImBuf::flags, ImBuf::float_buffer, IB_float_data, imb_free_buffer(), and IMB_free_mipmaps().
Referenced by image_save_post(), IMB_alloc_float_pixels(), IMB_free_all_data(), IMB_thumb_manage(), project_paint_end(), RE_render_result_rect_from_ibuf(), scale_with_function(), screen_opengl_render_doit(), thumb_create_ex(), ubuf_ensure_compat_ibuf(), and blender::render::Context::viewer_output_to_viewer_image().
| void IMB_free_gpu_textures | ( | ImBuf * | ibuf | ) |
Definition at line 227 of file allocimbuf.cc.
References ImBuf::gpu, GPU_texture_free(), and ImBufGPU::texture.
Referenced by IMB_freeImBuf(), and render_result_free_gpu_texture_caches().
| void IMB_free_mipmaps | ( | ImBuf * | ibuf | ) |
Deallocate mipmaps.
Definition at line 164 of file allocimbuf.cc.
References IMB_freeImBuf(), IMB_MIPMAP_LEVELS, ImBuf::mipmap, and ImBuf::miptot.
Referenced by finish_images(), IMB_free_byte_pixels(), IMB_free_float_pixels(), IMB_makemipmap(), and blender::ed::object::write_internal_bake_pixels().
| void IMB_freeImBuf | ( | ImBuf * | ibuf | ) |
Definition at line 237 of file allocimbuf.cc.
References atomic_sub_and_fetch_int32(), BLI_assert_msg, colormanage_cache_free(), ImBuf::dds_data, ImBuf::filepath, IMB_free_all_data(), imb_free_dds_buffer(), IMB_free_gpu_textures(), IMB_metadata_free(), MEM_freeN(), ImBuf::metadata, and ImBuf::refcounter.
Referenced by accessor_get_ibuf(), accessor_release_image_callback(), action_preview_render(), blender::seq::add_image_init_alpha_mode(), blender::seq::add_image_strip(), blender::ed::space_node::all_nodes_preview_update(), BKE_image_acquire_multilayer_view_ibuf(), BKE_image_add_generated(), BKE_image_has_ibuf(), BKE_image_memorypack(), BKE_image_pool_free(), BKE_image_reassign_tile(), BKE_image_release_ibuf(), BKE_image_render_write(), BKE_image_signal(), BKE_movieclip_build_proxy_frame(), BKE_movieclip_build_proxy_frame_for_ibuf(), BKE_movieclip_get_gpu_texture(), BKE_movieclip_get_size(), BKE_movieclip_get_stable_ibuf(), BKE_movieclip_has_frame(), BKE_movieclip_update_scopes(), BKE_previewimg_ensure(), BKE_tracking_get_pattern_imbuf(), BKE_tracking_refine_marker(), blend_file_thumb_from_camera(), blend_file_thumb_from_screenshot(), brush_free_data(), brush_painter_2d_refresh_cache(), brush_painter_2d_require_imbuf(), brush_painter_cache_2d_free(), brush_painter_imbuf_partial_update(), build_pict_list_from_anim(), build_pict_list_from_image_sequence(), blender::io::usd::cache_image_color(), blender::compositor::CachedImage::CachedImage(), blender::ed::vse::SeqScopes::cleanup(), blender::seq::FinalImageCache::clear(), blender::seq::SourceImageCache::clear(), blender::seq::StripImageMap::clear(), blender::seq::ThumbnailCache::clear(), clip_draw_main(), clip_free(), clip_main_region_draw(), colormanage_cache_get(), colormanage_cache_handle_release(), blender::compositor::compute_marker_points(), detect_clip_source(), detect_features_exec(), blender::ed::sculpt_paint::paint::image::do_push_undo_tile(), do_render_sequencer(), blender::seq::do_render_strip_uncached(), blender::ed::vse::draw_strip_thumbnails(), dynamicPaint_outputSurfaceImage(), ED_imapaint_dirty_region(), ED_space_clip_color_sample(), ED_space_clip_get_buffer(), ED_space_clip_get_position(), ED_space_clip_get_stable_buffer(), blender::nodes::node_composite_movieclip_cc::MovieClipOperation::execute(), file_draw_tooltip_custom_func(), filelist_free_icons(), blender::seq::final_image_cache_evict(), blender::seq::final_image_cache_invalidate_frame_range(), blender::seq::final_image_cache_put(), frame_cache_remove(), free_buffers(), blender::ed::asset::generate_previewimg_from_buffer(), GHOST_SystemCocoa::getClipboardImage(), GHOST_SystemWayland::getClipboardImage(), getClipboardImageFilepath(), getClipboardImageImBuf(), gpu_texture_update_scaled(), GHOST_SystemWin32::hasClipboardImage(), icon_copy_rect(), icon_draw_size(), icon_free_data(), icon_verify_datatoc(), image_clipboard_copy_exec(), image_clipboard_paste_exec(), image_get_render_result(), image_init_color_management(), image_load_image_file(), image_load_movie_file(), image_memorypack_imbuf(), image_save_single(), image_undosys_step_encode(), IMB_allocImBuf(), IMB_dupImBuf(), IMB_free_mipmaps(), imb_gpu_get_data(), IMB_ImBufFromStereo3d(), imb_load_dpx_cineon(), imb_load_filepath_thumbnail_openexr(), imb_load_filepath_thumbnail_webp(), imb_load_openexr(), IMB_makemipmap(), IMB_makeSingleUser(), IMB_remakemipmap(), imb_scale_via_transform(), IMB_thumb_load_font(), IMB_thumb_manage(), imbuf_save_post(), blender::seq::input_preprocess(), blender::seq::StripImageMap::invalidate(), load_image_single(), blender::imbuf::load_pixels(), blender::ed::vse::metadata_panel_context_draw(), metadata_panel_context_draw(), blender::seq::modifier_apply_stack(), MOV_decode_preview_frame(), moviecache_destructor(), moviecache_valfree(), movieclip_build_proxy_ibuf(), movieclip_get_postprocessed_ibuf(), new_image_from_plane_marker_exec(), object_preview_render(), openanim(), paint_2d_op(), prefetch_movie_frame(), prefetch_task_func(), project_bucket_init(), proxy_task_func(), ptile_restore_runtime_map(), blender::seq::StripImageMap::put(), put_postprocessed_frame_to_cache(), put_stabilized_frame_to_cache(), GHOST_SystemWayland::putClipboardImage(), putClipboardImagePNG(), py_imbuf_dealloc(), py_imbuf_free(), RE_create_gp_pass(), RE_layer_load_from_file(), RE_render_result_rect_to_ibuf(), RE_WriteRenderViewsMovie(), release_keyframed_image_buffers(), blender::seq::SourceImageCache::remove_entry(), blender::seq::ThumbnailCache::remove_entry(), render_result_free(), render_result_views_free(), sample_plane_marker_image_for_operator(), scale_perf_impl(), screen_opengl_render_doit(), screen_opengl_views_setup(), screenshot_exec(), blender::ed::asset::screenshot_preview_exec(), blender::seq::seq_prefetch_frames(), seq_process_render_image(), blender::seq::seq_proxy_build_frame(), blender::seq::seq_render_effect_strip_impl(), blender::seq::seq_render_image_strip(), blender::seq::seq_render_movie_strip(), blender::seq::seq_render_scene_strip(), blender::seq::seq_render_strip_stack(), blender::ed::vse::sequencer_calc_scopes(), blender::ed::vse::sequencer_make_scope(), blender::ed::vse::sequencer_preview_region_draw(), sequencer_sample_apply(), blender::ed::space_node::shader_preview_startjob(), blender::seq::source_image_cache_evict(), blender::seq::source_image_cache_put(), studiolight_load_equirect_image(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), blender::imbuf::tests::TEST(), texture_paint_image_from_view_exec(), thumb_create_ex(), thumb_create_or_fail(), blender::seq::thumbnail_cache_maintain_capacity(), track_get_search_floatbuf(), blender::imbuf::tests::transform_2x_smaller(), blender::imbuf::tests::transform_fractional_larger(), ubuf_from_image_all_tiles(), uhandle_restore_list(), ui_but_free(), ui_draw_but_TRACKPREVIEW(), UI_icon_to_preview(), UI_icons_free_drawinfo(), ui_tooltip_data_from_button_or_extra_icon(), ui_tooltip_from_clip(), ui_tooltip_from_image(), ui_tooltip_from_vfont(), ui_tooltip_region_free_cb(), uiTemplateMovieclipInformation(), uiTemplateRecentFiles_tooltip_func(), update_image_from_plane_marker_exec(), wm_file_write(), wm_main_playanim_intern(), blender::ed::object::write_external_bake_pixels(), blender::bke::bNodePreview::~bNodePreview(), blender::render::Context::~Context(), blender::image_engine::FloatImageBuffer::~FloatImageBuffer(), GHOST_EventDragnDrop::~GHOST_EventDragnDrop(), and blender::ed::space_node::NestedTreePreviews::~NestedTreePreviews().
| size_t IMB_get_pixel_count | ( | const ImBuf * | ibuf | ) |
Get the length of the data of the given image buffer in pixels.
This is the width * the height of the image buffer. This function is preferred over ibuf->x * ibuf->y due to 32 bit int overflow issues when working with very large resolution images.
Definition at line 682 of file allocimbuf.cc.
References ImBuf::x, and ImBuf::y.
Referenced by bake_ibuf_normalize_displacement(), BKE_imbuf_alpha_test(), create_src_image(), IMB_color_to_bw(), IMB_float_from_byte(), IMB_get_size_in_memory(), imb_gpu_get_data(), IMB_rectfill(), IMB_rectfill_alpha(), IMB_saturation(), imb_savewebp(), imbuf_rgba_to_abgr(), init_heights_data(), blender::seq::multiply_ibuf(), and studiolight_create_matcap_gputexture().
| size_t IMB_get_size_in_memory | ( | const ImBuf * | ibuf | ) |
Approximate size of ImBuf in memory
Definition at line 687 of file allocimbuf.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IMB_get_pixel_count(), IMB_get_size_in_memory(), ImBuf::mipmap, ImBuf::miptot, and size().
Referenced by blender::seq::final_image_cache_calc_memory_size(), frame_cache_add(), get_size_in_memory(), image_mem_size(), IMB_get_size_in_memory(), and blender::seq::source_image_cache_calc_memory_size().
Definition at line 525 of file filter.cc.
References CLAMP, ImBuf::mipmap, and ImBuf::miptot.
| void IMB_gpu_clamp_half_float | ( | ImBuf * | image_buffer | ) |
Ensures that values stored in the float rect can safely loaded into half float gpu textures.
Does nothing when given image_buffer doesn't contain a float rect.
Definition at line 404 of file util_gpu.cc.
References ImBuf::channels, clamp_f(), ImBufFloatBuffer::data, ImBuf::float_buffer, i, ImBuf::x, and ImBuf::y.
| eGPUTextureFormat IMB_gpu_get_texture_format | ( | const ImBuf * | ibuf, |
| bool | high_bitdepth, | ||
| bool | use_grayscale ) |
Definition at line 395 of file util_gpu.cc.
References imb_gpu_get_format().
Referenced by uiTemplateImageInfo().
Definition at line 87 of file scaling.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::flags, ImBuf::float_buffer, IMB_allocImBuf(), IMB_dupImBuf(), imb_half_x_no_alloc(), ImBuf::planes, ImBuf::x, and ImBuf::y.
Referenced by IMB_onehalf().
Definition at line 179 of file scaling.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::flags, ImBuf::float_buffer, IMB_allocImBuf(), IMB_dupImBuf(), imb_half_y_no_alloc(), ImBuf::planes, ImBuf::x, and ImBuf::y.
Referenced by IMB_onehalf().
| void IMB_ImBufFromStereo3d | ( | const Stereo3dFormat * | s3d, |
| ImBuf * | ibuf_stereo3d, | ||
| ImBuf ** | r_ibuf_left, | ||
| ImBuf ** | r_ibuf_right ) |
Reading a stereo encoded ibuf (*left) and generating two ibufs from it (*left and *right).
Definition at line 1149 of file stereoimbuf.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, Stereo3dFormat::display_mode, Stereo3dFormat::flag, ImBuf::flags, ImBuf::float_buffer, IMB_alloc_byte_pixels(), IMB_alloc_float_pixels(), IMB_allocImBuf(), IMB_freeImBuf(), imb_stereo3d_data_init(), IMB_stereo3d_read_dimensions(), imb_stereo3d_read_doit(), imb_stereo3d_unsqueeze_ImBuf(), IMB_stereo3d_write_dimensions(), ImBuf::planes, S3D_SQUEEZED_FRAME, ImBuf::x, and ImBuf::y.
Referenced by image_load_image_file(), image_load_movie_file(), blender::seq::seq_render_image_strip(), and blender::seq::seq_render_movie_strip().
| void IMB_init | ( | ) |
Module init/exit.
Definition at line 16 of file module.cc.
References colormanagement_init(), imb_filetypes_init(), and imb_mmap_lock_init().
Referenced by main(), blender::bke::image::partial_update::ImagePartialUpdateTest::SetUp(), blender::bke::tests::ImageTest::SetUp(), BlendfileLoadingBaseTest::SetUpTestCase(), blender::bke::tests::LibQueryTest::SetUpTestSuite(), blender::bke::tests::LibRemapTest::SetUpTestSuite(), blender::nodes::tests::NodeTest::SetUpTestSuite(), blender::bke::tests::TEST(), blender::bke::tests::TEST(), and wm_main_playanim_intern().
| bool IMB_initImBuf | ( | ImBuf * | ibuf, |
| unsigned int | x, | ||
| unsigned int | y, | ||
| unsigned char | planes, | ||
| unsigned int | flags ) |
Initialize given ImBuf.
Use in cases when temporary image buffer is allocated on stack.
Definition at line 564 of file allocimbuf.cc.
References ImBuf::channels, colormanage_imbuf_set_default_spaces(), ImBuf::foptions, ImBuf::ftype, IB_byte_data, IB_float_data, IB_uninitialized_pixels, IMB_alloc_byte_pixels(), IMB_alloc_float_pixels(), IMB_DPI_DEFAULT, IMB_FTYPE_PNG, ImBuf::planes, ImBuf::ppm, ImbFormatOptions::quality, ImBuf::x, x, ImBuf::y, and y.
Referenced by IMB_allocImBuf(), IMB_scale_into_new(), and paint_2d_do_making_brush().
| ImBuf * IMB_load_image_from_file_descriptor | ( | const int | file, |
| const int | flags, | ||
| const char * | filepath = nullptr, | ||
| char | r_colorspace[IM_MAX_SPACE] = nullptr ) |
Definition at line 150 of file readimage.cc.
References BLI_mmap_any_io_error(), BLI_mmap_free(), BLI_mmap_get_length(), BLI_mmap_get_pointer(), BLI_mmap_open(), IM_MAX_SPACE, IMB_load_image_from_memory(), imb_mmap_lock(), imb_mmap_unlock(), and size().
Referenced by IMB_load_image_from_filepath(), and imbuf_load_impl().
| ImBuf * IMB_load_image_from_filepath | ( | const char * | filepath, |
| const int | flags, | ||
| char | r_colorspace[IM_MAX_SPACE] = nullptr ) |
Definition at line 204 of file readimage.cc.
References BLI_assert, BLI_open(), BLI_path_is_rel(), ImBuf::filepath, IM_MAX_SPACE, IMB_load_image_from_file_descriptor(), O_BINARY, and STRNCPY().
Referenced by blender::seq::add_image_init_alpha_mode(), blender::seq::add_image_strip(), detect_clip_source(), GHOST_SystemWayland::getClipboardImage(), getClipboardImageFilepath(), GHOST_SystemWin32::hasClipboardImage(), ibuf_from_picture(), icon_preview_imbuf_from_brush(), image_init_color_management(), IMB_thumb_load_image(), IMB_thumb_manage(), IMB_thumb_read(), load_image_single(), Freestyle::Canvas::loadMap(), movieclip_load_sequence_file(), RE_layer_load_from_file(), blender::seq::seq_proxy_fetch(), blender::seq::seq_render_image_strip_view(), studiolight_load_equirect_image(), wm_block_splash_banner_image(), wm_block_splash_image(), and wm_main_playanim_intern().
| ImBuf * IMB_load_image_from_memory | ( | const unsigned char * | mem, |
| const size_t | size, | ||
| const int | flags, | ||
| const char * | descr, | ||
| const char * | filepath = nullptr, | ||
| char | r_colorspace[IM_MAX_SPACE] = nullptr ) |
Load image.
Definition at line 116 of file readimage.cc.
References IB_test, IM_MAX_SPACE, IMB_FILE_TYPES, IMB_FILE_TYPES_LAST, imb_handle_colorspace_and_alpha(), ImFileType::load, and size().
Referenced by GHOST_SystemWayland::getClipboardImage(), getClipboardImageImBuf(), ibuf_from_picture(), icon_verify_datatoc(), IMB_load_image_from_file_descriptor(), imbuf_load_from_memory_impl(), load_image_single(), prefetch_task_func(), proxy_task_func(), UI_icon_to_preview(), and wm_block_splash_image().
| void IMB_make_writable_byte_buffer | ( | ImBuf * | ibuf | ) |
Make corresponding buffers available for modification. Is achieved by ensuring that the given ImBuf is the only owner of the underlying buffer data.
Definition at line 430 of file allocimbuf.cc.
References ImBuf::byte_buffer, and imb_make_writeable_buffer().
Referenced by imbuf_ensure_editable().
| void IMB_make_writable_float_buffer | ( | ImBuf * | ibuf | ) |
Definition at line 435 of file allocimbuf.cc.
References ImBuf::float_buffer, and imb_make_writeable_buffer().
Referenced by imbuf_ensure_editable().
| void IMB_makemipmap | ( | ImBuf * | ibuf, |
| int | use_filter ) |
Frees too (if there) and recreates new data.
Definition at line 488 of file filter.cc.
References ImBuf::channels, ImBufFloatBuffer::data, ImBuf::flags, ImBuf::float_buffer, IMB_allocImBuf(), imb_filterN(), IMB_free_mipmaps(), IMB_freeImBuf(), IMB_MIPMAP_LEVELS, IMB_onehalf(), ImBuf::miplevel, ImBuf::mipmap, ImBuf::miptot, ImBuf::planes, ImBuf::x, and ImBuf::y.
Referenced by image_mipmap_test().
Definition at line 263 of file allocimbuf.cc.
References atomic_load_int32(), IMB_dupImBuf(), IMB_freeImBuf(), IMB_metadata_copy(), and ImBuf::refcounter.
Referenced by blender::seq::input_preprocess(), and load_movie_single().
| void IMB_mask_clear | ( | ImBuf * | ibuf, |
| const char * | mask, | ||
| int | val ) |
Definition at line 261 of file filter.cc.
References ImBuf::byte_buffer, col, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, mask(), ImBuf::x, x, ImBuf::y, and y.
| void IMB_mask_filter_extend | ( | char * | mask, |
| int | width, | ||
| int | height ) |
Definition at line 217 of file filter.cc.
References FILTER_MASK_MARGIN, mask(), MEM_dupallocN(), MEM_freeN(), x, and y.
Definition at line 313 of file scaling.cc.
References ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::flags, ImBuf::float_buffer, IMB_allocImBuf(), IMB_half_x(), IMB_half_y(), imb_onehalf_no_alloc(), ImBuf::planes, ImBuf::x, and ImBuf::y.
Referenced by IMB_makemipmap().
| void IMB_premultiply_alpha | ( | ImBuf * | ibuf | ) |
Definition at line 577 of file filter.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IMB_premultiply_rect(), IMB_premultiply_rect_float(), ImBuf::planes, ImBuf::x, and ImBuf::y.
Referenced by BKE_previewimg_ensure(), imb_handle_colorspace_and_alpha(), UI_svg_icon_bitmap(), wm_block_splash_banner_image(), and wm_block_splash_image().
In-place image crop.
Definition at line 242 of file rectop.cc.
References BLI_assert, BLI_rcti_size_x(), BLI_rcti_size_y(), ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, rect_crop_16bytes(), rect_crop_4bytes(), ImBuf::x, rcti::xmax, rcti::xmin, ImBuf::y, rcti::ymax, and rcti::ymin.
Referenced by py_imbuf_crop(), screenshot_exec(), blender::ed::asset::screenshot_preview_exec(), and blender::ed::asset::take_screenshot_crop().
In-place size setting (caller must fill in buffer contents).
Definition at line 289 of file rectop.cc.
References BLI_assert, ImBuf::byte_buffer, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, rect_realloc_16bytes(), rect_realloc_4bytes(), size(), ImBuf::x, and ImBuf::y.
Referenced by blender::bke::node_preview_verify(), and ubuf_ensure_compat_ibuf().
| void IMB_rectblend | ( | ImBuf * | dbuf, |
| const ImBuf * | obuf, | ||
| const ImBuf * | sbuf, | ||
| unsigned short * | dmask, | ||
| const unsigned short * | curvemask, | ||
| const unsigned short * | texmask, | ||
| float | mask_max, | ||
| int | destx, | ||
| int | desty, | ||
| int | origx, | ||
| int | origy, | ||
| int | srcx, | ||
| int | srcy, | ||
| int | width, | ||
| int | height, | ||
| IMB_BlendMode | mode, | ||
| bool | accumulate ) |
Definition at line 476 of file rectop.cc.
References blend_color_add_alpha_byte(), blend_color_add_alpha_float(), blend_color_add_byte(), blend_color_add_float(), blend_color_burn_byte(), blend_color_burn_float(), blend_color_color_byte(), blend_color_color_float(), blend_color_darken_byte(), blend_color_darken_float(), blend_color_difference_byte(), blend_color_difference_float(), blend_color_dodge_byte(), blend_color_dodge_float(), blend_color_erase_alpha_byte(), blend_color_erase_alpha_float(), blend_color_exclusion_byte(), blend_color_exclusion_float(), blend_color_hardlight_byte(), blend_color_hardlight_float(), blend_color_hue_byte(), blend_color_hue_float(), blend_color_interpolate_byte(), blend_color_interpolate_float(), blend_color_lighten_byte(), blend_color_lighten_float(), blend_color_linearburn_byte(), blend_color_linearburn_float(), blend_color_linearlight_byte(), blend_color_linearlight_float(), blend_color_luminosity_byte(), blend_color_luminosity_float(), blend_color_mix_byte(), blend_color_mix_float(), blend_color_mul_byte(), blend_color_mul_float(), blend_color_overlay_byte(), blend_color_overlay_float(), blend_color_pinlight_byte(), blend_color_pinlight_float(), blend_color_saturation_byte(), blend_color_saturation_float(), blend_color_screen_byte(), blend_color_screen_float(), blend_color_softlight_byte(), blend_color_softlight_float(), blend_color_sub_byte(), blend_color_sub_float(), blend_color_vividlight_byte(), blend_color_vividlight_float(), ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, divide_round_i(), ImBuf::float_buffer, IMB_BLEND_ADD, IMB_BLEND_ADD_ALPHA, IMB_BLEND_COLOR, IMB_BLEND_COLORBURN, IMB_BLEND_COLORDODGE, IMB_BLEND_COPY, IMB_BLEND_COPY_ALPHA, IMB_BLEND_COPY_RGB, IMB_BLEND_DARKEN, IMB_BLEND_DIFFERENCE, IMB_BLEND_ERASE_ALPHA, IMB_BLEND_EXCLUSION, IMB_BLEND_HARDLIGHT, IMB_BLEND_HUE, IMB_BLEND_INTERPOLATE, IMB_BLEND_LIGHTEN, IMB_BLEND_LINEARBURN, IMB_BLEND_LINEARLIGHT, IMB_BLEND_LUMINOSITY, IMB_BLEND_MIX, IMB_BLEND_MUL, IMB_BLEND_OVERLAY, IMB_BLEND_PINLIGHT, IMB_BLEND_SATURATION, IMB_BLEND_SCREEN, IMB_BLEND_SOFTLIGHT, IMB_BLEND_SUB, IMB_BLEND_VIVIDLIGHT, imb_rectclip3(), mask(), min_ff(), mul_v4_v4fl(), ImBuf::x, and x.
Referenced by IMB_rectblend_threaded(), IMB_rectcpy(), paint_2d_do_making_brush(), paint_2d_lift_clone(), and paint_2d_lift_smear().
| void IMB_rectblend_threaded | ( | ImBuf * | dbuf, |
| const ImBuf * | obuf, | ||
| const ImBuf * | sbuf, | ||
| unsigned short * | dmask, | ||
| const unsigned short * | curvemask, | ||
| const unsigned short * | texmask, | ||
| float | mask_max, | ||
| int | destx, | ||
| int | desty, | ||
| int | origx, | ||
| int | origy, | ||
| int | srcx, | ||
| int | srcy, | ||
| int | width, | ||
| int | height, | ||
| IMB_BlendMode | mode, | ||
| bool | accumulate ) |
Definition at line 939 of file rectop.cc.
References IndexRange::first(), IMB_rectblend(), blender::threading::parallel_for(), and IndexRange::size().
Referenced by paint_2d_op().
| void IMB_rectclip | ( | ImBuf * | dbuf, |
| const ImBuf * | sbuf, | ||
| int * | destx, | ||
| int * | desty, | ||
| int * | srcx, | ||
| int * | srcy, | ||
| int * | width, | ||
| int * | height ) |
Definition at line 308 of file rectop.cc.
References ImBuf::x, and ImBuf::y.
Referenced by brush_painter_imbuf_partial_update(), brush_painter_mask_imbuf_partial_update(), ED_imapaint_dirty_region(), imapaint_region_tiles(), paint_2d_lift_clone(), paint_2d_lift_soften(), paint_2d_torus_split_region(), and blender::ed::sculpt_paint::paint::image::undo_region_tiles().
| void IMB_rectcpy | ( | ImBuf * | dbuf, |
| const ImBuf * | sbuf, | ||
| int | destx, | ||
| int | desty, | ||
| int | srcx, | ||
| int | srcy, | ||
| int | width, | ||
| int | height ) |
Definition at line 445 of file rectop.cc.
References IMB_BLEND_COPY, and IMB_rectblend().
Referenced by accessor_get_ibuf(), BKE_tracking_get_search_imbuf(), ED_image_paint_tile_push(), ptile_restore_runtime_map(), RE_layer_load_from_file(), utile_init_from_imbuf(), and utile_restore().
| void IMB_rectfill | ( | ImBuf * | drect, |
| const float | col[4] ) |
Replace pixels of entire image with solid color.
| drect | An image to be filled with color. It must be 4 channel image. |
| col | RGBA color, which is assigned directly to both byte (via scaling) and float buffers. |
Definition at line 979 of file rectop.cc.
References ImBuf::byte_buffer, col, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IMB_get_pixel_count(), and num.
Referenced by blender::io::usd::cache_image_color(), blender::ed::object::clear_single_image(), blender::seq::create_missing_media_image(), IMB_font_preview(), IMB_thumb_load_font(), and RE_bake_ibuf_clear().
| void IMB_rectfill_alpha | ( | ImBuf * | ibuf, |
| float | value ) |
Definition at line 1195 of file rectop.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, i, and IMB_get_pixel_count().
Referenced by bake_ibuf_filter(), imb_handle_colorspace_and_alpha(), and RE_bake_margin().
| void IMB_rectfill_area | ( | ImBuf * | ibuf, |
| const float | col[4], | ||
| int | x1, | ||
| int | y1, | ||
| int | x2, | ||
| int | y2, | ||
| const ColorManagedDisplay * | display ) |
Blend pixels of image area with solid color.
For images with uchar buffer use color matching image color-space. For images with float buffer use color display color-space. If display color-space can not be referenced, use color in SRGB color-space.
| ibuf | an image to be filled with color. It must be 4 channel image. |
| col | RGBA color. |
| x1,y1,x2,y2 | (x1, y1) defines starting point of the rectangular area to be filled, (x2, y2) is the end point. Note that values are allowed to be loosely ordered, which means that x2 is allowed to be lower than x1, as well as y2 is allowed to be lower than y1. No matter the order the area between x1 and x2, and y1 and y2 is filled. |
| display | color-space reference for display space. |
Definition at line 1172 of file rectop.cc.
References buf_rectfill_area(), ImBuf::byte_buffer, col, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, ImBuf::x, and ImBuf::y.
Referenced by ui_tooltip_data_from_button_or_extra_icon().
| void IMB_rectfill_area_replace | ( | const ImBuf * | ibuf, |
| const float | col[4], | ||
| int | x1, | ||
| int | y1, | ||
| int | x2, | ||
| int | y2 ) |
Replace pixels of image area with solid color.
| ibuf | an image to be filled with color. It must be 4 channel image. |
| col | RGBA color, which is assigned directly to both byte (via scaling) and float buffers. |
| x1,y1,x2,y2 | (x1, y1) defines starting point of the rectangular area to be filled, (x2, y2) is the end point. Note that values are allowed to be loosely ordered, which means that x2 is allowed to be lower than x1, as well as y2 is allowed to be lower than y1. No matter the order the area between x1 and x2, and y1 and y2 is filled. |
Definition at line 1011 of file rectop.cc.
References BLI_assert, ImBuf::byte_buffer, ImBuf::channels, CLAMP, col, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, ImBuf::x, x, ImBuf::y, and y.
| void IMB_refImBuf | ( | ImBuf * | ibuf | ) |
Increase reference count to imbuf (to delete an imbuf you have to call freeImBuf as many times as it is referenced)
Definition at line 258 of file allocimbuf.cc.
References atomic_add_and_fetch_int32(), and ImBuf::refcounter.
Referenced by blender::ed::space_node::all_nodes_preview_update(), BKE_image_get_first_ibuf(), BKE_image_get_ibuf_with_name(), do_moviecache_put(), blender::seq::final_image_cache_get(), blender::seq::final_image_cache_put(), blender::seq::StripImageMap::get(), blender::render::Context::get_pass(), get_postprocessed_cached_frame(), get_stable_cached_frame(), image_get_ibuf_multilayer(), image_get_render_result(), image_load_sequence_multilayer(), IMB_moviecache_get(), blender::ed::space_node::node_preview_acquire_ibuf(), blender::seq::StripImageMap::put(), put_postprocessed_frame_to_cache(), put_stabilized_frame_to_cache(), blender::seq::source_image_cache_get(), blender::seq::source_image_cache_put(), and blender::seq::thumbnail_cache_get().
| void IMB_remakemipmap | ( | ImBuf * | ibuf, |
| int | use_filter ) |
Thread-safe version, only recreates existing maps.
Definition at line 452 of file filter.cc.
References ImBuf::flags, IMB_allocImBuf(), imb_filterN(), IMB_freeImBuf(), IMB_MIPMAP_LEVELS, imb_onehalf_no_alloc(), ImBuf::miplevel, ImBuf::mipmap, ImBuf::miptot, ImBuf::planes, ImBuf::x, and ImBuf::y.
Referenced by image_mipmap_test().
| bool IMB_rotate_orthogonal | ( | ImBuf * | ibuf, |
| int | degrees ) |
Definition at line 59 of file imbuf/intern/rotate.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, degrees(), ELEM, ImBuf::float_buffer, IB_TAKE_OWNERSHIP, IMB_assign_byte_buffer(), IMB_assign_float_buffer(), IMB_byte_from_float(), MEM_malloc_arrayN(), rotate_pixels(), ImBuf::x, and ImBuf::y.
Referenced by image_rotate_orthogonal_exec().
| void IMB_saturation | ( | ImBuf * | ibuf, |
| float | sat ) |
Definition at line 774 of file conversion.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, IndexRange::first(), ImBuf::float_buffer, hsv_to_rgb(), i, IMB_get_pixel_count(), blender::threading::parallel_for(), ptr, rgb_float_to_uchar(), rgb_to_hsv_v(), and rgb_uchar_to_float().
Referenced by blender::seq::input_preprocess().
| bool IMB_save_image | ( | ImBuf * | ibuf, |
| const char * | filepath, | ||
| const int | flags ) |
Save image.
Definition at line 20 of file writeimage.cc.
References BLI_assert, BLI_path_is_rel(), ImBuf::byte_buffer, COLOR_ROLE_DEFAULT_BYTE, colormanage_colorspace_get_roled(), ImBufByteBuffer::colorspace, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImFileType::flag, ImBuf::flags, ImBuf::float_buffer, IM_FTYPE_FLOAT, IMB_byte_from_float(), IMB_file_type_from_ibuf(), and ImFileType::save.
Referenced by BKE_imbuf_write(), blender::io::usd::cache_image_color(), dynamicPaint_outputSurfaceImage(), image_memorypack_imbuf(), image_save_sequence_exec(), imbuf_write_impl(), Freestyle::Canvas::loadMap(), movieclip_build_proxy_ibuf(), GHOST_SystemWayland::putClipboardImage(), putClipboardImagePNG(), Freestyle::SteerableViewMap::saveSteerableViewMap(), blender::seq::seq_proxy_build_frame(), and thumb_create_ex().
| bool IMB_scale | ( | ImBuf * | ibuf, |
| unsigned int | newx, | ||
| unsigned int | newy, | ||
| IMBScaleFilter | filter, | ||
| bool | threaded = true ) |
Scale/resize image to new dimensions. Return true if ibuf is modified.
Definition at line 777 of file scaling.cc.
References Bilinear, BLI_assert_msg, Box, filter, imb_scale_box(), Nearest, scale_bilinear_func(), scale_nearest_func(), scale_with_function(), ImBuf::x, and ImBuf::y.
Referenced by accessor_get_ibuf(), BKE_icon_geom_rasterize(), BKE_image_preview(), BKE_image_scale(), BKE_previewimg_ensure(), blend_file_thumb_from_camera(), blend_file_thumb_from_screenshot(), get_undistorted_ibuf(), icon_verify_datatoc(), image_scale_exec(), imb_gpu_get_data(), imb_scale_bilinear(), imb_scale_bilinear_st(), imb_scale_box(), imb_scale_box_st(), imb_scale_nearest(), imb_scale_nearest_st(), imb_stereo3d_squeeze_ImBuf(), imb_stereo3d_unsqueeze_ImBuf(), Freestyle::Canvas::loadMap(), py_imbuf_resize(), blender::imbuf::tests::scale_2x_smaller(), blender::imbuf::tests::scale_fractional_larger(), blender::imbuf::tests::scale_to_1x1(), blender::seq::scale_to_thumbnail_size(), thumb_create_ex(), ui_draw_but_IMAGE(), ui_tooltip_from_clip(), update_do_scale(), wm_block_splash_banner_image(), and wm_block_splash_image().
| ImBuf * IMB_scale_into_new | ( | const ImBuf * | ibuf, |
| unsigned int | newx, | ||
| unsigned int | newy, | ||
| IMBScaleFilter | filter, | ||
| bool | threaded = true ) |
Scale/resize image to new dimensions, into a newly created result image. Metadata of input image (if any) is copied into the result image.
Definition at line 801 of file scaling.cc.
References alloc_scale_dst_buffers(), Bilinear, BLI_assert_msg, Box, ImBuf::byte_buffer, ImBuf::channels, ImBuf::colormanage_flag, ImBufByteBuffer::colorspace, ImBufFloatBuffer::colorspace, filter, ImBuf::float_buffer, IB_DO_NOT_TAKE_OWNERSHIP, IB_TAKE_OWNERSHIP, IB_uninitialized_pixels, IMB_allocImBuf(), IMB_assign_byte_buffer(), IMB_assign_float_buffer(), IMB_dupImBuf(), IMB_initImBuf(), IMB_metadata_copy(), MEM_freeN(), Nearest, ImBuf::planes, scale_bilinear_func(), scale_down_x_func(), scale_down_y_func(), scale_nearest_func(), scale_up_x_func(), scale_up_y_func(), ImBuf::x, x, ImBuf::y, and y.
Referenced by blender::ed::asset::generate_previewimg_from_buffer(), icon_copy_rect(), movieclip_build_proxy_ibuf(), and blender::seq::seq_proxy_build_frame().
| uint8_t * IMB_steal_byte_buffer | ( | ImBuf * | ibuf | ) |
Steal the buffer data pointer: the ImBuf is no longer an owner of this data.
Definition at line 404 of file allocimbuf.cc.
References ImBuf::byte_buffer, data, ImBuf::flags, IB_byte_data, and imb_steal_buffer_data().
Referenced by icon_verify_datatoc(), image_undo_steal_and_assign_byte_buffer(), imb_gpu_get_data(), and UI_icon_to_preview().
| uint8_t * IMB_steal_encoded_buffer | ( | ImBuf * | ibuf | ) |
Definition at line 418 of file allocimbuf.cc.
References data, ImBuf::encoded_buffer, ImBuf::encoded_buffer_size, ImBuf::encoded_size, ImBuf::flags, IB_mem, and imb_steal_buffer_data().
Referenced by image_memorypack_imbuf().
| float * IMB_steal_float_buffer | ( | ImBuf * | ibuf | ) |
Definition at line 411 of file allocimbuf.cc.
References data, ImBuf::flags, ImBuf::float_buffer, IB_float_data, and imb_steal_buffer_data().
Referenced by blender::image_engine::FloatBufferCache::cached_float_buffer(), image_undo_steal_and_assign_float_buffer(), and imb_gpu_get_data().
| ImBuf * IMB_stereo3d_ImBuf | ( | const ImageFormatData * | im_format, |
| ImBuf * | ibuf_left, | ||
| ImBuf * | ibuf_right ) |
Left/right are always float.
Definition at line 620 of file stereoimbuf.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::colorspace, ImBufFloatBuffer::colorspace, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImageFormatData::depth, Stereo3dFormat::display_mode, ImBuf::flags, ImBuf::float_buffer, IMB_alloc_byte_pixels(), IMB_alloc_float_pixels(), IMB_allocImBuf(), imb_stereo3d_data_init(), imb_stereo3d_squeeze_ImBuf(), IMB_stereo3d_write_dimensions(), imb_stereo3d_write_doit(), ImBuf::planes, ImageFormatData::stereo3d_format, ImBuf::x, and ImBuf::y.
Referenced by BKE_image_render_write(), image_save_single(), and RE_WriteRenderViewsMovie().
| void IMB_stereo3d_read_dimensions | ( | char | mode, |
| bool | is_squeezed, | ||
| size_t | width, | ||
| size_t | height, | ||
| size_t * | r_width, | ||
| size_t * | r_height ) |
Definition at line 524 of file stereoimbuf.cc.
References S3D_DISPLAY_ANAGLYPH, S3D_DISPLAY_INTERLACE, S3D_DISPLAY_SIDEBYSIDE, and S3D_DISPLAY_TOPBOTTOM.
Referenced by IMB_ImBufFromStereo3d().
| void IMB_stereo3d_write_dimensions | ( | char | mode, |
| bool | is_squeezed, | ||
| size_t | width, | ||
| size_t | height, | ||
| size_t * | r_width, | ||
| size_t * | r_height ) |
Definition at line 496 of file stereoimbuf.cc.
References S3D_DISPLAY_ANAGLYPH, S3D_DISPLAY_INTERLACE, S3D_DISPLAY_SIDEBYSIDE, and S3D_DISPLAY_TOPBOTTOM.
Referenced by BKE_scene_multiview_videos_dimensions_get(), IMB_ImBufFromStereo3d(), and IMB_stereo3d_ImBuf().
| bool IMB_test_image | ( | const char * | filepath | ) |
Definition at line 183 of file source/blender/imbuf/intern/util.cc.
References IMB_FTYPE_NONE, and IMB_test_image_type().
Referenced by build_pict_list_from_image_sequence(), GHOST_SystemWayland::hasClipboardImage(), and wm_main_playanim_intern().
| int IMB_test_image_type | ( | const char * | filepath | ) |
Definition at line 151 of file source/blender/imbuf/intern/util.cc.
References HEADER_SIZE, IMB_FTYPE_NONE, imb_test_image_read_header_from_filepath(), and IMB_test_image_type_from_memory().
Referenced by IMB_test_image(), and IMB_thumb_load_image().
| int IMB_test_image_type_from_memory | ( | const unsigned char * | buf, |
| size_t | buf_size ) |
Definition at line 138 of file source/blender/imbuf/intern/util.cc.
References IMB_FILE_TYPES, IMB_FILE_TYPES_LAST, and IMB_FTYPE_NONE.
Referenced by blender::io::usd::export_packed_texture(), IMB_test_image_type(), and unpack_generate_paths().
| bool IMB_test_image_type_matches | ( | const char * | filepath, |
| int | filetype ) |
Definition at line 161 of file source/blender/imbuf/intern/util.cc.
References BLI_assert, HEADER_SIZE, IMB_file_type_from_ftype(), imb_test_image_read_header_from_filepath(), and ImFileType::is_a.
| ImBuf * IMB_thumb_load_image | ( | const char * | filepath, |
| const size_t | max_thumb_size, | ||
| char | colorspace[IM_MAX_SPACE], | ||
| const IMBThumbLoadFlags | load_flags = IMBThumbLoadFlags::Zero ) |
Definition at line 229 of file readimage.cc.
References BLI_file_size(), IB_byte_data, IB_metadata, IM_MAX_SPACE, IMB_file_type_from_ftype(), imb_handle_colorspace_and_alpha(), IMB_load_image_from_filepath(), IMB_metadata_ensure(), IMB_metadata_set_field(), IMB_test_image_type(), ImFileType::load_filepath_thumbnail, LoadLargeFiles, ImBuf::metadata, SNPRINTF, THUMB_SIZE_MAX, ImBuf::x, ImBuf::y, and Zero.
Referenced by blender::seq::make_thumb_for_image(), and thumb_create_ex().
| GPUTexture * IMB_touch_gpu_texture | ( | const char * | name, |
| ImBuf * | ibuf, | ||
| int | w, | ||
| int | h, | ||
| int | layers, | ||
| bool | use_high_bitdepth, | ||
| bool | use_grayscale ) |
The ibuf is only here to detect the storage type. The produced texture will have undefined content. It will need to be populated by using IMB_update_gpu_texture_sub().
Definition at line 255 of file util_gpu.cc.
References GPU_texture_anisotropic_filter(), GPU_texture_create_2d(), GPU_texture_create_2d_array(), GPU_texture_swizzle_set(), GPU_TEXTURE_USAGE_SHADER_READ, imb_gpu_get_format(), imb_gpu_get_swizzle(), and w().
Referenced by gpu_texture_create_tile_array().
| void IMB_transform | ( | const ImBuf * | src, |
| ImBuf * | dst, | ||
| eIMBTransformMode | mode, | ||
| eIMBInterpolationFilterMode | filter, | ||
| const blender::float3x3 & | transform_matrix, | ||
| const rctf * | src_crop ) |
Transform source image buffer onto destination image buffer using a transform matrix.
| src | Image buffer to read from. |
| dst | Image buffer to write to. rect or rect_float must already be initialized.
|
| mode | Cropping/Wrap repeat effect to apply during transformation. |
| filter | Interpolation to use during sampling. |
| transform_matrix | Transformation matrix to use. The given matrix should transform between dst pixel space to src pixel space. One unit is one pixel. |
| src_crop | Cropping region how to crop the source buffer. Should only be passed when mode is set to IMB_TRANSFORM_MODE_CROP_SRC. For any other mode this should be empty. |
During transformation no data/color conversion will happens. When transforming between float images the number of channels of the source buffer may be between 1 and 4. When source buffer has one channel the data will be read as a gray scale value.
Definition at line 467 of file imbuf/intern/transform.cc.
References BLI_assert_msg, ImBuf::channels, blender::imbuf::transform::TransformContext::dst, blender::imbuf::transform::TransformContext::dst_region_y_range, filter, if(), IMB_FILTER_BILINEAR, IMB_FILTER_BOX, IMB_FILTER_CUBIC_BSPLINE, IMB_FILTER_CUBIC_MITCHELL, IMB_TRANSFORM_MODE_CROP_SRC, blender::imbuf::transform::TransformContext::init(), blender::imbuf::transform::TransformContext::mode, blender::threading::parallel_for(), blender::imbuf::transform::TransformContext::src, blender::imbuf::transform::TransformContext::src_crop, and blender::imbuf::transform::transform_scanlines_filter().
Referenced by imb_scale_via_transform(), blender::seq::sequencer_preprocess_transform_crop(), blender::imbuf::tests::TEST(), blender::imbuf::tests::transform_2x_smaller(), and blender::imbuf::tests::transform_fractional_larger().
| void IMB_unpremultiply_alpha | ( | ImBuf * | ibuf | ) |
Definition at line 639 of file filter.cc.
References ImBuf::byte_buffer, ImBuf::channels, ImBufByteBuffer::data, ImBufFloatBuffer::data, ImBuf::float_buffer, IMB_unpremultiply_rect(), IMB_unpremultiply_rect_float(), ImBuf::planes, ImBuf::x, and ImBuf::y.
Referenced by imb_handle_colorspace_and_alpha().
| void IMB_update_gpu_texture_sub | ( | GPUTexture * | tex, |
| ImBuf * | ibuf, | ||
| int | x, | ||
| int | y, | ||
| int | z, | ||
| int | w, | ||
| int | h, | ||
| bool | use_high_bitdepth, | ||
| bool | use_grayscale, | ||
| bool | use_premult ) |
Will update a #GPUTexture using the content of the ImBuf. Only one layer will be updated. Will resize the ibuf if needed. Z is the layer to update. Unused if the texture is 2D.
Definition at line 281 of file util_gpu.cc.
References data, GPU_texture_update_sub(), imb_gpu_get_data(), imb_gpu_get_format(), MEM_freeN(), size(), w(), ImBuf::x, x, ImBuf::y, y, and z().
Referenced by gpu_texture_create_tile_array().