Blender  V2.93
IMB_imbuf.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or
3  * modify it under the terms of the GNU General Public License
4  * as published by the Free Software Foundation; either version 2
5  * of the License, or (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program; if not, write to the Free Software Foundation,
14  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
15  *
16  * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
17  * All rights reserved.
18  */
19 
56 #pragma once
57 
58 /* for bool */
59 #include "../blenlib/BLI_sys_types.h"
60 
61 #ifdef __cplusplus
62 extern "C" {
63 #endif
64 
65 #define IM_MAX_SPACE 64
66 
71 struct ImBuf;
72 struct rcti;
73 
78 struct anim;
79 
80 struct ColorManagedDisplay;
81 
82 struct GSet;
87 struct ImageFormatData;
88 struct Stereo3dFormat;
89 
94 struct GPUTexture;
95 
100 void IMB_init(void);
101 void IMB_exit(void);
102 
107 struct ImBuf *IMB_ibImageFromMemory(const unsigned char *mem,
108  size_t size,
109  int flags,
110  char colorspace[IM_MAX_SPACE],
111  const char *descr);
112 
117 struct ImBuf *IMB_testiffname(const char *filepath, int flags);
118 
123 struct ImBuf *IMB_loadiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE]);
124 
129 void IMB_freeImBuf(struct ImBuf *ibuf);
130 
135 struct ImBuf *IMB_allocImBuf(unsigned int x,
136  unsigned int y,
137  unsigned char planes,
138  unsigned int flags);
139 
147 bool IMB_initImBuf(
148  struct ImBuf *ibuf, unsigned int x, unsigned int y, unsigned char planes, unsigned int flags);
149 
154 struct ImBuf *IMB_allocFromBuffer(const unsigned int *rect,
155  const float *rectf,
156  unsigned int w,
157  unsigned int h,
158  unsigned int channels);
159 
169 void IMB_refImBuf(struct ImBuf *ibuf);
170 struct ImBuf *IMB_makeSingleUser(struct ImBuf *ibuf);
171 
176 struct ImBuf *IMB_dupImBuf(const struct ImBuf *ibuf1);
177 
182 bool addzbufImBuf(struct ImBuf *ibuf);
183 bool addzbuffloatImBuf(struct ImBuf *ibuf);
184 
190 size_t IMB_get_size_in_memory(struct ImBuf *ibuf);
191 
197 typedef enum IMB_BlendMode {
223 
228 
229 void IMB_blend_color_byte(unsigned char dst[4],
230  const unsigned char src1[4],
231  const unsigned char src2[4],
232  IMB_BlendMode mode);
233 void IMB_blend_color_float(float dst[4],
234  const float src1[4],
235  const float src2[4],
236  IMB_BlendMode mode);
237 
238 void IMB_rect_crop(struct ImBuf *ibuf, const struct rcti *crop);
239 
240 void IMB_rect_size_set(struct ImBuf *ibuf, const uint size[2]);
241 
242 void IMB_rectclip(struct ImBuf *dbuf,
243  const struct ImBuf *sbuf,
244  int *destx,
245  int *desty,
246  int *srcx,
247  int *srcy,
248  int *width,
249  int *height);
250 void IMB_rectcpy(struct ImBuf *dbuf,
251  const struct ImBuf *sbuf,
252  int destx,
253  int desty,
254  int srcx,
255  int srcy,
256  int width,
257  int height);
258 void IMB_rectblend(struct ImBuf *dbuf,
259  const struct ImBuf *obuf,
260  const struct ImBuf *sbuf,
261  unsigned short *dmask,
262  const unsigned short *curvemask,
263  const unsigned short *texmask,
264  float mask_max,
265  int destx,
266  int desty,
267  int origx,
268  int origy,
269  int srcx,
270  int srcy,
271  int width,
272  int height,
273  IMB_BlendMode mode,
274  bool accumulate);
275 void IMB_rectblend_threaded(struct ImBuf *dbuf,
276  const struct ImBuf *obuf,
277  const struct ImBuf *sbuf,
278  unsigned short *dmask,
279  const unsigned short *curvemask,
280  const unsigned short *texmask,
281  float mask_max,
282  int destx,
283  int desty,
284  int origx,
285  int origy,
286  int srcx,
287  int srcy,
288  int width,
289  int height,
290  IMB_BlendMode mode,
291  bool accumulate);
292 
298 typedef enum IMB_Timecode_Type {
316 
317 typedef enum IMB_Proxy_Size {
325 
326 /* Defaults to BL_proxy within the directory of the animation. */
327 void IMB_anim_set_index_dir(struct anim *anim, const char *dir);
328 void IMB_anim_get_fname(struct anim *anim, char *file, int size);
329 
330 int IMB_anim_index_get_frame_index(struct anim *anim, IMB_Timecode_Type tc, int position);
331 
333 
334 struct IndexBuildContext;
335 
336 /* Prepare context for proxies/time-codes builder. */
338  IMB_Timecode_Type tcs_in_use,
339  IMB_Proxy_Size proxy_sizes_in_use,
340  int quality,
341  const bool overwrite,
342  struct GSet *file_list);
343 
344 /* Will rebuild all used indices and proxies at once. */
346  short *stop,
347  short *do_update,
348  float *progress);
349 
350 /* Finish rebuilding proxies/time-codes and free temporary contexts used. */
352 
357 
361 double IMD_anim_get_offset(struct anim *anim);
362 
367 bool IMB_anim_get_fps(struct anim *anim, short *frs_sec, float *frs_sec_base, bool no_av_base);
368 
373 struct anim *IMB_open_anim(const char *name,
374  int ib_flags,
375  int streamindex,
376  char colorspace[IM_MAX_SPACE]);
377 void IMB_suffix_anim(struct anim *anim, const char *suffix);
378 void IMB_close_anim(struct anim *anim);
379 void IMB_close_anim_proxies(struct anim *anim);
380 bool IMB_anim_can_produce_frames(const struct anim *anim);
381 
387 int ismovie(const char *filepath);
388 int IMB_anim_get_image_width(struct anim *anim);
389 int IMB_anim_get_image_height(struct anim *anim);
390 
396 struct ImBuf *IMB_anim_absolute(struct anim *anim,
397  int position,
398  IMB_Timecode_Type tc /* = 1 = IMB_TC_RECORD_RUN */,
399  IMB_Proxy_Size preview_size /* = 0 = IMB_PROXY_NONE */);
400 
406 struct ImBuf *IMB_anim_previewframe(struct anim *anim);
407 
412 void IMB_free_anim(struct anim *anim);
413 
419 #define FILTER_MASK_NULL 0
420 #define FILTER_MASK_MARGIN 1
421 #define FILTER_MASK_USED 2
422 
423 void IMB_filter(struct ImBuf *ibuf);
424 void IMB_mask_filter_extend(char *mask, int width, int height);
425 void IMB_mask_clear(struct ImBuf *ibuf, const char *mask, int val);
426 void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter);
427 void IMB_makemipmap(struct ImBuf *ibuf, int use_filter);
428 void IMB_remakemipmap(struct ImBuf *ibuf, int use_filter);
429 struct ImBuf *IMB_getmipmap(struct ImBuf *ibuf, int level);
430 
436 void IMB_tile_cache_params(int totthread, int maxmem);
437 unsigned int *IMB_gettile(struct ImBuf *ibuf, int tx, int ty, int thread);
438 void IMB_tiles_to_rect(struct ImBuf *ibuf);
439 
444 void IMB_filtery(struct ImBuf *ibuf);
445 
450 struct ImBuf *IMB_onehalf(struct ImBuf *ibuf1);
451 
456 bool IMB_scaleImBuf(struct ImBuf *ibuf, unsigned int newx, unsigned int newy);
457 
462 bool IMB_scalefastImBuf(struct ImBuf *ibuf, unsigned int newx, unsigned int newy);
463 
468 void IMB_scaleImBuf_threaded(struct ImBuf *ibuf, unsigned int newx, unsigned int newy);
469 
474 bool IMB_saveiff(struct ImBuf *ibuf, const char *filepath, int flags);
475 bool IMB_prepare_write_ImBuf(const bool isfloat, struct ImBuf *ibuf);
476 
481 bool IMB_ispic(const char *filepath);
482 bool IMB_ispic_type_matches(const char *filepath, int filetype);
483 int IMB_ispic_type_from_memory(const unsigned char *buf, const size_t buf_size);
484 int IMB_ispic_type(const char *filepath);
485 
490 bool IMB_isanim(const char *filepath);
491 
496 int imb_get_anim_type(const char *filepath);
497 
502 bool IMB_isfloat(const struct ImBuf *ibuf);
503 
504 /* Do byte/float and colorspace conversions need to take alpha into account? */
505 bool IMB_alpha_affects_rgb(const struct ImBuf *ibuf);
506 
507 /* create char buffer, color corrected if necessary, for ImBufs that lack one */
508 void IMB_rect_from_float(struct ImBuf *ibuf);
509 void IMB_float_from_rect(struct ImBuf *ibuf);
510 void IMB_color_to_bw(struct ImBuf *ibuf);
511 void IMB_saturation(struct ImBuf *ibuf, float sat);
512 
513 /* converting pixel buffers */
514 void IMB_buffer_byte_from_float(unsigned char *rect_to,
515  const float *rect_from,
516  int channels_from,
517  float dither,
518  int profile_to,
519  int profile_from,
520  bool predivide,
521  int width,
522  int height,
523  int stride_to,
524  int stride_from);
525 void IMB_buffer_byte_from_float_mask(unsigned char *rect_to,
526  const float *rect_from,
527  int channels_from,
528  float dither,
529  bool predivide,
530  int width,
531  int height,
532  int stride_to,
533  int stride_from,
534  char *mask);
535 void IMB_buffer_float_from_byte(float *rect_to,
536  const unsigned char *rect_from,
537  int profile_to,
538  int profile_from,
539  bool predivide,
540  int width,
541  int height,
542  int stride_to,
543  int stride_from);
544 void IMB_buffer_float_from_float(float *rect_to,
545  const float *rect_from,
546  int channels_from,
547  int profile_to,
548  int profile_from,
549  bool predivide,
550  int width,
551  int height,
552  int stride_to,
553  int stride_from);
554 void IMB_buffer_float_from_float_threaded(float *rect_to,
555  const float *rect_from,
556  int channels_from,
557  int profile_to,
558  int profile_from,
559  bool predivide,
560  int width,
561  int height,
562  int stride_to,
563  int stride_from);
564 void IMB_buffer_float_from_float_mask(float *rect_to,
565  const float *rect_from,
566  int channels_from,
567  int width,
568  int height,
569  int stride_to,
570  int stride_from,
571  char *mask);
572 void IMB_buffer_byte_from_byte(unsigned char *rect_to,
573  const unsigned char *rect_from,
574  int profile_to,
575  int profile_from,
576  bool predivide,
577  int width,
578  int height,
579  int stride_to,
580  int stride_from);
581 void IMB_buffer_float_unpremultiply(float *buf, int width, int height);
582 void IMB_buffer_float_premultiply(float *buf, int width, int height);
583 
590 void IMB_convert_rgba_to_abgr(struct ImBuf *ibuf);
591 
597  struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout);
599  struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout);
601  struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout);
602 
604  struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v);
606  struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v);
608  struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v);
610  struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v);
612  struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v);
613 
614 void IMB_alpha_under_color_float(float *rect_float, int x, int y, float backcol[3]);
615 void IMB_alpha_under_color_byte(unsigned char *rect, int x, int y, const float backcol[3]);
616 
618  struct ImBuf *ibuf, float x, float y, bool make_linear_rgb, float color[4]);
619 
624 struct ImBuf *IMB_loadifffile(
625  int file, const char *filepath, int flags, char colorspace[IM_MAX_SPACE], const char *descr);
626 
631 struct ImBuf *IMB_half_x(struct ImBuf *ibuf1);
632 
637 struct ImBuf *IMB_double_fast_x(struct ImBuf *ibuf1);
638 
643 struct ImBuf *IMB_double_x(struct ImBuf *ibuf1);
644 
649 struct ImBuf *IMB_half_y(struct ImBuf *ibuf1);
650 
655 struct ImBuf *IMB_double_fast_y(struct ImBuf *ibuf1);
656 
661 struct ImBuf *IMB_double_y(struct ImBuf *ibuf1);
662 
667 void IMB_flipx(struct ImBuf *ibuf);
668 void IMB_flipy(struct ImBuf *ibuf);
669 
670 /* Premultiply alpha */
671 
672 void IMB_premultiply_alpha(struct ImBuf *ibuf);
673 void IMB_unpremultiply_alpha(struct ImBuf *ibuf);
674 
679 void IMB_freezbufImBuf(struct ImBuf *ibuf);
680 void IMB_freezbuffloatImBuf(struct ImBuf *ibuf);
681 
686 void IMB_rectfill(struct ImBuf *drect, const float col[4]);
687 void IMB_rectfill_area(struct ImBuf *ibuf,
688  const float col[4],
689  int x1,
690  int y1,
691  int x2,
692  int y2,
693  struct ColorManagedDisplay *display);
695  const struct ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2);
696 void IMB_rectfill_alpha(struct ImBuf *ibuf, const float value);
697 
698 /* This should not be here, really,
699  * we needed it for operating on render data, IMB_rectfill_area calls it. */
700 void buf_rectfill_area(unsigned char *rect,
701  float *rectf,
702  int width,
703  int height,
704  const float col[4],
705  struct ColorManagedDisplay *display,
706  int x1,
707  int y1,
708  int x2,
709  int y2);
710 
711 /* exported for image tools in blender, to quickly allocate 32 bits rect */
712 void *imb_alloc_pixels(
713  unsigned int x, unsigned int y, unsigned int channels, size_t typesize, const char *name);
714 
715 bool imb_addrectImBuf(struct ImBuf *ibuf);
716 void imb_freerectImBuf(struct ImBuf *ibuf);
717 
718 bool imb_addrectfloatImBuf(struct ImBuf *ibuf);
719 void imb_freerectfloatImBuf(struct ImBuf *ibuf);
720 void imb_freemipmapImBuf(struct ImBuf *ibuf);
721 
722 bool imb_addtilesImBuf(struct ImBuf *ibuf);
723 void imb_freetilesImBuf(struct ImBuf *ibuf);
724 
725 void imb_freerectImbuf_all(struct ImBuf *ibuf);
726 
727 /* threaded processors */
729  int buffer_lines,
730  int handle_size,
731  void *init_customdata,
732  void(init_handle)(void *handle, int start_line, int tot_line, void *customdata),
733  void *(do_thread)(void *));
734 
735 typedef void (*ScanlineThreadFunc)(void *custom_data, int start_scanline, int num_scanlines);
736 void IMB_processor_apply_threaded_scanlines(int total_scanlines,
737  ScanlineThreadFunc do_thread,
738  void *custom_data);
739 
740 /* ffmpeg */
741 void IMB_ffmpeg_init(void);
742 const char *IMB_ffmpeg_last_error(void);
743 
748 struct GPUTexture *IMB_create_gpu_texture(const char *name,
749  struct ImBuf *ibuf,
750  bool use_high_bitdepth,
751  bool use_premult,
752  bool limit_gl_texture_size);
754  const char *name, struct ImBuf *ibuf, int w, int h, int layers, bool use_high_bitdepth);
756  struct ImBuf *ibuf,
757  int x,
758  int y,
759  int z,
760  int w,
761  int h,
762  bool use_high_bitdepth,
763  bool use_premult);
764 
769 void IMB_stereo3d_write_dimensions(const char mode,
770  const bool is_squeezed,
771  const size_t width,
772  const size_t height,
773  size_t *r_width,
774  size_t *r_height);
775 void IMB_stereo3d_read_dimensions(const char mode,
776  const bool is_squeezed,
777  const size_t width,
778  const size_t height,
779  size_t *r_width,
780  size_t *r_height);
781 int *IMB_stereo3d_from_rect(struct ImageFormatData *im_format,
782  const size_t x,
783  const size_t y,
784  const size_t channels,
785  int *rect_left,
786  int *rect_right);
787 float *IMB_stereo3d_from_rectf(struct ImageFormatData *im_format,
788  const size_t x,
789  const size_t y,
790  const size_t channels,
791  float *rectf_left,
792  float *rectf_right);
793 struct ImBuf *IMB_stereo3d_ImBuf(struct ImageFormatData *im_format,
794  struct ImBuf *ibuf_left,
795  struct ImBuf *ibuf_right);
796 void IMB_ImBufFromStereo3d(struct Stereo3dFormat *s3d,
797  struct ImBuf *ibuf_stereo,
798  struct ImBuf **r_ibuf_left,
799  struct ImBuf **r_ibuf_right);
800 
801 #ifdef __cplusplus
802 }
803 #endif
struct GSet GSet
Definition: BLI_ghash.h:189
unsigned int uint
Definition: BLI_sys_types.h:83
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble z
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble y1
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble x2
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
struct GPUTexture GPUTexture
Definition: GPU_texture.h:33
void nearest_interpolation(struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout)
Definition: imageprocess.c:337
void IMB_float_from_rect(struct ImBuf *ibuf)
Definition: divers.c:780
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.c:597
void bicubic_interpolation(struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout)
Definition: imageprocess.c:109
struct ImBuf * IMB_double_fast_x(struct ImBuf *ibuf1)
Definition: scaling.c:124
void imb_freerectfloatImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:97
struct ImBuf * IMB_makeSingleUser(struct ImBuf *ibuf)
Definition: allocimbuf.c:246
void IMB_anim_index_rebuild(struct IndexBuildContext *context, short *stop, short *do_update, float *progress)
Definition: indexer.c:1352
void IMB_freezbuffloatImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:186
bool addzbufImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:272
void bicubic_interpolation_color(struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v)
Definition: imageprocess.c:98
struct ImBuf * IMB_onehalf(struct ImBuf *ibuf1)
Definition: scaling.c:453
void IMB_close_anim_proxies(struct anim *anim)
Definition: anim_movie.c:238
void IMB_rectfill_area_replace(const struct ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2)
bool IMB_scaleImBuf(struct ImBuf *ibuf, unsigned int newx, unsigned int newy)
Definition: scaling.c:1667
void IMB_color_to_bw(struct ImBuf *ibuf)
Definition: divers.c:842
bool IMB_anim_get_fps(struct anim *anim, short *frs_sec, float *frs_sec_base, bool no_av_base)
Definition: anim_movie.c:1691
void IMB_free_anim(struct anim *anim)
Definition: anim_movie.c:207
void IMB_remakemipmap(struct ImBuf *ibuf, int use_filter)
Definition: filter.c:561
struct GPUTexture * IMB_touch_gpu_texture(const char *name, struct ImBuf *ibuf, int w, int h, int layers, bool use_high_bitdepth)
Definition: util_gpu.c:167
struct ImBuf * IMB_allocImBuf(unsigned int x, unsigned int y, unsigned char planes, unsigned int flags)
Definition: allocimbuf.c:478
void IMB_mask_filter_extend(char *mask, int width, int height)
Definition: filter.c:324
struct IndexBuildContext * IMB_anim_index_rebuild_context(struct anim *anim, IMB_Timecode_Type tcs_in_use, IMB_Proxy_Size proxy_sizes_in_use, int quality, const bool overwrite, struct GSet *file_list)
Definition: indexer.c:1274
void IMB_mask_clear(struct ImBuf *ibuf, const char *mask, int val)
Definition: filter.c:368
void IMB_rectclip(struct ImBuf *dbuf, const struct ImBuf *sbuf, int *destx, int *desty, int *srcx, int *srcy, int *width, int *height)
struct ImBuf * IMB_double_x(struct ImBuf *ibuf1)
Definition: scaling.c:169
struct ImBuf * IMB_dupImBuf(const struct ImBuf *ibuf1)
void IMB_rect_from_float(struct ImBuf *ibuf)
Definition: divers.c:720
struct ImBuf * IMB_double_y(struct ImBuf *ibuf1)
Definition: scaling.c:326
void IMB_rect_crop(struct ImBuf *ibuf, const struct rcti *crop)
IMB_Proxy_Size
Definition: IMB_imbuf.h:317
@ IMB_PROXY_100
Definition: IMB_imbuf.h:322
@ IMB_PROXY_MAX_SLOT
Definition: IMB_imbuf.h:323
@ IMB_PROXY_75
Definition: IMB_imbuf.h:321
@ IMB_PROXY_50
Definition: IMB_imbuf.h:320
@ IMB_PROXY_25
Definition: IMB_imbuf.h:319
@ IMB_PROXY_NONE
Definition: IMB_imbuf.h:318
void IMB_freeImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:211
void IMB_close_anim(struct anim *anim)
Definition: anim_movie.c:229
bool IMB_prepare_write_ImBuf(const bool isfloat, struct ImBuf *ibuf)
Definition: writeimage.c:68
void IMB_ffmpeg_init(void)
void IMB_filtery(struct ImBuf *ibuf)
Definition: filter.c:119
void imb_freerectImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:115
unsigned int * IMB_gettile(struct ImBuf *ibuf, int tx, int ty, int thread)
Definition: cache.c:437
void IMB_anim_set_index_dir(struct anim *anim, const char *dir)
Definition: indexer.c:1417
void bilinear_interpolation_color(struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v)
Definition: imageprocess.c:130
void IMB_rectblend_threaded(struct ImBuf *dbuf, const struct ImBuf *obuf, const struct 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_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 *))
Definition: imageprocess.c:362
void IMB_rectblend(struct ImBuf *dbuf, const struct ImBuf *obuf, const struct 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)
size_t IMB_get_size_in_memory(struct ImBuf *ibuf)
Definition: allocimbuf.c:629
void IMB_sampleImageAtLocation(struct ImBuf *ibuf, float x, float y, bool make_linear_rgb, float color[4])
Definition: imageprocess.c:505
void IMB_ImBufFromStereo3d(struct Stereo3dFormat *s3d, struct ImBuf *ibuf_stereo, struct ImBuf **r_ibuf_left, struct ImBuf **r_ibuf_right)
Definition: stereoimbuf.c:1279
int * IMB_stereo3d_from_rect(struct ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels, int *rect_left, int *rect_right)
Definition: stereoimbuf.c:712
int IMB_anim_get_image_height(struct anim *anim)
Definition: anim_movie.c:1729
void nearest_interpolation_color_wrap(struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v)
Definition: imageprocess.c:298
void IMB_freezbufImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:172
int IMB_anim_index_get_frame_index(struct anim *anim, IMB_Timecode_Type tc, int position)
Definition: indexer.c:1480
void bilinear_interpolation(struct ImBuf *in, struct ImBuf *out, float u, float v, int xout, int yout)
Definition: imageprocess.c:220
void nearest_interpolation_color(struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v)
Definition: imageprocess.c:242
void IMB_rect_size_set(struct ImBuf *ibuf, const uint size[2])
Definition: rectop.c:308
void IMB_refImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:239
bool IMB_initImBuf(struct ImBuf *ibuf, unsigned int x, unsigned int y, unsigned char planes, unsigned int flags)
Definition: allocimbuf.c:494
void IMB_anim_index_rebuild_finish(struct IndexBuildContext *context, short stop)
Definition: indexer.c:1376
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.c:651
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.c:370
void IMB_rectfill_area(struct ImBuf *ibuf, const float col[4], int x1, int y1, int x2, int y2, struct ColorManagedDisplay *display)
Definition: rectop.c:1290
void imb_freerectImbuf_all(struct ImBuf *ibuf)
Definition: allocimbuf.c:201
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.c:430
bool addzbuffloatImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:289
struct ImBuf * IMB_testiffname(const char *filepath, int flags)
Definition: readimage.c:254
void imb_freemipmapImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:80
void * imb_alloc_pixels(unsigned int x, unsigned int y, unsigned int channels, size_t typesize, const char *name)
Definition: allocimbuf.c:373
struct anim * IMB_open_anim(const char *name, int ib_flags, int streamindex, char colorspace[IM_MAX_SPACE])
Definition: anim_movie.c:282
int IMB_ispic_type_from_memory(const unsigned char *buf, const size_t buf_size)
Definition: util.c:152
void bilinear_interpolation_color_wrap(struct ImBuf *in, unsigned char outI[4], float outF[4], float u, float v)
Definition: imageprocess.c:148
void IMB_saturation(struct ImBuf *ibuf, float sat)
Definition: divers.c:887
void buf_rectfill_area(unsigned char *rect, float *rectf, int width, int height, const float col[4], struct ColorManagedDisplay *display, int x1, int y1, int x2, int y2)
Definition: rectop.c:1164
struct ImBuf * IMB_double_fast_y(struct ImBuf *ibuf1)
Definition: scaling.c:278
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.c:279
int IMB_ispic_type(const char *filepath)
Definition: util.c:165
void IMB_buffer_float_premultiply(float *buf, int width, int height)
Definition: divers.c:871
void IMB_blend_color_byte(unsigned char dst[4], const unsigned char src1[4], const unsigned char src2[4], IMB_BlendMode mode)
Definition: rectop.c:41
void IMB_makemipmap(struct ImBuf *ibuf, int use_filter)
Definition: filter.c:598
struct ImBuf * IMB_getmipmap(struct ImBuf *ibuf, int level)
Definition: filter.c:635
void IMB_init(void)
Definition: module.c:30
struct ImBuf * IMB_half_y(struct ImBuf *ibuf1)
Definition: scaling.c:253
bool imb_addtilesImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:462
void IMB_processor_apply_threaded_scanlines(int total_scanlines, ScanlineThreadFunc do_thread, void *custom_data)
Definition: imageprocess.c:424
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.c:112
bool imb_addrectfloatImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:386
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.c:558
#define IM_MAX_SPACE
Definition: IMB_imbuf.h:65
struct ImBuf * IMB_stereo3d_ImBuf(struct ImageFormatData *im_format, struct ImBuf *ibuf_left, struct ImBuf *ibuf_right)
Definition: stereoimbuf.c:761
void IMB_buffer_float_unpremultiply(float *buf, int width, int height)
Definition: divers.c:861
IMB_Proxy_Size IMB_anim_proxy_get_existing(struct anim *anim)
Definition: indexer.c:1491
void IMB_stereo3d_write_dimensions(const char mode, const bool is_squeezed, const size_t width, const size_t height, size_t *r_width, size_t *r_height)
Definition: stereoimbuf.c:521
IMB_BlendMode
Definition: IMB_imbuf.h:197
@ IMB_BLEND_EXCLUSION
Definition: IMB_imbuf.h:217
@ IMB_BLEND_DIFFERENCE
Definition: IMB_imbuf.h:216
@ IMB_BLEND_HARDLIGHT
Definition: IMB_imbuf.h:207
@ IMB_BLEND_COLORBURN
Definition: IMB_imbuf.h:208
@ IMB_BLEND_COLORDODGE
Definition: IMB_imbuf.h:210
@ IMB_BLEND_ERASE_ALPHA
Definition: IMB_imbuf.h:204
@ IMB_BLEND_SCREEN
Definition: IMB_imbuf.h:211
@ IMB_BLEND_HUE
Definition: IMB_imbuf.h:218
@ IMB_BLEND_MUL
Definition: IMB_imbuf.h:201
@ IMB_BLEND_ADD_ALPHA
Definition: IMB_imbuf.h:205
@ IMB_BLEND_DARKEN
Definition: IMB_imbuf.h:203
@ IMB_BLEND_OVERLAY
Definition: IMB_imbuf.h:206
@ IMB_BLEND_SATURATION
Definition: IMB_imbuf.h:219
@ IMB_BLEND_VIVIDLIGHT
Definition: IMB_imbuf.h:214
@ IMB_BLEND_LUMINOSITY
Definition: IMB_imbuf.h:220
@ IMB_BLEND_LIGHTEN
Definition: IMB_imbuf.h:202
@ IMB_BLEND_SOFTLIGHT
Definition: IMB_imbuf.h:212
@ IMB_BLEND_COPY_RGB
Definition: IMB_imbuf.h:225
@ IMB_BLEND_COLOR
Definition: IMB_imbuf.h:221
@ IMB_BLEND_LINEARLIGHT
Definition: IMB_imbuf.h:215
@ IMB_BLEND_COPY_ALPHA
Definition: IMB_imbuf.h:226
@ IMB_BLEND_PINLIGHT
Definition: IMB_imbuf.h:213
@ IMB_BLEND_MIX
Definition: IMB_imbuf.h:198
@ IMB_BLEND_COPY
Definition: IMB_imbuf.h:224
@ IMB_BLEND_INTERPOLATE
Definition: IMB_imbuf.h:222
@ IMB_BLEND_ADD
Definition: IMB_imbuf.h:199
@ IMB_BLEND_SUB
Definition: IMB_imbuf.h:200
@ IMB_BLEND_LINEARBURN
Definition: IMB_imbuf.h:209
void IMB_exit(void)
Definition: module.c:39
struct ImBuf * IMB_loadiffname(const char *filepath, int flags, char colorspace[IM_MAX_SPACE])
Definition: readimage.c:224
bool IMB_alpha_affects_rgb(const struct ImBuf *ibuf)
void IMB_filter_extend(struct ImBuf *ibuf, char *mask, int filter)
Definition: filter.c:429
struct ImBuf * IMB_anim_previewframe(struct anim *anim)
Definition: anim_movie.c:1566
void IMB_premultiply_alpha(struct ImBuf *ibuf)
Definition: filter.c:687
struct ImBuf * IMB_half_x(struct ImBuf *ibuf1)
Definition: scaling.c:99
bool IMB_isanim(const char *filepath)
Definition: util.c:399
struct GPUTexture * IMB_create_gpu_texture(const char *name, struct ImBuf *ibuf, bool use_high_bitdepth, bool use_premult, bool limit_gl_texture_size)
Definition: util_gpu.c:219
const char * IMB_ffmpeg_last_error(void)
void IMB_suffix_anim(struct anim *anim, const char *suffix)
Definition: anim_movie.c:328
void IMB_convert_rgba_to_abgr(struct ImBuf *ibuf)
Definition: imageprocess.c:45
void IMB_blend_color_float(float dst[4], const float src1[4], const float src2[4], IMB_BlendMode mode)
Definition: rectop.c:129
void(* ScanlineThreadFunc)(void *custom_data, int start_scanline, int num_scanlines)
Definition: IMB_imbuf.h:735
struct ImBuf * IMB_loadifffile(int file, const char *filepath, int flags, char colorspace[IM_MAX_SPACE], const char *descr)
Definition: readimage.c:171
void IMB_stereo3d_read_dimensions(const char mode, const bool is_squeezed, const size_t width, const size_t height, size_t *r_width, size_t *r_height)
Definition: stereoimbuf.c:549
double IMD_anim_get_offset(struct anim *anim)
Definition: anim_movie.c:1686
float * IMB_stereo3d_from_rectf(struct ImageFormatData *im_format, const size_t x, const size_t y, const size_t channels, float *rectf_left, float *rectf_right)
Definition: stereoimbuf.c:736
int ismovie(const char *filepath)
void IMB_scaleImBuf_threaded(struct ImBuf *ibuf, unsigned int newx, unsigned int newy)
Definition: scaling.c:1889
void IMB_rectfill_alpha(struct ImBuf *ibuf, const float value)
Definition: rectop.c:1313
void IMB_alpha_under_color_float(float *rect_float, int x, int y, float backcol[3])
Definition: imageprocess.c:455
bool IMB_isfloat(const struct ImBuf *ibuf)
struct ImBuf * IMB_ibImageFromMemory(const unsigned char *mem, size_t size, int flags, char colorspace[IM_MAX_SPACE], const char *descr)
Definition: readimage.c:99
bool IMB_ispic_type_matches(const char *filepath, int filetype)
Definition: util.c:175
void IMB_unpremultiply_alpha(struct ImBuf *ibuf)
Definition: filter.c:749
void IMB_alpha_under_color_byte(unsigned char *rect, int x, int y, const float backcol[3])
Definition: imageprocess.c:469
int imb_get_anim_type(const char *filepath)
Definition: util.c:338
void IMB_update_gpu_texture_sub(struct GPUTexture *tex, struct ImBuf *ibuf, int x, int y, int z, int w, int h, bool use_high_bitdepth, bool use_premult)
Definition: util_gpu.c:189
void imb_freetilesImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:131
bool imb_addrectImBuf(struct ImBuf *ibuf)
Definition: allocimbuf.c:407
bool IMB_ispic(const char *filepath)
Definition: util.c:197
int IMB_anim_get_image_width(struct anim *anim)
Definition: anim_movie.c:1724
void IMB_flipx(struct ImBuf *ibuf)
Definition: rotate.c:92
void IMB_anim_get_fname(struct anim *anim, char *file, int size)
Definition: indexer.c:402
struct ImBuf * IMB_allocFromBuffer(const unsigned int *rect, const float *rectf, unsigned int w, unsigned int h, unsigned int channels)
Definition: allocimbuf.c:433
struct ImBuf * IMB_anim_absolute(struct anim *anim, int position, IMB_Timecode_Type tc, IMB_Proxy_Size preview_size)
Definition: anim_movie.c:1580
void IMB_tile_cache_params(int totthread, int maxmem)
Definition: cache.c:252
void IMB_filter(struct ImBuf *ibuf)
Definition: filter.c:318
void IMB_tiles_to_rect(struct ImBuf *ibuf)
Definition: cache.c:442
bool IMB_anim_can_produce_frames(const struct anim *anim)
Definition: anim_movie.c:309
bool IMB_scalefastImBuf(struct ImBuf *ibuf, unsigned int newx, unsigned int newy)
Definition: scaling.c:1715
bool IMB_saveiff(struct ImBuf *ibuf, const char *filepath, int flags)
Definition: writeimage.c:44
int IMB_anim_get_duration(struct anim *anim, IMB_Timecode_Type tc)
Definition: anim_movie.c:1671
void IMB_flipy(struct ImBuf *ibuf)
Definition: rotate.c:33
void IMB_rectcpy(struct ImBuf *dbuf, const struct ImBuf *sbuf, int destx, int desty, int srcx, int srcy, int width, int height)
IMB_Timecode_Type
Definition: IMB_imbuf.h:298
@ IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN
Definition: IMB_imbuf.h:312
@ IMB_TC_RECORD_RUN_NO_GAPS
Definition: IMB_imbuf.h:313
@ IMB_TC_NONE
Definition: IMB_imbuf.h:300
@ IMB_TC_MAX_SLOT
Definition: IMB_imbuf.h:314
@ IMB_TC_FREE_RUN
Definition: IMB_imbuf.h:307
@ IMB_TC_RECORD_RUN
Definition: IMB_imbuf.h:304
void IMB_rectfill(struct ImBuf *drect, const float col[4])
Definition: rectop.c:1077
ATTR_WARN_UNUSED_RESULT const BMVert * v
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition: btDbvt.cpp:52
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
Definition: btQuadWord.h:119
FILE * file
uint col
DO_INLINE void filter(lfVector *V, fmatrix3x3 *S)
struct SELECTID_Context context
Definition: select_engine.c:47
int channels
float dither
unsigned char planes
char name[IMB_FILENAME_SIZE]
unsigned int * rect
float * rect_float
Definition: IMB_anim.h:87
char suffix[64]
Definition: IMB_anim.h:150
int ib_flags
Definition: IMB_anim.h:88
char colorspace[64]
Definition: IMB_anim.h:149
int streamindex
Definition: IMB_anim.h:109
char name[1024]
Definition: IMB_anim.h:98
ccl_device_inline float4 mask(const int4 &mask, const float4 &a)