Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2020-09-04 03:36:56 +0300
committerClément Foucault <foucault.clem@gmail.com>2020-09-05 18:49:14 +0300
commitb100b77fda0667d78cac0f219e0f6208d6b8f854 (patch)
treeb33d85d887e43d712fe7797b99ed6b6b150af4d0 /source/blender/gpu/opengl/gl_texture.hh
parent31c77a14af7cac2bc52ecaffde1bae9775dc47ae (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.hh27
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) {