diff options
author | Jeroen Bakker <jeroen@blender.org> | 2022-05-30 17:04:21 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2022-05-30 17:04:21 +0300 |
commit | 58feee2b1a75b504dbb1f78e40fdae243ba602ba (patch) | |
tree | b86ed9929b97563782b2ec67c1e64c27ee80cecd | |
parent | de89a81b67ea922e9e527938bb73adee30d048bc (diff) |
Moved enum to image_gpu.
-rw-r--r-- | source/blender/blenkernel/intern/image_gpu.cc | 9 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/movieclip.c | 28 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_image_types.h | 10 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_movieclip_types.h | 3 |
4 files changed, 16 insertions, 34 deletions
diff --git a/source/blender/blenkernel/intern/image_gpu.cc b/source/blender/blenkernel/intern/image_gpu.cc index d0d9234f9ab..476c0b23fe5 100644 --- a/source/blender/blenkernel/intern/image_gpu.cc +++ b/source/blender/blenkernel/intern/image_gpu.cc @@ -38,6 +38,15 @@ using namespace blender::bke::image::partial_update; namespace blender::bke::image::gpu { + +/* Used to get the correct gpu texture from an Image datablock. */ +typedef enum eGPUTextureTarget { + TEXTARGET_2D = 0, + TEXTARGET_2D_ARRAY, + TEXTARGET_TILE_MAPPING, + TEXTARGET_COUNT, +} eGPUTextureTarget; + struct ImageGPUTextureStore { class Entry : NonCopyable { public: diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index 19ee2ba6605..cdf70bf742c 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -1642,12 +1642,7 @@ static void free_buffers(MovieClip *clip) MovieClip_RuntimeGPUTexture *tex; for (tex = clip->runtime.gputextures.first; tex; tex = tex->next) { - for (int i = 0; i < TEXTARGET_COUNT; i++) { - if (tex->gputexture[i] != NULL) { - GPU_texture_free(tex->gputexture[i]); - tex->gputexture[i] = NULL; - } - } + GPU_TEXTURE_FREE_SAFE(tex->gputexture); } BLI_freelistN(&clip->runtime.gputextures); } @@ -2035,9 +2030,7 @@ void BKE_movieclip_eval_selection_update(struct Depsgraph *depsgraph, MovieClip /** \name GPU textures * \{ */ -static GPUTexture **movieclip_get_gputexture_ptr(MovieClip *clip, - MovieClipUser *cuser, - eGPUTextureTarget textarget) +static GPUTexture **movieclip_get_gputexture_ptr(MovieClip *clip, MovieClipUser *cuser) { /* Check if we have an existing entry for that clip user. */ MovieClip_RuntimeGPUTexture *tex; @@ -2051,16 +2044,13 @@ static GPUTexture **movieclip_get_gputexture_ptr(MovieClip *clip, if (tex == NULL) { tex = (MovieClip_RuntimeGPUTexture *)MEM_mallocN(sizeof(MovieClip_RuntimeGPUTexture), __func__); - - for (int i = 0; i < TEXTARGET_COUNT; i++) { - tex->gputexture[i] = NULL; - } + tex->gputexture = NULL; memcpy(&tex->user, cuser, sizeof(MovieClipUser)); BLI_addtail(&clip->runtime.gputextures, tex); } - return &tex->gputexture[textarget]; + return &tex->gputexture; } GPUTexture *BKE_movieclip_get_gpu_texture(MovieClip *clip, MovieClipUser *cuser) @@ -2069,7 +2059,7 @@ GPUTexture *BKE_movieclip_get_gpu_texture(MovieClip *clip, MovieClipUser *cuser) return NULL; } - GPUTexture **tex = movieclip_get_gputexture_ptr(clip, cuser, TEXTARGET_2D); + GPUTexture **tex = movieclip_get_gputexture_ptr(clip, cuser); if (*tex) { return *tex; } @@ -2105,13 +2095,7 @@ void BKE_movieclip_free_gputexture(struct MovieClip *clip) while (BLI_listbase_count(&clip->runtime.gputextures) > MOVIECLIP_NUM_GPUTEXTURES) { MovieClip_RuntimeGPUTexture *tex = (MovieClip_RuntimeGPUTexture *)BLI_pophead( &clip->runtime.gputextures); - for (int i = 0; i < TEXTARGET_COUNT; i++) { - /* free glsl image binding */ - if (tex->gputexture[i]) { - GPU_texture_free(tex->gputexture[i]); - tex->gputexture[i] = NULL; - } - } + GPU_TEXTURE_FREE_SAFE(tex->gputexture); MEM_freeN(tex); } } diff --git a/source/blender/makesdna/DNA_image_types.h b/source/blender/makesdna/DNA_image_types.h index beef410d362..48fe7608522 100644 --- a/source/blender/makesdna/DNA_image_types.h +++ b/source/blender/makesdna/DNA_image_types.h @@ -105,14 +105,6 @@ typedef struct ImageTile { #define IMA_SHOW_STEREO (1 << 4) /* #define IMA_UNUSED_5 (1 << 5) */ -/* Used to get the correct gpu texture from an Image datablock. */ -typedef enum eGPUTextureTarget { - TEXTARGET_2D = 0, - TEXTARGET_2D_ARRAY, - TEXTARGET_TILE_MAPPING, - TEXTARGET_COUNT, -} eGPUTextureTarget; - /* Defined in BKE_image.h. */ struct PartialUpdateRegister; struct PartialUpdateUser; @@ -137,8 +129,6 @@ typedef struct Image { /** Not written in file. */ struct MovieCache *cache; - /** Not written in file 3 = TEXTARGET_COUNT, 2 = stereo eyes. */ - // struct GPUTexture *gputexture[3][2]; /* sources from: */ ListBase anims; diff --git a/source/blender/makesdna/DNA_movieclip_types.h b/source/blender/makesdna/DNA_movieclip_types.h index a262baf6a2b..0d53af32989 100644 --- a/source/blender/makesdna/DNA_movieclip_types.h +++ b/source/blender/makesdna/DNA_movieclip_types.h @@ -47,8 +47,7 @@ typedef struct MovieClipProxy { typedef struct MovieClip_RuntimeGPUTexture { void *next, *prev; MovieClipUser user; - /** Not written in file 3 = TEXTARGET_COUNT. */ - struct GPUTexture *gputexture[3]; + struct GPUTexture *gputexture; } MovieClip_RuntimeGPUTexture; typedef struct MovieClip_Runtime { |