49#define IM_MAX_SPACE 64
85 const size_t max_thumb_size,
91ImBuf *
IMB_allocImBuf(
unsigned int x,
unsigned int y,
unsigned char planes,
unsigned int flags);
99 ImBuf *ibuf,
unsigned int x,
unsigned int y,
unsigned char planes,
unsigned int flags);
109 unsigned int channels);
115 const float *float_buffer,
118 unsigned int channels);
219 const unsigned char src1[4],
220 const unsigned char src2[4],
256 unsigned short *dmask,
257 const unsigned short *curvemask,
258 const unsigned short *texmask,
273 unsigned short *dmask,
274 const unsigned short *curvemask,
275 const unsigned short *texmask,
313 int proxy_sizes_in_use,
315 const bool overwrite,
317 bool build_only_on_bad_performance);
349 float *r_frs_sec_base);
376#define FILTER_MASK_NULL 0
377#define FILTER_MASK_MARGIN 1
378#define FILTER_MASK_USED 2
426 bool threaded =
true);
464 const float *rect_from,
478 const float *rect_from,
491 const unsigned char *rect_from,
503 const float *rect_from,
513 const float *rect_from,
526 const float *rect_from,
537 const unsigned char *rect_from,
606 const ImBuf *ibuf,
const float col[4],
int x1,
int y1,
int x2,
int y2);
629 unsigned int channels,
631 bool initialize_pixels,
632 const char *alloc_name);
641 const unsigned int channels,
642 bool initialize_pixels =
true);
662 void *init_customdata,
663 void(init_handle)(
void *handle,
int start_line,
int tot_line,
void *customdata),
664 void *(do_thread)(
void *));
708 const float transform_matrix[4][4],
709 const rctf *src_crop);
718 bool use_high_bitdepth,
741 bool use_high_bitdepth,
756 bool use_high_bitdepth,
761 char mode,
bool is_squeezed,
size_t width,
size_t height,
size_t *r_width,
size_t *r_height);
763 char mode,
bool is_squeezed,
size_t width,
size_t height,
size_t *r_width,
size_t *r_height);
784 ImBuf *ibuf_stereo3d,
786 ImBuf **r_ibuf_right);
#define ENUM_OPERATORS(_type, _max)
void IMB_flipy(ImBuf *ibuf)
ImBuf * IMB_loadifffile(int file, int flags, char colorspace[IM_MAX_SPACE], const char *descr)
bool IMB_anim_can_produce_frames(const ImBufAnim *anim)
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_freerectImBuf(ImBuf *ibuf)
void IMB_free_gpu_textures(ImBuf *ibuf)
ImBuf * IMB_onehalf(ImBuf *ibuf1)
int IMB_anim_get_image_height(ImBufAnim *anim)
const char * IMB_ffmpeg_last_error()
void IMB_rectfill_alpha(ImBuf *ibuf, float value)
void imb_freerectfloatImBuf(ImBuf *ibuf)
void IMB_anim_index_rebuild(IndexBuildContext *context, bool *stop, bool *do_update, float *progress)
bool IMB_saveiff(ImBuf *ibuf, const char *filepath, int flags)
size_t IMB_get_rect_len(const ImBuf *ibuf)
Get the length of the rect of the given image buffer in terms of pixels.
float * IMB_steal_float_buffer(ImBuf *ibuf)
void IMB_flipx(ImBuf *ibuf)
ImBuf * IMB_dupImBuf(const ImBuf *ibuf1)
ImBuf * IMB_testiffname(const char *filepath, int flags)
void IMB_make_writable_byte_buffer(ImBuf *ibuf)
void IMB_mask_filter_extend(char *mask, int width, int height)
uint8_t * IMB_steal_byte_buffer(ImBuf *ibuf)
int * IMB_stereo3d_from_rect(const ImageFormatData *im_format, size_t x, size_t y, size_t channels, int *rect_left, int *rect_right)
void IMB_assign_dds_data(ImBuf *ibuf, const DDSData &data, ImBufOwnership ownership)
ImBuf * IMB_anim_absolute(ImBufAnim *anim, int position, IMB_Timecode_Type tc, IMB_Proxy_Size preview_size)
void IMB_rect_from_float(ImBuf *ibuf)
void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, const float col[4], ColorManagedDisplay *display, int x1, int y1, int x2, int y2)
void IMB_float_from_rect_ex(ImBuf *dst, const ImBuf *src, const rcti *region_to_update)
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)
ImBuf * IMB_allocFromBuffer(const uint8_t *byte_buffer, const float *float_buffer, unsigned int w, unsigned int h, unsigned int channels)
double IMD_anim_get_offset(ImBufAnim *anim)
void IMB_anim_set_index_dir(ImBufAnim *anim, const char *dir)
GPUTexture * IMB_touch_gpu_texture(const char *name, ImBuf *ibuf, int w, int h, int layers, bool use_high_bitdepth, bool use_grayscale)
ImBuf * IMB_half_x(ImBuf *ibuf1)
void IMB_processor_apply_threaded(int buffer_lines, int handle_size, void *init_customdata, void(init_handle)(void *handle, int start_line, int tot_line, void *customdata), void *(do_thread)(void *))
ImBuf * IMB_makeSingleUser(ImBuf *ibuf)
void imb_freerectImbuf_all(ImBuf *ibuf)
void IMB_assign_float_buffer(ImBuf *ibuf, float *buffer_data, ImBufOwnership ownership)
ImBuf * IMB_half_y(ImBuf *ibuf1)
int IMB_anim_index_get_frame_index(ImBufAnim *anim, IMB_Timecode_Type tc, int position)
bool IMB_anim_get_fps(const ImBufAnim *anim, bool no_av_base, short *r_frs_sec, float *r_frs_sec_base)
void IMB_rectfill_area_replace(const ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2)
void IMB_makemipmap(ImBuf *ibuf, int use_filter)
void IMB_ImBufFromStereo3d(const Stereo3dFormat *s3d, ImBuf *ibuf_stereo3d, ImBuf **r_ibuf_left, ImBuf **r_ibuf_right)
ImBuf * IMB_ibImageFromMemory(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE], const char *descr)
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.
void(*)(void *custom_data, int scanline) ScanlineThreadFunc
void IMB_remakemipmap(ImBuf *ibuf, int use_filter)
bool IMB_alpha_affects_rgb(const ImBuf *ibuf)
void IMB_rectfill_area(ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2, ColorManagedDisplay *display)
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)
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_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)
int IMB_anim_get_image_width(ImBufAnim *anim)
void imb_freemipmapImBuf(ImBuf *ibuf)
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)
ImBuf * IMB_anim_previewframe(ImBufAnim *anim)
int IMB_ispic_type(const char *filepath)
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)
eGPUTextureFormat IMB_gpu_get_texture_format(const ImBuf *ibuf, bool high_bitdepth, bool use_grayscale)
void IMB_color_to_bw(ImBuf *ibuf)
void IMB_rect_crop(ImBuf *ibuf, const rcti *crop)
ImBuf * IMB_loadiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE])
int IMB_anim_proxy_get_existing(ImBufAnim *anim)
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_anim_index_rebuild_finish(IndexBuildContext *context, bool stop)
void IMB_rectclip(ImBuf *dbuf, const ImBuf *sbuf, int *destx, int *desty, int *srcx, int *srcy, int *width, int *height)
void IMB_processor_apply_threaded_scanlines(int total_scanlines, ScanlineThreadFunc do_thread, void *custom_data)
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)
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_free_anim(ImBufAnim *anim)
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)
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_convert_rgba_to_abgr(ImBuf *ibuf)
bool IMB_isanim(const char *filepath)
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)
int IMB_ispic_type_from_memory(const unsigned char *buf, size_t buf_size)
uint8_t * IMB_steal_encoded_buffer(ImBuf *ibuf)
bool imb_addrectImBuf(ImBuf *ibuf, bool initialize_pixels=true)
void IMB_filtery(ImBuf *ibuf)
void IMB_blend_color_float(float dst[4], const float src1[4], const float src2[4], IMB_BlendMode mode)
void IMB_rectfill(ImBuf *drect, const float col[4])
void IMB_rect_size_set(ImBuf *ibuf, const uint size[2])
IndexBuildContext * IMB_anim_index_rebuild_context(ImBufAnim *anim, IMB_Timecode_Type tcs_in_use, int proxy_sizes_in_use, int quality, const bool overwrite, GSet *file_list, bool build_only_on_bad_performance)
ImBufAnim * IMB_open_anim(const char *filepath, int ib_flags, int streamindex, char colorspace[IM_MAX_SPACE])
float * IMB_stereo3d_from_rectf(const ImageFormatData *im_format, size_t x, size_t y, size_t channels, float *rectf_left, float *rectf_right)
void IMB_close_anim(ImBufAnim *anim)
void IMB_alpha_under_color_float(float *rect_float, int x, int y, float backcol[3])
void IMB_transform(const ImBuf *src, ImBuf *dst, eIMBTransformMode mode, eIMBInterpolationFilterMode filter, const float transform_matrix[4][4], const rctf *src_crop)
Transform source image buffer onto destination image buffer using a transform matrix.
void IMB_close_anim_proxies(ImBufAnim *anim)
bool IMB_get_gop_decode_time(ImBufAnim *anim)
bool IMB_initImBuf(ImBuf *ibuf, unsigned int x, unsigned int y, unsigned char planes, unsigned int flags)
bool IMB_ispic_type_matches(const char *filepath, int filetype)
void IMB_assign_byte_buffer(ImBuf *ibuf, uint8_t *buffer_data, ImBufOwnership ownership)
ImBuf * IMB_thumb_load_image(const char *filepath, const size_t max_thumb_size, char colorspace[IM_MAX_SPACE], IMBThumbLoadFlags load_flags=IMBThumbLoadFlags::Zero)
void IMB_rectcpy(ImBuf *dbuf, const ImBuf *sbuf, int destx, int desty, int srcx, int srcy, int width, int height)
void IMB_anim_get_filename(ImBufAnim *anim, char *filename, int filename_maxncpy)
void IMB_alpha_under_color_byte(unsigned char *rect, int x, int y, const float backcol[3])
bool IMB_ispic(const char *filepath)
size_t IMB_get_size_in_memory(ImBuf *ibuf)
void IMB_filter_extend(ImBuf *ibuf, char *mask, int filter)
GPUTexture * IMB_create_gpu_texture(const char *name, ImBuf *ibuf, bool use_high_bitdepth, bool use_premult)
ImBuf * IMB_getmipmap(ImBuf *ibuf, int level)
void IMB_float_from_rect(ImBuf *ibuf)
void IMB_stereo3d_write_dimensions(char mode, bool is_squeezed, size_t width, size_t height, size_t *r_width, size_t *r_height)
int IMB_anim_get_duration(ImBufAnim *anim, IMB_Timecode_Type tc)
bool IMB_scale(ImBuf *ibuf, unsigned int newx, unsigned int newy, IMBScaleFilter filter, bool threaded=true)
void IMB_suffix_anim(ImBufAnim *anim, const char *suffix)
eIMBInterpolationFilterMode
@ IMB_FILTER_CUBIC_BSPLINE
@ IMB_FILTER_CUBIC_MITCHELL
bool imb_addrectfloatImBuf(ImBuf *ibuf, const unsigned int channels, bool initialize_pixels=true)
void IMB_gpu_clamp_half_float(ImBuf *image_buffer)
Contains defines and structs used throughout the imbuf module.
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.