37#define IMA_MAX_SPACE 64
38#define IMA_UDIM_MAX 2000
58 int propvalue_maxncpy);
108 const char *filepath,
137#define IMA_SIGNAL_RELOAD 0
138#define IMA_SIGNAL_FREE 1
140#define IMA_SIGNAL_SRC_CHANGE 5
142#define IMA_SIGNAL_USER_NEW_IMAGE 6
143#define IMA_SIGNAL_COLORMANAGE 7
174 const char *pass_name,
175 const char *view_name);
205 std::optional<Library *> owner_library,
206 const char *filepath);
219 std::optional<Library *> owner_library,
220 const char *filepath,
221 bool *r_exists =
nullptr);
233 const float color[4],
286 const bool resolve_udim,
287 const bool resolve_multiview);
485 unsigned char *rect,
float *rect_float,
int width,
int height, const
float color[4]);
589 const bool use_tile_mapping);
629struct PartialUpdateUser;
647 const ImBuf *image_buffer,
648 const rcti *updated_region);
@ UDIM_TILE_FORMAT_UVTILE
void BKE_imbuf_stamp_info(const RenderResult *rr, ImBuf *ibuf)
int BKE_image_get_tile_from_pos(Image *ima, const float uv[2], float r_uv[2], float r_ofs[2])
RenderSlot * BKE_image_get_renderslot(Image *ima, int index)
ImBuf * BKE_image_acquire_ibuf(Image *ima, ImageUser *iuser, void **r_lock)
bool BKE_image_is_multilayer(const Image *ima)
bool BKE_image_has_alpha(Image *image)
void BKE_image_ensure_viewer_views(const RenderData *rd, Image *ima, ImageUser *iuser)
void BKE_image_user_frame_calc(Image *ima, ImageUser *iuser, int cfra)
void StampCallback(void *data, const char *propname, char *propvalue, int propvalue_maxncpy)
char * BKE_image_get_tile_strformat(const char *filepath, eUDIM_TILE_FORMAT *r_tile_format)
Image * BKE_image_load(Main *bmain, const char *filepath)
void BKE_image_partial_update_mark_region(Image *image, const ImageTile *image_tile, const ImBuf *image_buffer, const rcti *updated_region)
Mark a region of the image to update.
void BKE_stamp_info_from_imbuf(RenderResult *rr, ImBuf *ibuf)
void BKE_image_alpha_mode_from_extension(Image *image)
bool BKE_image_scale(Image *image, int width, int height, ImageUser *iuser)
void BKE_image_get_size_fl(Image *image, ImageUser *iuser, float r_size[2])
bool BKE_image_user_id_has_animation(ID *id)
bool BKE_image_has_filepath(const Image *ima)
void BKE_image_update_gputexture(Image *ima, ImageUser *iuser, int x, int y, int w, int h)
void BKE_image_set_filepath_from_tile_number(char *filepath, const char *pattern, eUDIM_TILE_FORMAT tile_format, int tile_number)
void BKE_image_mark_dirty(Image *image, ImBuf *ibuf)
void BKE_image_multilayer_stamp_info_callback(void *data, const Image &image, StampCallback callback, bool noskip)
void BKE_image_get_aspect(Image *image, float *r_aspx, float *r_aspy)
StampData * BKE_stamp_data_copy(const StampData *stamp_data)
ImBufAnim * openanim_noload(const char *filepath, int flags, int streamindex, char colorspace[IMA_MAX_SPACE])
ImBuf * BKE_image_acquire_multilayer_view_ibuf(const RenderData &render_data, Image &image, const ImageUser &image_user, const char *pass_name, const char *view_name)
Image * BKE_image_load_exists_in_lib(Main *bmain, std::optional< Library * > owner_library, const char *filepath, bool *r_exists=nullptr)
bool BKE_image_is_openexr(Image *ima)
bool BKE_image_has_multiple_ibufs(Image *image)
Image * BKE_image_ensure_viewer(Main *bmain, int type, const char *name)
RenderPass * BKE_image_multilayer_index(RenderResult *rr, ImageUser *iuser)
bool BKE_image_fill_tile(Image *ima, ImageTile *tile)
void BKE_image_release_ibuf(Image *ima, ImBuf *ibuf, void *lock)
RenderSlot * BKE_image_add_renderslot(Image *ima, const char *name)
StampData * BKE_stamp_info_from_scene_static(const Scene *scene)
void BKE_image_user_file_path(const ImageUser *iuser, const Image *ima, char *filepath)
void BKE_image_tag_time(Image *ima)
void BKE_image_merge(Main *bmain, Image *dest, Image *source)
bool BKE_image_memorypack(Image *ima)
void BKE_image_packfiles(ReportList *reports, Image *ima, const char *basepath)
void BKE_image_free_anim_gputextures(Main *bmain)
void BKE_image_free_buffers_ex(Image *image, bool do_lock)
int int BKE_image_find_nearest_tile(const Image *image, const float co[2]) ATTR_NONNULL(2) ATTR_WARN_UNUSED_RESULT
bool BKE_image_is_dirty(Image *image)
void BKE_stamp_data_free(StampData *stamp_data)
GPUTexture * BKE_image_get_gpu_viewer_texture(Image *image, ImageUser *iuser)
void BKE_image_free_anim_ibufs(Image *ima, int except_frame)
void BKE_image_release_renderresult(Scene *scene, Image *ima, RenderResult *render_result)
void BKE_image_pool_free(ImagePool *pool)
int BKE_image_user_frame_get(const ImageUser *iuser, int cfra, bool *r_is_in_range)
void BKE_image_partial_update_free(PartialUpdateUser *user)
free a partial update user.
bool BKE_image_has_gpu_texture_premultiplied_alpha(Image *image, ImBuf *ibuf)
int BKE_image_find_nearest_tile_with_offset(const Image *image, const float co[2], float r_uv_offset[2]) ATTR_NONNULL(2
ImageGPUTextures BKE_image_get_gpu_material_texture(Image *image, ImageUser *iuser, const bool use_tile_mapping)
void BKE_image_free_unused_gpu_textures(void)
void BKE_image_update_gputexture_delayed(Image *ima, ImageTile *image_tile, ImBuf *ibuf, int x, int y, int w, int h)
ImBuf * BKE_image_pool_acquire_ibuf(Image *ima, ImageUser *iuser, ImagePool *pool)
Image * BKE_image_add_from_imbuf(Main *bmain, ImBuf *ibuf, const char *name)
Image * BKE_image_load_exists(Main *bmain, const char *filepath, bool *r_exists=nullptr)
void BKE_image_sort_tiles(Image *ima)
void BKE_image_buf_fill_checker_color(unsigned char *rect, float *rect_float, int width, int height)
void BKE_image_backup_render(Scene *scene, Image *ima, bool free_current_slot)
void BKE_image_user_file_path_ex(const Main *bmain, const ImageUser *iuser, const Image *ima, char *filepath, const bool resolve_udim, const bool resolve_multiview)
void BKE_image_buf_fill_checker(unsigned char *rect, float *rect_float, int width, int height)
bool BKE_image_get_tile_number_from_filepath(const char *filepath, const char *pattern, eUDIM_TILE_FORMAT tile_format, int *r_tile_number)
int BKE_image_get_tile_label(const Image *ima, const ImageTile *tile, char *label, int label_maxncpy)
bool BKE_image_has_opengl_texture(Image *ima)
void BKE_image_ensure_gpu_texture(Image *image, ImageUser *iuser)
void BKE_image_ensure_tile_token_filename_only(char *filename, size_t filename_maxncpy)
GPUTexture * BKE_image_create_gpu_texture_from_ibuf(Image *image, ImBuf *ibuf)
bool BKE_image_has_anim(Image *image)
void BKE_image_get_tile_uv(const Image *ima, const int tile_number, float r_uv[2])
bool BKE_imbuf_alpha_test(ImBuf *ibuf)
ImBufAnim * openanim(const char *filepath, int flags, int streamindex, char colorspace[IMA_MAX_SPACE])
void BKE_imageuser_default(ImageUser *iuser)
Image * BKE_image_load_in_lib(Main *bmain, std::optional< Library * > owner_library, const char *filepath)
void BKE_render_result_stamp_info(Scene *scene, Object *camera, RenderResult *rr, bool allocate_only)
void BKE_image_free_gputextures(Image *ima)
void BKE_image_free_all_textures(Main *bmain)
void BKE_stamp_info_callback(void *data, StampData *stamp_data, StampCallback callback, bool noskip)
int BKE_image_sequence_guess_offset(Image *image)
void BKE_image_free_data(Image *image)
bool BKE_image_is_stereo(const Image *ima)
bool BKE_image_is_multiview(const Image *ima)
bool BKE_imbuf_write(ImBuf *ibuf, const char *filepath, const ImageFormatData *imf)
void BKE_image_get_size(Image *image, ImageUser *iuser, int *r_width, int *r_height)
void BKE_image_ensure_tile_token(char *filepath, size_t filepath_maxncpy)
ImBuf * BKE_image_get_ibuf_with_name(Image *image, const char *filepath)
bool BKE_image_get_tile_info(char *filepath, ListBase *tiles, int *r_tile_start, int *r_tile_range)
char BKE_image_alpha_mode_from_extension_ex(const char *filepath)
void BKE_image_free_views(Image *image)
bool BKE_image_has_packedfile(const Image *image)
GPUTexture * BKE_image_get_gpu_texture(Image *image, ImageUser *iuser)
void BKE_image_all_free_anim_ibufs(Main *bmain, int cfra)
void BKE_image_walk_all_users(const Main *mainp, void *customdata, void callback(Image *ima, ID *iuser_id, ImageUser *iuser, void *customdata))
bool BKE_image_remove_renderslot(Image *ima, ImageUser *iuser, int slot)
void BKE_image_paint_set_mipmap(Main *bmain, bool mipmap)
void BKE_image_signal(Main *bmain, Image *ima, ImageUser *iuser, int signal)
void BKE_image_reassign_tile(Image *ima, ImageTile *tile, int new_tile_number)
void BKE_render_result_stamp_data(RenderResult *rr, const char *key, const char *value)
PartialUpdateUser * BKE_image_partial_update_create(const Image *image)
Create a new PartialUpdateUser. An Object that contains data to use partial updates.
bool BKE_image_is_animated(Image *image)
bool BKE_stamp_is_known_field(const char *field_name)
bool BKE_image_clear_renderslot(Image *ima, ImageUser *iuser, int slot)
bool BKE_image_is_filename_tokenized(char *filepath)
ImBuf * BKE_image_preview(Image *ima, short max_size, short *r_width, short *r_height)
void BKE_image_user_id_eval_animation(Depsgraph *depsgraph, ID *id)
bool BKE_imbuf_write_stamp(const Scene *scene, const RenderResult *rr, ImBuf *ibuf, const char *filepath, const ImageFormatData *imf)
void BKE_image_editors_update_frame(const Main *bmain, int cfra)
void BKE_image_replace_imbuf(Image *image, ImBuf *ibuf)
void BKE_image_init_imageuser(Image *ima, ImageUser *iuser)
void BKE_image_pool_release_ibuf(Image *ima, ImBuf *ibuf, ImagePool *pool)
bool BKE_imbuf_write_as(ImBuf *ibuf, const char *filepath, const ImageFormatData *imf, bool save_copy)
unsigned char * BKE_image_get_pixels_for_frame(Image *image, int frame, int tile)
void BKE_image_packfiles_from_mem(ReportList *reports, Image *ima, char *data, size_t data_len)
RenderResult * BKE_image_acquire_renderresult(Scene *scene, Image *ima)
ImageTile * BKE_image_add_tile(Image *ima, int tile_number, const char *label)
void BKE_image_stamp_buf(Scene *scene, Object *camera, const StampData *stamp_data_template, unsigned char *rect, float *rectf, int width, int height)
ImBuf * BKE_image_get_first_ibuf(Image *image)
void BKE_image_file_format_set(Image *image, int ftype, const ImbFormatOptions *options)
void BKE_image_buf_fill_color(unsigned char *rect, float *rect_float, int width, int height, const float color[4])
bool BKE_image_remove_tile(Image *ima, ImageTile *tile)
bool BKE_image_has_ibuf(Image *ima, ImageUser *iuser)
void BKE_image_free_all_gputextures(Main *bmain)
float * BKE_image_get_float_pixels_for_frame(Image *image, int frame, int tile)
void BKE_image_partial_update_mark_full_update(Image *image)
Mark the whole image to be updated.
ImagePool * BKE_image_pool_new(void)
void BKE_image_multiview_index(const Image *ima, ImageUser *iuser)
bool BKE_image_has_loaded_ibuf(Image *image)
void BKE_image_free_old_gputextures(Main *bmain)
bool BKE_image_tile_filepath_exists(const char *filepath)
void BKE_image_free_packedfiles(Image *image)
void BKE_image_print_memlist(Main *bmain)
bool BKE_image_is_dirty_writable(Image *image, bool *r_is_writable)
Image * BKE_image_add_generated(Main *bmain, unsigned int width, unsigned int height, const char *name, int depth, int floatbuf, short gen_type, const float color[4], bool stereo3d, bool is_data, bool tiled)
void BKE_image_partial_update_register_free(Image *image)
bool BKE_image_buffer_format_writable(ImBuf *ibuf)
#define ATTR_WARN_UNUSED_RESULT
#define ATTR_NONNULL(...)
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
CCL_NAMESPACE_BEGIN struct Options options
const Depsgraph * depsgraph
DEGForeachIDComponentCallback callback
ccl_gpu_kernel_postfix ccl_global KernelWorkTile * tiles
ccl_global const KernelWorkTile * tile
GPUTexture * tile_mapping
void * BKE_image_free_buffers
void * BKE_image_get_tile_from_iuser
void * BKE_image_get_tile