40 const char *filepath =
nullptr,
45 const char *filepath =
nullptr,
77 const size_t max_thumb_size,
93 ImBuf *ibuf,
unsigned int x,
unsigned int y,
unsigned char planes,
unsigned int flags);
103 unsigned int channels);
109 const float *float_buffer,
112 unsigned int channels);
211 const unsigned char src1[4],
212 const unsigned char src2[4],
248 unsigned short *dmask,
249 const unsigned short *curvemask,
250 const unsigned short *texmask,
265 unsigned short *dmask,
266 const unsigned short *curvemask,
267 const unsigned short *texmask,
288#define FILTER_MASK_NULL 0
289#define FILTER_MASK_MARGIN 1
290#define FILTER_MASK_USED 2
327 bool threaded =
true);
337 bool threaded =
true);
362 const float *rect_from,
377 const float *rect_from,
390 const unsigned char *rect_from,
402 const float *rect_from,
412 const float *rect_from,
425 const float *rect_from,
436 const unsigned char *rect_from,
478 ImBuf *ibuf,
const float scene_linear_color[4],
int x1,
int y1,
int x2,
int y2);
486 unsigned int channels,
488 bool initialize_pixels,
489 const char *alloc_name);
507 const unsigned int channels,
508 bool initialize_pixels =
true);
559 const rctf *src_crop);
563 bool use_high_bitdepth,
589 bool use_high_bitdepth,
603 bool use_high_bitdepth,
608 char mode,
bool is_squeezed,
size_t width,
size_t height,
size_t *r_width,
size_t *r_height);
610 char mode,
bool is_squeezed,
size_t width,
size_t height,
size_t *r_width,
size_t *r_height);
619 ImBuf *ibuf_stereo3d,
621 ImBuf **r_ibuf_right);
#define ENUM_OPERATORS(_type, _max)
void IMB_flipy(ImBuf *ibuf)
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_premultiply_alpha(ImBuf *ibuf)
void IMB_free_gpu_textures(ImBuf *ibuf)
ImBuf * IMB_load_image_from_filepath(const char *filepath, const int flags, char r_colorspace[IM_MAX_SPACE]=nullptr)
void IMB_rectfill_alpha(ImBuf *ibuf, float value)
float * IMB_steal_float_buffer(ImBuf *ibuf)
void IMB_float_from_byte_ex(ImBuf *dst, const ImBuf *src, const rcti *region_to_update)
void IMB_flipx(ImBuf *ibuf)
ImBuf * IMB_dupImBuf(const ImBuf *ibuf1)
blender::gpu::Texture * IMB_create_gpu_texture(const char *name, ImBuf *ibuf, bool use_high_bitdepth, bool use_premult)
void IMB_make_writable_byte_buffer(ImBuf *ibuf)
void IMB_mask_filter_extend(char *mask, int width, int height)
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)
uint8_t * IMB_steal_byte_buffer(ImBuf *ibuf)
void IMB_assign_dds_data(ImBuf *ibuf, const DDSData &data, ImBufOwnership ownership)
int IMB_test_image_type(const char *filepath)
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_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.
ImBuf * IMB_allocFromBuffer(const uint8_t *byte_buffer, const float *float_buffer, unsigned int w, unsigned int h, unsigned int channels)
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_makeSingleUser(ImBuf *ibuf)
void IMB_assign_float_buffer(ImBuf *ibuf, float *buffer_data, ImBufOwnership ownership)
void IMB_ImBufFromStereo3d(const Stereo3dFormat *s3d, ImBuf *ibuf_stereo3d, ImBuf **r_ibuf_left, ImBuf **r_ibuf_right)
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)
eIMBTransformMode
Transform modes to use for IMB_transform function.
@ IMB_TRANSFORM_MODE_WRAP_REPEAT
Wrap repeat the source buffer. Only supported in with nearest filtering.
@ IMB_TRANSFORM_MODE_REGULAR
Do not crop or repeat.
@ IMB_TRANSFORM_MODE_CROP_SRC
Crop the source buffer.
bool IMB_alpha_affects_rgb(const ImBuf *ibuf)
void IMB_unpremultiply_alpha(ImBuf *ibuf)
ImBuf * IMB_allocFromBufferOwn(uint8_t *byte_buffer, float *float_buffer, unsigned int w, unsigned int h, unsigned int channels)
bool IMB_alloc_byte_pixels(ImBuf *ibuf, bool initialize_pixels=true)
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_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_byte_from_float(ImBuf *ibuf)
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_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_free_all_data(ImBuf *ibuf)
void IMB_make_writable_float_buffer(ImBuf *ibuf)
void IMB_blend_color_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4], IMB_BlendMode mode)
void IMB_mask_clear(ImBuf *ibuf, const char *mask, int val)
void IMB_color_to_bw(ImBuf *ibuf)
void IMB_rect_crop(ImBuf *ibuf, const rcti *crop)
bool IMB_test_image_type_matches(const char *filepath, int filetype)
void IMB_rectclip(ImBuf *dbuf, const ImBuf *sbuf, int *destx, int *desty, int *srcx, int *srcy, int *width, int *height)
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_freeImBuf(ImBuf *ibuf)
void IMB_saturation(ImBuf *ibuf, float sat)
void IMB_stereo3d_read_dimensions(char mode, bool is_squeezed, size_t width, size_t height, size_t *r_width, size_t *r_height)
void * imb_alloc_pixels(unsigned int x, unsigned int y, unsigned int channels, size_t typesize, bool initialize_pixels, const char *alloc_name)
size_t IMB_get_pixel_count(const ImBuf *ibuf)
Get the length of the data of the given image buffer in pixels.
bool IMB_rotate_orthogonal(ImBuf *ibuf, int degrees)
ImBuf * IMB_stereo3d_ImBuf(const ImageFormatData *im_format, ImBuf *ibuf_left, ImBuf *ibuf_right)
ImBuf * IMB_allocImBuf(unsigned int x, unsigned int y, unsigned char planes, unsigned int flags)
void IMB_free_float_pixels(ImBuf *ibuf)
void IMB_refImBuf(ImBuf *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)
void IMB_free_byte_pixels(ImBuf *ibuf)
void IMB_update_gpu_texture_sub(blender::gpu::Texture *tex, ImBuf *ibuf, int x, int y, int z, int w, int h, bool use_high_bitdepth, bool use_grayscale, bool use_premult)
uint8_t * IMB_steal_encoded_buffer(ImBuf *ibuf)
void IMB_filtery(ImBuf *ibuf)
ImBuf * IMB_scale_into_new(const ImBuf *ibuf, unsigned int newx, unsigned int newy, IMBScaleFilter filter, bool threaded=true)
void IMB_blend_color_float(float dst[4], const float src1[4], const float src2[4], IMB_BlendMode mode)
blender::gpu::Texture * IMB_touch_gpu_texture(const char *name, ImBuf *ibuf, int w, int h, int layers, bool use_high_bitdepth, bool use_grayscale)
void IMB_rectfill(ImBuf *drect, const float col[4])
blender::gpu::TextureFormat IMB_gpu_get_texture_format(const ImBuf *ibuf, bool high_bitdepth, bool use_grayscale)
ImBuf * IMB_load_image_from_file_descriptor(const int file, const int flags, const char *filepath=nullptr, char r_colorspace[IM_MAX_SPACE]=nullptr)
void IMB_rectfill_area(ImBuf *ibuf, const float scene_linear_color[4], int x1, int y1, int x2, int y2)
void IMB_rect_size_set(ImBuf *ibuf, const uint size[2])
bool IMB_alloc_float_pixels(ImBuf *ibuf, const unsigned int channels, bool initialize_pixels=true)
void IMB_alpha_under_color_float(float *rect_float, int x, int y, float backcol[3])
bool IMB_initImBuf(ImBuf *ibuf, unsigned int x, unsigned int y, unsigned char planes, unsigned int flags)
void IMB_assign_byte_buffer(ImBuf *ibuf, uint8_t *buffer_data, ImBufOwnership ownership)
bool IMB_gpu_get_compressed_format(const ImBuf *ibuf, blender::gpu::TextureFormat *r_texture_format)
void IMB_rectcpy(ImBuf *dbuf, const ImBuf *sbuf, int destx, int desty, int srcx, int srcy, int width, int height)
void IMB_alpha_under_color_byte(unsigned char *rect, int x, int y, const float backcol[3])
void IMB_filter_extend(ImBuf *ibuf, char *mask, int filter)
bool IMB_save_image(ImBuf *ibuf, const char *filepath, const int flags)
void IMB_stereo3d_write_dimensions(char mode, bool is_squeezed, size_t width, size_t height, size_t *r_width, size_t *r_height)
bool IMB_test_image(const char *filepath)
bool IMB_scale(ImBuf *ibuf, unsigned int newx, unsigned int newy, IMBScaleFilter filter, bool threaded=true)
void IMB_float_from_byte(ImBuf *ibuf)
eIMBInterpolationFilterMode
@ IMB_FILTER_CUBIC_BSPLINE
@ IMB_FILTER_CUBIC_MITCHELL
size_t IMB_get_size_in_memory(const ImBuf *ibuf)
int IMB_test_image_type_from_memory(const unsigned char *buf, size_t buf_size)
void IMB_gpu_clamp_half_float(ImBuf *image_buffer)
BMesh const char void * data
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
constexpr T degrees(T) RET
ccl_device_inline float2 mask(const MaskType mask, const float2 a)
MatBase< float, 3, 3 > float3x3