diff options
author | Clément Foucault <foucault.clem@gmail.com> | 2020-09-04 03:36:56 +0300 |
---|---|---|
committer | Clément Foucault <foucault.clem@gmail.com> | 2020-09-05 18:49:14 +0300 |
commit | b100b77fda0667d78cac0f219e0f6208d6b8f854 (patch) | |
tree | b33d85d887e43d712fe7797b99ed6b6b150af4d0 /source/blender/gpu/opengl/gl_texture.hh | |
parent | 31c77a14af7cac2bc52ecaffde1bae9775dc47ae (diff) |
GLTexture: Add back texture proxy check
Cleanup the feature itself:
- Check 3D textures size against the correct limit.
- Add check for compressed textures.
Diffstat (limited to 'source/blender/gpu/opengl/gl_texture.hh')
-rw-r--r-- | source/blender/gpu/opengl/gl_texture.hh | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/source/blender/gpu/opengl/gl_texture.hh b/source/blender/gpu/opengl/gl_texture.hh index 36da89dad8e..ec1fc114584 100644 --- a/source/blender/gpu/opengl/gl_texture.hh +++ b/source/blender/gpu/opengl/gl_texture.hh @@ -97,7 +97,8 @@ class GLTexture : public Texture { bool init_internal(GPUVertBuf *vbo) override; private: - void ensure_mipmaps(int miplvl); + bool proxy_check(int mip); + void ensure_mipmaps(int mip); GPUFrameBuffer *framebuffer_get(void); MEM_CXX_CLASS_ALLOC_FUNCS("GLTexture") @@ -232,6 +233,30 @@ inline GLenum to_gl_target(eGPUTextureType type) } } +inline GLenum to_gl_proxy(eGPUTextureType type) +{ + switch (type) { + case GPU_TEXTURE_1D: + return GL_PROXY_TEXTURE_1D; + case GPU_TEXTURE_1D_ARRAY: + return GL_PROXY_TEXTURE_1D_ARRAY; + case GPU_TEXTURE_2D: + return GL_PROXY_TEXTURE_2D; + case GPU_TEXTURE_2D_ARRAY: + return GL_PROXY_TEXTURE_2D_ARRAY; + case GPU_TEXTURE_3D: + return GL_PROXY_TEXTURE_3D; + case GPU_TEXTURE_CUBE: + return GL_PROXY_TEXTURE_CUBE_MAP; + case GPU_TEXTURE_CUBE_ARRAY: + return GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB; + case GPU_TEXTURE_BUFFER: + default: + BLI_assert(0); + return GL_TEXTURE_1D; + } +} + inline GLenum swizzle_to_gl(const char swizzle) { switch (swizzle) { |