ES3.1: Implement framebuffer parameters api for opengl part.
Add new framebuffer parameters that can be set with glFramebufferParameteri
and queried with glGetFramebufferParameteriv.
GL_FRAMEBUFFER DEFAULT WIDTH
GL_FRAMEBUFFER_DEFAULT_HEIGHT
GL_FRAMEBUFFER_DEFAULT_SAMPLES
GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS
BUG=angleproject:1594
TEST=angle_unittests
TEST=angle_end2end_tests
TEST=dEQP-GLES31.functional.state_query.framebuffer_default.framebuffer_default*
Change-Id: I425e73a6b798fc7c73841ab98d7c8aabc381133d
Reviewed-on: https://chromium-review.googlesource.com/412126
Reviewed-by: Corentin Wallez <cwallez@chromium.org>
Commit-Queue: Geoff Lang <geofflang@chromium.org>
diff --git a/src/libANGLE/renderer/gl/FramebufferGL.cpp b/src/libANGLE/renderer/gl/FramebufferGL.cpp
index 95e6e11..8cf144f 100644
--- a/src/libANGLE/renderer/gl/FramebufferGL.cpp
+++ b/src/libANGLE/renderer/gl/FramebufferGL.cpp
@@ -419,6 +419,23 @@
case Framebuffer::DIRTY_BIT_READ_BUFFER:
mFunctions->readBuffer(mState.getReadBufferState());
break;
+ case Framebuffer::DIRTY_BIT_DEFAULT_WIDTH:
+ mFunctions->framebufferParameteri(GL_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_WIDTH,
+ mState.getDefaultWidth());
+ break;
+ case Framebuffer::DIRTY_BIT_DEFAULT_HEIGHT:
+ mFunctions->framebufferParameteri(GL_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_HEIGHT,
+ mState.getDefaultHeight());
+ break;
+ case Framebuffer::DIRTY_BIT_DEFAULT_SAMPLES:
+ mFunctions->framebufferParameteri(GL_FRAMEBUFFER, GL_FRAMEBUFFER_DEFAULT_SAMPLES,
+ mState.getDefaultSamples());
+ break;
+ case Framebuffer::DIRTY_BIT_DEFAULT_FIXED_SAMPLE_LOCATIONS:
+ mFunctions->framebufferParameteri(GL_FRAMEBUFFER,
+ GL_FRAMEBUFFER_DEFAULT_FIXED_SAMPLE_LOCATIONS,
+ mState.getDefaultFixedSampleLocations());
+ break;
default:
{
ASSERT(Framebuffer::DIRTY_BIT_COLOR_ATTACHMENT_0 == 0 &&