Commit 488130e0 by Geoff Lang Committed by Commit Bot

Make GL_ANGLE_framebuffer_multisample enableable.

BUG=angleproject:1523 Change-Id: Idc2cf338ba1fb5142ef2596603d291790fd6ddd6 Reviewed-on: https://chromium-review.googlesource.com/688100Reviewed-by: 's avatarCorentin Wallez <cwallez@chromium.org> Commit-Queue: Geoff Lang <geofflang@chromium.org>
parent 536eca10
......@@ -650,7 +650,7 @@ const ExtensionInfoMap &GetExtensionInfoMap()
map["GL_KHR_robust_buffer_access_behavior"] = esOnlyExtension(&Extensions::robustBufferAccessBehavior);
map["GL_EXT_blend_minmax"] = enableableExtension(&Extensions::blendMinMax);
map["GL_ANGLE_framebuffer_blit"] = esOnlyExtension(&Extensions::framebufferBlit);
map["GL_ANGLE_framebuffer_multisample"] = esOnlyExtension(&Extensions::framebufferMultisample);
map["GL_ANGLE_framebuffer_multisample"] = enableableExtension(&Extensions::framebufferMultisample);
map["GL_ANGLE_instanced_arrays"] = esOnlyExtension(&Extensions::instancedArrays);
map["GL_ANGLE_pack_reverse_row_order"] = esOnlyExtension(&Extensions::packReverseRowOrder);
map["GL_OES_standard_derivatives"] = enableableExtension(&Extensions::standardDerivatives);
......
......@@ -191,11 +191,8 @@ void State::initialize(const Context *context,
mDebug.setOutputEnabled(debug);
mDebug.setMaxLoggedMessages(extensions.maxDebugLoggedMessages);
if (extensions.framebufferMultisample)
{
mMultiSampling = true;
mSampleAlphaToOne = false;
}
mMultiSampling = true;
mSampleAlphaToOne = false;
mCoverageModulation = GL_NONE;
......
......@@ -642,6 +642,36 @@ TEST_P(WebGLCompatibilityTest, EnableQueryExtensions)
}
}
// Test enabling the GL_ANGLE_framebuffer_multisample extension
TEST_P(WebGLCompatibilityTest, EnableFramebufferMultisampleExtension)
{
EXPECT_FALSE(extensionEnabled("GL_ANGLE_framebuffer_multisample"));
// This extensions become core in in ES3/WebGL2.
ANGLE_SKIP_TEST_IF(getClientMajorVersion() >= 3);
GLint maxSamples = 0;
glGetIntegerv(GL_MAX_SAMPLES, &maxSamples);
EXPECT_GL_ERROR(GL_INVALID_ENUM);
GLRenderbuffer renderbuffer;
glBindRenderbuffer(GL_RENDERBUFFER, renderbuffer);
glRenderbufferStorageMultisampleANGLE(GL_RENDERBUFFER, 1, GL_RGBA4, 1, 1);
EXPECT_GL_ERROR(GL_INVALID_OPERATION);
if (extensionRequestable("GL_ANGLE_framebuffer_multisample"))
{
glRequestExtensionANGLE("GL_ANGLE_framebuffer_multisample");
EXPECT_GL_NO_ERROR();
glGetIntegerv(GL_MAX_SAMPLES, &maxSamples);
EXPECT_GL_NO_ERROR();
glRenderbufferStorageMultisampleANGLE(GL_RENDERBUFFER, maxSamples, GL_RGBA4, 1, 1);
EXPECT_GL_NO_ERROR();
}
}
// Verify that the context generates the correct error when the framebuffer attachments are
// different sizes
TEST_P(WebGLCompatibilityTest, FramebufferAttachmentSizeMissmatch)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment