diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2017-10-24 03:03:58 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2017-10-27 23:49:15 +0300 |
commit | 1c0c63ce5b3914be2d0828260e5ac777a7596d36 (patch) | |
tree | be2bb3a870a54b511830bb3b563de1251cad2627 /source/blender/draw/intern | |
parent | 660eea8cf4c21cbaf0b11e4800aa38fb83afb895 (diff) |
DRW: Add 3D texture support.
Diffstat (limited to 'source/blender/draw/intern')
-rw-r--r-- | source/blender/draw/intern/DRW_render.h | 2 | ||||
-rw-r--r-- | source/blender/draw/intern/draw_manager.c | 14 |
2 files changed, 16 insertions, 0 deletions
diff --git a/source/blender/draw/intern/DRW_render.h b/source/blender/draw/intern/DRW_render.h index e8eedac7048..92213a0bee0 100644 --- a/source/blender/draw/intern/DRW_render.h +++ b/source/blender/draw/intern/DRW_render.h @@ -190,6 +190,8 @@ struct GPUTexture *DRW_texture_create_2D( int w, int h, DRWTextureFormat format, DRWTextureFlag flags, const float *fpixels); struct GPUTexture *DRW_texture_create_2D_array( int w, int h, int d, DRWTextureFormat format, DRWTextureFlag flags, const float *fpixels); +struct GPUTexture *DRW_texture_create_3D( + int w, int h, int d, DRWTextureFormat format, DRWTextureFlag flags, const float *fpixels); struct GPUTexture *DRW_texture_create_cube( int w, DRWTextureFormat format, DRWTextureFlag flags, const float *fpixels); void DRW_texture_generate_mipmaps(struct GPUTexture *tex); diff --git a/source/blender/draw/intern/draw_manager.c b/source/blender/draw/intern/draw_manager.c index b1721247568..0329b3c3121 100644 --- a/source/blender/draw/intern/draw_manager.c +++ b/source/blender/draw/intern/draw_manager.c @@ -500,6 +500,20 @@ GPUTexture *DRW_texture_create_2D_array( return tex; } +GPUTexture *DRW_texture_create_3D( + int w, int h, int d, DRWTextureFormat format, DRWTextureFlag flags, const float *fpixels) +{ + GPUTexture *tex; + GPUTextureFormat data_type; + int channels; + + drw_texture_get_format(format, &data_type, &channels); + tex = GPU_texture_create_3D_custom(w, h, d, channels, data_type, fpixels, NULL); + drw_texture_set_parameters(tex, flags); + + return tex; +} + GPUTexture *DRW_texture_create_cube(int w, DRWTextureFormat format, DRWTextureFlag flags, const float *fpixels) { GPUTexture *tex; |