49#define IM_MAX_SPACE 64
85 const size_t max_thumb_size,
99 ImBuf *ibuf,
unsigned int x,
unsigned int y,
unsigned char planes,
unsigned int flags);
115 const float *float_buffer,
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);
631 bool initialize_pixels,
632 const char *alloc_name);
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.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Brightness Control the brightness and contrast of the input color Vector Map input vector components with curves Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert Invert a producing a negative Combine Generate a color from its and blue channels(Deprecated)") DefNode(ShaderNode
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.
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
ccl_device_inline float4 mask(const int4 mask, const float4 a)