Blender V4.3
IMB_imbuf.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2001-2002 NaN Holding BV. All rights reserved.
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
8
40
41#pragma once
42
43#include "../gpu/GPU_texture.hh"
44
45#include "BLI_utildefines.h"
46
47#include "IMB_imbuf_types.hh"
48
49#define IM_MAX_SPACE 64
50
51struct ImBuf;
52struct rctf;
53struct rcti;
54
55struct ImBufAnim;
56
58
59struct GSet;
60struct ImageFormatData;
61struct Stereo3dFormat;
62
63void IMB_init();
64void IMB_exit();
65
66ImBuf *IMB_ibImageFromMemory(const unsigned char *mem,
67 size_t size,
68 int flags,
69 char colorspace[IM_MAX_SPACE],
70 const char *descr);
71
72ImBuf *IMB_testiffname(const char *filepath, int flags);
73
74ImBuf *IMB_loadiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE]);
75
77 Zero = 0,
80 LoadLargeFiles = (1 << 0),
81};
83
84ImBuf *IMB_thumb_load_image(const char *filepath,
85 const size_t max_thumb_size,
86 char colorspace[IM_MAX_SPACE],
88
89void IMB_freeImBuf(ImBuf *ibuf);
90
91ImBuf *IMB_allocImBuf(unsigned int x, unsigned int y, unsigned char planes, unsigned int flags);
92
98bool IMB_initImBuf(
99 ImBuf *ibuf, unsigned int x, unsigned int y, unsigned char planes, unsigned int flags);
100
106 float *float_buffer,
107 unsigned int w,
108 unsigned int h,
109 unsigned int channels);
110
114ImBuf *IMB_allocFromBuffer(const uint8_t *byte_buffer,
115 const float *float_buffer,
116 unsigned int w,
117 unsigned int h,
118 unsigned int channels);
119
127void IMB_assign_byte_buffer(ImBuf *ibuf, uint8_t *buffer_data, ImBufOwnership ownership);
128void IMB_assign_float_buffer(ImBuf *ibuf, float *buffer_data, ImBufOwnership ownership);
129
139void IMB_assign_byte_buffer(ImBuf *ibuf, const ImBufByteBuffer &buffer, ImBufOwnership ownership);
141 const ImBufFloatBuffer &buffer,
142 ImBufOwnership ownership);
143void IMB_assign_dds_data(ImBuf *ibuf, const DDSData &data, ImBufOwnership ownership);
144
151
158float *IMB_steal_float_buffer(ImBuf *ibuf);
160
166
167void IMB_refImBuf(ImBuf *ibuf);
169
170ImBuf *IMB_dupImBuf(const ImBuf *ibuf1);
171
175size_t IMB_get_size_in_memory(ImBuf *ibuf);
176
184size_t IMB_get_rect_len(const ImBuf *ibuf);
185
217
218void IMB_blend_color_byte(unsigned char dst[4],
219 const unsigned char src1[4],
220 const unsigned char src2[4],
221 IMB_BlendMode mode);
222void IMB_blend_color_float(float dst[4],
223 const float src1[4],
224 const float src2[4],
225 IMB_BlendMode mode);
226
230void IMB_rect_crop(ImBuf *ibuf, const rcti *crop);
231
235void IMB_rect_size_set(ImBuf *ibuf, const uint size[2]);
236
237void IMB_rectclip(ImBuf *dbuf,
238 const ImBuf *sbuf,
239 int *destx,
240 int *desty,
241 int *srcx,
242 int *srcy,
243 int *width,
244 int *height);
245void IMB_rectcpy(ImBuf *dbuf,
246 const ImBuf *sbuf,
247 int destx,
248 int desty,
249 int srcx,
250 int srcy,
251 int width,
252 int height);
253void IMB_rectblend(ImBuf *dbuf,
254 const ImBuf *obuf,
255 const ImBuf *sbuf,
256 unsigned short *dmask,
257 const unsigned short *curvemask,
258 const unsigned short *texmask,
259 float mask_max,
260 int destx,
261 int desty,
262 int origx,
263 int origy,
264 int srcx,
265 int srcy,
266 int width,
267 int height,
268 IMB_BlendMode mode,
269 bool accumulate);
271 const ImBuf *obuf,
272 const ImBuf *sbuf,
273 unsigned short *dmask,
274 const unsigned short *curvemask,
275 const unsigned short *texmask,
276 float mask_max,
277 int destx,
278 int desty,
279 int origx,
280 int origy,
281 int srcx,
282 int srcy,
283 int width,
284 int height,
285 IMB_BlendMode mode,
286 bool accumulate);
287
295
299void IMB_anim_set_index_dir(ImBufAnim *anim, const char *dir);
300void IMB_anim_get_filename(ImBufAnim *anim, char *filename, int filename_maxncpy);
301
303
305
306struct IndexBuildContext;
307
312 IMB_Timecode_Type tcs_in_use,
313 int proxy_sizes_in_use,
314 int quality,
315 const bool overwrite,
316 GSet *file_list,
317 bool build_only_on_bad_performance);
318
323 bool *stop,
324 bool *do_update,
325 float *progress);
326
330void IMB_anim_index_rebuild_finish(IndexBuildContext *context, bool stop);
331
336
340double IMD_anim_get_offset(ImBufAnim *anim);
341
346bool IMB_anim_get_fps(const ImBufAnim *anim,
347 bool no_av_base,
348 short *r_frs_sec,
349 float *r_frs_sec_base);
350
351ImBufAnim *IMB_open_anim(const char *filepath,
352 int ib_flags,
353 int streamindex,
354 char colorspace[IM_MAX_SPACE]);
355void IMB_suffix_anim(ImBufAnim *anim, const char *suffix);
356void IMB_close_anim(ImBufAnim *anim);
358bool IMB_anim_can_produce_frames(const ImBufAnim *anim);
359
363
365 int position,
366 IMB_Timecode_Type tc /* = 1 = IMB_TC_RECORD_RUN */,
367 IMB_Proxy_Size preview_size /* = 0 = IMB_PROXY_NONE */);
368
373
374void IMB_free_anim(ImBufAnim *anim);
375
376#define FILTER_MASK_NULL 0
377#define FILTER_MASK_MARGIN 1
378#define FILTER_MASK_USED 2
379
380void IMB_mask_filter_extend(char *mask, int width, int height);
381void IMB_mask_clear(ImBuf *ibuf, const char *mask, int val);
388void IMB_filter_extend(ImBuf *ibuf, char *mask, int filter);
392void IMB_makemipmap(ImBuf *ibuf, int use_filter);
396void IMB_remakemipmap(ImBuf *ibuf, int use_filter);
397ImBuf *IMB_getmipmap(ImBuf *ibuf, int level);
398
399void IMB_filtery(ImBuf *ibuf);
400
401ImBuf *IMB_onehalf(ImBuf *ibuf1);
402
417
422bool IMB_scale(ImBuf *ibuf,
423 unsigned int newx,
424 unsigned int newy,
426 bool threaded = true);
427
428bool IMB_saveiff(ImBuf *ibuf, const char *filepath, int flags);
429
430bool IMB_ispic(const char *filepath);
431bool IMB_ispic_type_matches(const char *filepath, int filetype);
432int IMB_ispic_type_from_memory(const unsigned char *buf, size_t buf_size);
433int IMB_ispic_type(const char *filepath);
434
439bool IMB_isanim(const char *filepath);
440
444bool IMB_alpha_affects_rgb(const ImBuf *ibuf);
445
449void IMB_rect_from_float(ImBuf *ibuf);
450void IMB_float_from_rect_ex(ImBuf *dst, const ImBuf *src, const rcti *region_to_update);
451void IMB_float_from_rect(ImBuf *ibuf);
455void IMB_color_to_bw(ImBuf *ibuf);
456void IMB_saturation(ImBuf *ibuf, float sat);
457
458/* Converting pixel buffers. */
459
463void IMB_buffer_byte_from_float(unsigned char *rect_to,
464 const float *rect_from,
465 int channels_from,
466 float dither,
467 int profile_to,
468 int profile_from,
469 bool predivide,
470 int width,
471 int height,
472 int stride_to,
473 int stride_from);
477void IMB_buffer_byte_from_float_mask(unsigned char *rect_to,
478 const float *rect_from,
479 int channels_from,
480 float dither,
481 bool predivide,
482 int width,
483 int height,
484 int stride_to,
485 int stride_from,
486 char *mask);
490void IMB_buffer_float_from_byte(float *rect_to,
491 const unsigned char *rect_from,
492 int profile_to,
493 int profile_from,
494 bool predivide,
495 int width,
496 int height,
497 int stride_to,
498 int stride_from);
502void IMB_buffer_float_from_float(float *rect_to,
503 const float *rect_from,
504 int channels_from,
505 int profile_to,
506 int profile_from,
507 bool predivide,
508 int width,
509 int height,
510 int stride_to,
511 int stride_from);
512void IMB_buffer_float_from_float_threaded(float *rect_to,
513 const float *rect_from,
514 int channels_from,
515 int profile_to,
516 int profile_from,
517 bool predivide,
518 int width,
519 int height,
520 int stride_to,
521 int stride_from);
525void IMB_buffer_float_from_float_mask(float *rect_to,
526 const float *rect_from,
527 int channels_from,
528 int width,
529 int height,
530 int stride_to,
531 int stride_from,
532 char *mask);
536void IMB_buffer_byte_from_byte(unsigned char *rect_to,
537 const unsigned char *rect_from,
538 int profile_to,
539 int profile_from,
540 bool predivide,
541 int width,
542 int height,
543 int stride_to,
544 int stride_from);
545
553
554void IMB_alpha_under_color_float(float *rect_float, int x, int y, float backcol[3]);
555void IMB_alpha_under_color_byte(unsigned char *rect, int x, int y, const float backcol[3]);
556
557ImBuf *IMB_loadifffile(int file, int flags, char colorspace[IM_MAX_SPACE], const char *descr);
558
559ImBuf *IMB_half_x(ImBuf *ibuf1);
560ImBuf *IMB_half_y(ImBuf *ibuf1);
561
562void IMB_flipx(ImBuf *ibuf);
563void IMB_flipy(ImBuf *ibuf);
564
565/* Rotate by 90 degree increments. Returns true if the ImBuf is altered. */
566bool IMB_rotate_orthogonal(ImBuf *ibuf, int degrees);
567
568/* Pre-multiply alpha. */
569
570void IMB_premultiply_alpha(ImBuf *ibuf);
572
578void IMB_rectfill(ImBuf *drect, const float col[4]);
595 ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2, ColorManagedDisplay *display);
606 const ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2);
607void IMB_rectfill_alpha(ImBuf *ibuf, float value);
608
613void buf_rectfill_area(unsigned char *rect,
614 float *rectf,
615 int width,
616 int height,
617 const float col[4],
618 ColorManagedDisplay *display,
619 int x1,
620 int y1,
621 int x2,
622 int y2);
623
627void *imb_alloc_pixels(unsigned int x,
628 unsigned int y,
629 unsigned int channels,
630 size_t typesize,
631 bool initialize_pixels,
632 const char *alloc_name);
633
634bool imb_addrectImBuf(ImBuf *ibuf, bool initialize_pixels = true);
638void imb_freerectImBuf(ImBuf *ibuf);
639
641 const unsigned int channels,
642 bool initialize_pixels = true);
646void imb_freerectfloatImBuf(ImBuf *ibuf);
647void imb_freemipmapImBuf(ImBuf *ibuf);
648
650void imb_freerectImbuf_all(ImBuf *ibuf);
651
652/* Free the GPU textures of the given image buffer, leaving the CPU buffers unchanged.
653 * The ibuf can be nullptr, in which case the function does nothing. */
654void IMB_free_gpu_textures(ImBuf *ibuf);
655
660 int buffer_lines,
661 int handle_size,
662 void *init_customdata,
663 void(init_handle)(void *handle, int start_line, int tot_line, void *customdata),
664 void *(do_thread)(void *));
665
666using ScanlineThreadFunc = void (*)(void *custom_data, int scanline);
667void IMB_processor_apply_threaded_scanlines(int total_scanlines,
668 ScanlineThreadFunc do_thread,
669 void *custom_data);
670
684
704void IMB_transform(const ImBuf *src,
705 ImBuf *dst,
708 const float transform_matrix[4][4],
709 const rctf *src_crop);
710
711/* FFMPEG */
712
715
716GPUTexture *IMB_create_gpu_texture(const char *name,
717 ImBuf *ibuf,
718 bool use_high_bitdepth,
719 bool use_premult);
720
722 bool high_bitdepth,
723 bool use_grayscale);
724
730void IMB_gpu_clamp_half_float(ImBuf *image_buffer);
731
736GPUTexture *IMB_touch_gpu_texture(const char *name,
737 ImBuf *ibuf,
738 int w,
739 int h,
740 int layers,
741 bool use_high_bitdepth,
742 bool use_grayscale);
743
749void IMB_update_gpu_texture_sub(GPUTexture *tex,
750 ImBuf *ibuf,
751 int x,
752 int y,
753 int z,
754 int w,
755 int h,
756 bool use_high_bitdepth,
757 bool use_grayscale,
758 bool use_premult);
759
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);
764int *IMB_stereo3d_from_rect(const ImageFormatData *im_format,
765 size_t x,
766 size_t y,
767 size_t channels,
768 int *rect_left,
769 int *rect_right);
770float *IMB_stereo3d_from_rectf(const ImageFormatData *im_format,
771 size_t x,
772 size_t y,
773 size_t channels,
774 float *rectf_left,
775 float *rectf_right);
779ImBuf *IMB_stereo3d_ImBuf(const ImageFormatData *im_format, ImBuf *ibuf_left, ImBuf *ibuf_right);
784 ImBuf *ibuf_stereo3d,
785 ImBuf **r_ibuf_left,
786 ImBuf **r_ibuf_right);
struct GSet GSet
Definition BLI_ghash.h:341
unsigned int uint
#define ENUM_OPERATORS(_type, _max)
eGPUTextureFormat
void IMB_flipy(ImBuf *ibuf)
ImBuf * IMB_loadifffile(int file, int flags, char colorspace[IM_MAX_SPACE], const char *descr)
Definition readimage.cc:118
void IMB_exit()
Definition module.cc:26
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)
Definition divers.cc:572
void IMB_premultiply_alpha(ImBuf *ibuf)
Definition filter.cc:579
void imb_freerectImBuf(ImBuf *ibuf)
void IMB_free_gpu_textures(ImBuf *ibuf)
ImBuf * IMB_onehalf(ImBuf *ibuf1)
Definition scaling.cc:314
int IMB_anim_get_image_height(ImBufAnim *anim)
const char * IMB_ffmpeg_last_error()
void IMB_rectfill_alpha(ImBuf *ibuf, float value)
Definition rectop.cc:1259
void imb_freerectfloatImBuf(ImBuf *ibuf)
void IMB_anim_index_rebuild(IndexBuildContext *context, bool *stop, bool *do_update, float *progress)
Definition indexer.cc:1283
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)
Definition readimage.cc:227
void IMB_make_writable_byte_buffer(ImBuf *ibuf)
void IMB_mask_filter_extend(char *mask, int width, int height)
Definition filter.cc:219
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)
Definition divers.cc:694
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)
Definition rectop.cc:1130
void IMB_float_from_rect_ex(ImBuf *dst, const ImBuf *src, const rcti *region_to_update)
Definition divers.cc:748
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 rectop.cc:992
ImBuf * IMB_allocFromBuffer(const uint8_t *byte_buffer, const float *float_buffer, unsigned int w, unsigned int h, unsigned int channels)
IMBScaleFilter
Definition IMB_imbuf.hh:404
double IMD_anim_get_offset(ImBufAnim *anim)
void IMB_anim_set_index_dir(ImBufAnim *anim, const char *dir)
Definition indexer.cc:1336
GPUTexture * IMB_touch_gpu_texture(const char *name, ImBuf *ibuf, int w, int h, int layers, bool use_high_bitdepth, bool use_grayscale)
Definition util_gpu.cc:255
ImBuf * IMB_half_x(ImBuf *ibuf1)
Definition scaling.cc:88
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)
Definition scaling.cc:180
int IMB_anim_index_get_frame_index(ImBufAnim *anim, IMB_Timecode_Type tc, int position)
Definition indexer.cc:1402
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)
Definition rectop.cc:1083
void IMB_makemipmap(ImBuf *ibuf, int use_filter)
Definition filter.cc:490
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.
Definition IMB_imbuf.hh:676
@ IMB_TRANSFORM_MODE_WRAP_REPEAT
Wrap repeat the source buffer. Only supported in with nearest filtering.
Definition IMB_imbuf.hh:682
@ IMB_TRANSFORM_MODE_REGULAR
Do not crop or repeat.
Definition IMB_imbuf.hh:678
@ IMB_TRANSFORM_MODE_CROP_SRC
Crop the source buffer.
Definition IMB_imbuf.hh:680
void(*)(void *custom_data, int scanline) ScanlineThreadFunc
Definition IMB_imbuf.hh:666
void IMB_remakemipmap(ImBuf *ibuf, int use_filter)
Definition filter.cc:454
bool IMB_alpha_affects_rgb(const ImBuf *ibuf)
Definition divers.cc:91
void IMB_rectfill_area(ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2, ColorManagedDisplay *display)
Definition rectop.cc:1241
void IMB_unpremultiply_alpha(ImBuf *ibuf)
Definition filter.cc:641
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)
Definition divers.cc:625
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)
Definition divers.cc:348
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)
Definition divers.cc:407
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)
Definition divers.cc:260
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)
Definition rectop.cc:27
void IMB_mask_clear(ImBuf *ibuf, const char *mask, int val)
Definition filter.cc:263
eGPUTextureFormat IMB_gpu_get_texture_format(const ImBuf *ibuf, bool high_bitdepth, bool use_grayscale)
Definition util_gpu.cc:395
void IMB_color_to_bw(ImBuf *ibuf)
Definition divers.cc:838
void IMB_rect_crop(ImBuf *ibuf, const rcti *crop)
Definition rectop.cc:240
ImBuf * IMB_loadiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE])
Definition readimage.cc:146
void IMB_ffmpeg_init()
int IMB_anim_proxy_get_existing(ImBufAnim *anim)
Definition indexer.cc:1413
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)
Definition util_gpu.cc:281
void IMB_anim_index_rebuild_finish(IndexBuildContext *context, bool stop)
Definition indexer.cc:1301
void IMB_rectclip(ImBuf *dbuf, const ImBuf *sbuf, int *destx, int *desty, int *srcx, int *srcy, int *width, int *height)
Definition rectop.cc:306
void IMB_processor_apply_threaded_scanlines(int total_scanlines, ScanlineThreadFunc do_thread, void *custom_data)
void IMB_init()
Definition module.cc:18
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)
Definition divers.cc:96
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 divers.cc:534
#define IM_MAX_SPACE
Definition IMB_imbuf.hh:49
void IMB_free_anim(ImBufAnim *anim)
Definition anim_movie.cc:60
IMB_BlendMode
Definition IMB_imbuf.hh:186
@ IMB_BLEND_EXCLUSION
Definition IMB_imbuf.hh:206
@ IMB_BLEND_DIFFERENCE
Definition IMB_imbuf.hh:205
@ IMB_BLEND_HARDLIGHT
Definition IMB_imbuf.hh:196
@ IMB_BLEND_COLORBURN
Definition IMB_imbuf.hh:197
@ IMB_BLEND_COLORDODGE
Definition IMB_imbuf.hh:199
@ IMB_BLEND_ERASE_ALPHA
Definition IMB_imbuf.hh:193
@ IMB_BLEND_SCREEN
Definition IMB_imbuf.hh:200
@ IMB_BLEND_HUE
Definition IMB_imbuf.hh:207
@ IMB_BLEND_MUL
Definition IMB_imbuf.hh:190
@ IMB_BLEND_ADD_ALPHA
Definition IMB_imbuf.hh:194
@ IMB_BLEND_DARKEN
Definition IMB_imbuf.hh:192
@ IMB_BLEND_OVERLAY
Definition IMB_imbuf.hh:195
@ IMB_BLEND_SATURATION
Definition IMB_imbuf.hh:208
@ IMB_BLEND_VIVIDLIGHT
Definition IMB_imbuf.hh:203
@ IMB_BLEND_LUMINOSITY
Definition IMB_imbuf.hh:209
@ IMB_BLEND_LIGHTEN
Definition IMB_imbuf.hh:191
@ IMB_BLEND_SOFTLIGHT
Definition IMB_imbuf.hh:201
@ IMB_BLEND_COPY_RGB
Definition IMB_imbuf.hh:214
@ IMB_BLEND_COLOR
Definition IMB_imbuf.hh:210
@ IMB_BLEND_LINEARLIGHT
Definition IMB_imbuf.hh:204
@ IMB_BLEND_COPY_ALPHA
Definition IMB_imbuf.hh:215
@ IMB_BLEND_PINLIGHT
Definition IMB_imbuf.hh:202
@ IMB_BLEND_MIX
Definition IMB_imbuf.hh:187
@ IMB_BLEND_COPY
Definition IMB_imbuf.hh:213
@ IMB_BLEND_INTERPOLATE
Definition IMB_imbuf.hh:211
@ IMB_BLEND_ADD
Definition IMB_imbuf.hh:188
@ IMB_BLEND_SUB
Definition IMB_imbuf.hh:189
@ IMB_BLEND_LINEARBURN
Definition IMB_imbuf.hh:198
void IMB_freeImBuf(ImBuf *ibuf)
void IMB_saturation(ImBuf *ibuf, float sat)
Definition divers.cc:865
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)
Definition rectop.cc:494
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)
Definition filter.cc:65
void IMB_blend_color_float(float dst[4], const float src1[4], const float src2[4], IMB_BlendMode mode)
Definition rectop.cc:115
void IMB_rectfill(ImBuf *drect, const float col[4])
Definition rectop.cc:1051
void IMB_rect_size_set(ImBuf *ibuf, const uint size[2])
Definition rectop.cc:287
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)
Definition indexer.cc:1212
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)
IMBThumbLoadFlags
Definition IMB_imbuf.hh:76
void IMB_close_anim(ImBufAnim *anim)
Definition anim_movie.cc:76
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)
Definition anim_movie.cc:85
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)
Definition readimage.cc:169
void IMB_rectcpy(ImBuf *dbuf, const ImBuf *sbuf, int destx, int desty, int srcx, int srcy, int width, int height)
Definition rectop.cc:463
void IMB_anim_get_filename(ImBufAnim *anim, char *filename, int filename_maxncpy)
Definition indexer.cc:381
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)
Definition filter.cc:319
GPUTexture * IMB_create_gpu_texture(const char *name, ImBuf *ibuf, bool use_high_bitdepth, bool use_premult)
Definition util_gpu.cc:312
ImBuf * IMB_getmipmap(ImBuf *ibuf, int level)
Definition filter.cc:527
void IMB_float_from_rect(ImBuf *ibuf)
Definition divers.cc:802
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)
Definition scaling.cc:779
void IMB_suffix_anim(ImBufAnim *anim, const char *suffix)
eIMBInterpolationFilterMode
Definition IMB_imbuf.hh:288
@ IMB_FILTER_NEAREST
Definition IMB_imbuf.hh:289
@ IMB_FILTER_CUBIC_BSPLINE
Definition IMB_imbuf.hh:291
@ IMB_FILTER_CUBIC_MITCHELL
Definition IMB_imbuf.hh:292
@ IMB_FILTER_BILINEAR
Definition IMB_imbuf.hh:290
@ IMB_FILTER_BOX
Definition IMB_imbuf.hh:293
bool imb_addrectfloatImBuf(ImBuf *ibuf, const unsigned int channels, bool initialize_pixels=true)
void IMB_gpu_clamp_half_float(ImBuf *image_buffer)
Definition util_gpu.cc:404
IMB_Proxy_Size
IMB_Timecode_Type
Contains defines and structs used throughout the imbuf module.
ImBufOwnership
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)
Definition btDbvt.cpp:52
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
Definition btQuadWord.h:117
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
Definition btQuadWord.h:119
uint col
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
ccl_device_inline float4 mask(const int4 mask, const float4 a)
unsigned char uint8_t
Definition stdint.h:78