Implement GL_EXT_sRGB_write_control for GL.
BUG=angleproject:1547
BUG=655247
Change-Id: I3f04ddc7032e4a47eb21ff3b8586c5b47415bb64
Reviewed-on: https://chromium-review.googlesource.com/400958
Commit-Queue: Geoff Lang <geofflang@chromium.org>
Reviewed-by: Jamie Madill <jmadill@chromium.org>
diff --git a/src/libANGLE/State.cpp b/src/libANGLE/State.cpp
index f7d4850..8cf9f96 100644
--- a/src/libANGLE/State.cpp
+++ b/src/libANGLE/State.cpp
@@ -60,7 +60,8 @@
mActiveSampler(0),
mPrimitiveRestart(false),
mMultiSampling(false),
- mSampleAlphaToOne(false)
+ mSampleAlphaToOne(false),
+ mFramebufferSRGB(true)
{
}
@@ -637,6 +638,9 @@
case GL_DEBUG_OUTPUT:
mDebug.setOutputEnabled(enabled);
break;
+ case GL_FRAMEBUFFER_SRGB_EXT:
+ setFramebufferSRGB(enabled);
+ break;
default: UNREACHABLE();
}
}
@@ -664,6 +668,8 @@
return mDebug.isOutputEnabled();
case GL_BIND_GENERATES_RESOURCE_CHROMIUM:
return isBindGeneratesResourceEnabled();
+ case GL_FRAMEBUFFER_SRGB_EXT:
+ return getFramebufferSRGB();
default: UNREACHABLE(); return false;
}
}
@@ -1456,6 +1462,17 @@
return mPathStencilMask;
}
+void State::setFramebufferSRGB(bool sRGB)
+{
+ mFramebufferSRGB = sRGB;
+ mDirtyBits.set(DIRTY_BIT_FRAMEBUFFER_SRGB);
+}
+
+bool State::getFramebufferSRGB() const
+{
+ return mFramebufferSRGB;
+}
+
void State::getBooleanv(GLenum pname, GLboolean *params)
{
switch (pname)
@@ -1500,6 +1517,9 @@
case GL_BIND_GENERATES_RESOURCE_CHROMIUM:
*params = isBindGeneratesResourceEnabled() ? GL_TRUE : GL_FALSE;
break;
+ case GL_FRAMEBUFFER_SRGB_EXT:
+ *params = getFramebufferSRGB() ? GL_TRUE : GL_FALSE;
+ break;
default:
UNREACHABLE();
break;