Handle GL_EXT_texture_sRGB_decode. See gl-420-fbo-srgb-decode-ext

This commit is contained in:
baldurk
2014-12-02 00:25:49 +00:00
parent c1287fe853
commit 90e33ab95f
3 changed files with 11 additions and 0 deletions
+1
View File
@@ -332,6 +332,7 @@ WrappedOpenGL::WrappedOpenGL(const char *logfile, const GLHookSet &funcs)
glExts.push_back("GL_ARB_internalformat_query2");
glExts.push_back("GL_ARB_ES2_compatibility");
glExts.push_back("GL_EXT_texture_filter_anisotropic");
glExts.push_back("GL_EXT_texture_sRGB_decode");
#if !defined(_RELEASE)
CaptureOptions &opts = (CaptureOptions &)RenderDoc::Inst().GetCaptureOptions();
+3
View File
@@ -92,6 +92,7 @@ struct TextureStateInitialData
int32_t baseLevel, maxLevel;
float minLod, maxLod;
GLenum srgbDecode;
GLenum depthMode;
GLenum compareFunc, compareMode;
GLenum minFilter, magFilter;
@@ -228,6 +229,7 @@ bool GLResourceManager::Prepare_InitialState(GLResource res)
// only non-ms textures have sampler state
if(!ms)
{
gl.glGetTextureParameterivEXT(res.name, details.curType, eGL_TEXTURE_SRGB_DECODE_EXT, (GLint *)&state->srgbDecode);
gl.glGetTextureParameterivEXT(res.name, details.curType, eGL_TEXTURE_COMPARE_FUNC, (GLint *)&state->compareFunc);
gl.glGetTextureParameterivEXT(res.name, details.curType, eGL_TEXTURE_COMPARE_MODE, (GLint *)&state->compareMode);
gl.glGetTextureParameterivEXT(res.name, details.curType, eGL_TEXTURE_MIN_FILTER, (GLint *)&state->minFilter);
@@ -826,6 +828,7 @@ void GLResourceManager::Apply_InitialState(GLResource live, InitialContentData i
if(!ms)
{
gl.glTextureParameterivEXT(live.name, details.curType, eGL_TEXTURE_SRGB_DECODE_EXT, (GLint *)&state->srgbDecode);
gl.glTextureParameterivEXT(live.name, details.curType, eGL_TEXTURE_COMPARE_FUNC, (GLint *)&state->compareFunc);
gl.glTextureParameterivEXT(live.name, details.curType, eGL_TEXTURE_COMPARE_MODE, (GLint *)&state->compareMode);
gl.glTextureParameterivEXT(live.name, details.curType, eGL_TEXTURE_MIN_FILTER, (GLint *)&state->minFilter);
+7
View File
@@ -539,6 +539,13 @@ bool IsSRGBFormat(GLenum internalFormat)
{
case eGL_SRGB8:
case eGL_SRGB8_ALPHA8:
case eGL_SLUMINANCE8:
case eGL_SLUMINANCE8_ALPHA8:
case eGL_COMPRESSED_SRGB_S3TC_DXT1_EXT:
case eGL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:
case eGL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:
case eGL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:
case eGL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_ARB:
return true;
default:
break;