diff options
author | Antonis Ryakiotakis <kalast@gmail.com> | 2022-02-07 21:37:15 +0300 |
---|---|---|
committer | Antonis Ryakiotakis <kalast@gmail.com> | 2022-02-07 21:37:15 +0300 |
commit | d8c05502272990173381bfd2590884bbc95aa5f5 (patch) | |
tree | 8bd65efacbe6484b838d4550597d0f4a54ddddd9 /source/blender/blenkernel/BKE_image.h | |
parent | b64d551f3b2fa409b4eeefb641fc581eb6cd0bd6 (diff) | |
parent | fe1816f67fbc6aaf383ec77847d668367335d093 (diff) |
Merge branch 'master' into KTX_supportKTX_support
Diffstat (limited to 'source/blender/blenkernel/BKE_image.h')
-rw-r--r-- | source/blender/blenkernel/BKE_image.h | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_image.h b/source/blender/blenkernel/BKE_image.h index 80c6b155be0..598818ba3c0 100644 --- a/source/blender/blenkernel/BKE_image.h +++ b/source/blender/blenkernel/BKE_image.h @@ -24,6 +24,8 @@ #include "BLI_utildefines.h" +#include "BLI_rect.h" + #ifdef __cplusplus extern "C" { #endif @@ -561,19 +563,27 @@ struct GPUTexture *BKE_image_get_gpu_tilemap(struct Image *image, * Is the alpha of the `GPUTexture` for a given image/ibuf premultiplied. */ bool BKE_image_has_gpu_texture_premultiplied_alpha(struct Image *image, struct ImBuf *ibuf); + /** * Partial update of texture for texture painting. * This is often much quicker than fully updating the texture for high resolution images. */ void BKE_image_update_gputexture( struct Image *ima, struct ImageUser *iuser, int x, int y, int w, int h); + /** * Mark areas on the #GPUTexture that needs to be updated. The areas are marked in chunks. * The next time the #GPUTexture is used these tiles will be refreshes. This saves time * when writing to the same place multiple times This happens for during foreground rendering. */ -void BKE_image_update_gputexture_delayed( - struct Image *ima, struct ImBuf *ibuf, int x, int y, int w, int h); +void BKE_image_update_gputexture_delayed(struct Image *ima, + struct ImageTile *image_tile, + struct ImBuf *ibuf, + int x, + int y, + int w, + int h); + /** * Called on entering and exiting texture paint mode, * temporary disabling/enabling mipmapping on all images for quick texture @@ -591,6 +601,32 @@ bool BKE_image_remove_renderslot(struct Image *ima, struct ImageUser *iuser, int struct RenderSlot *BKE_image_get_renderslot(struct Image *ima, int index); bool BKE_image_clear_renderslot(struct Image *ima, struct ImageUser *iuser, int slot); +/* --- image_partial_update.cc --- */ +/** Image partial updates. */ +struct PartialUpdateUser; + +/** + * \brief Create a new PartialUpdateUser. An Object that contains data to use partial updates. + */ +struct PartialUpdateUser *BKE_image_partial_update_create(const struct Image *image); + +/** + * \brief free a partial update user. + */ +void BKE_image_partial_update_free(struct PartialUpdateUser *user); + +/* --- partial updater (image side) --- */ +struct PartialUpdateRegister; + +void BKE_image_partial_update_register_free(struct Image *image); +/** \brief Mark a region of the image to update. */ +void BKE_image_partial_update_mark_region(struct Image *image, + const struct ImageTile *image_tile, + const struct ImBuf *image_buffer, + const rcti *updated_region); +/** \brief Mark the whole image to be updated. */ +void BKE_image_partial_update_mark_full_update(struct Image *image); + #ifdef __cplusplus } #endif |