From a1c6cc141125aa127033b317a9fc0123ba57511f Mon Sep 17 00:00:00 2001 From: baldurk Date: Mon, 18 Nov 2019 10:18:07 +0000 Subject: [PATCH] Create internal format as GL_RG8 for LUMINANCE_ALPHA. Closes #1599 --- renderdoc/driver/gl/wrappers/gl_emulated.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/renderdoc/driver/gl/wrappers/gl_emulated.cpp b/renderdoc/driver/gl/wrappers/gl_emulated.cpp index 3dab406ce..49caf0ba1 100644 --- a/renderdoc/driver/gl/wrappers/gl_emulated.cpp +++ b/renderdoc/driver/gl/wrappers/gl_emulated.cpp @@ -2629,8 +2629,12 @@ void APIENTRY _glGetTexImage(GLenum target, GLint level, GLenum format, GLenum t RDCDEBUG("Doing manual blit from %s to allow readback", ToStr(format).c_str()); GLenum remapformat = eGL_RED; + GLenum internalformat = eGL_R8; if(format == eGL_LUMINANCE_ALPHA) + { remapformat = eGL_RG; + internalformat = eGL_RG8; + } GLint baseLevel = 0; GLint maxLevel = 0; @@ -2648,7 +2652,8 @@ void APIENTRY _glGetTexImage(GLenum target, GLint level, GLenum format, GLenum t // allocate the R8 texture GL.glTexParameteri(target, eGL_TEXTURE_MAX_LEVEL, 0); - GL.glTexImage2D(target, 0, eGL_R8, width, height, 0, remapformat, eGL_UNSIGNED_BYTE, NULL); + GL.glTexImage2D(target, 0, internalformat, width, height, 0, remapformat, eGL_UNSIGNED_BYTE, + NULL); // render to it GL.glFramebufferTexture2D(eGL_FRAMEBUFFER, eGL_COLOR_ATTACHMENT0, target, readtex, 0);