diff options
author | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-12 09:22:09 +0000 |
---|---|---|
committer | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-08-12 09:22:09 +0000 |
commit | 5644581074682888f92621c8ffeeaa7f9c7fe86e (patch) | |
tree | 3d047ae2915feaf37ab20e0fef88febfea3b0d79 /gpu/command_buffer | |
parent | 68dee6cf1332b8ac7c9769b00d23195615ae6c10 (diff) | |
download | chromium_src-5644581074682888f92621c8ffeeaa7f9c7fe86e.zip chromium_src-5644581074682888f92621c8ffeeaa7f9c7fe86e.tar.gz chromium_src-5644581074682888f92621c8ffeeaa7f9c7fe86e.tar.bz2 |
Add support for GL_EXT_read_format_bgra.
I think this is all that is needed.
TEST=unit tests
BUG=none
Review URL: http://codereview.chromium.org/3109008
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@55860 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'gpu/command_buffer')
-rw-r--r-- | gpu/command_buffer/service/context_group.cc | 23 | ||||
-rw-r--r-- | gpu/command_buffer/service/context_group_unittest.cc | 19 |
2 files changed, 40 insertions, 2 deletions
diff --git a/gpu/command_buffer/service/context_group.cc b/gpu/command_buffer/service/context_group.cc index 4e625c41..c0a9a98 100644 --- a/gpu/command_buffer/service/context_group.cc +++ b/gpu/command_buffer/service/context_group.cc @@ -65,15 +65,34 @@ bool ContextGroup::Initialize() { GL_COMPRESSED_RGBA_S3TC_DXT1_EXT); } + bool enable_texture_format_bgra8888 = false; + bool enable_read_format_bgra = false; // Check if we should allow GL_EXT_texture_format_BGRA8888 if (strstr(extensions, "GL_EXT_texture_format_BGRA8888") || - strstr(extensions, "GL_APPLE_texture_format_BGRA8888") || - strstr(extensions, "GL_EXT_bgra")) { + strstr(extensions, "GL_APPLE_texture_format_BGRA8888")) { + enable_texture_format_bgra8888 = true; + } + + if (strstr(extensions, "GL_EXT_bgra")) { + enable_texture_format_bgra8888 = true; + enable_read_format_bgra = true; + } + + if (strstr(extensions, "GL_EXT_read_format_bgra")) { + enable_read_format_bgra = true; + } + + if (enable_texture_format_bgra8888) { AddExtensionString("GL_EXT_texture_format_BGRA8888"); validators_.texture_internal_format.AddValue(GL_BGRA_EXT); validators_.texture_format.AddValue(GL_BGRA_EXT); } + if (enable_read_format_bgra) { + AddExtensionString("GL_EXT_read_format_bgra"); + validators_.read_pixel_format.AddValue(GL_BGRA_EXT); + } + // Check if we should allow GL_OES_texture_npot if (strstr(extensions, "GL_ARB_texture_non_power_of_two") || strstr(extensions, "GL_OES_texture_npot")) { diff --git a/gpu/command_buffer/service/context_group_unittest.cc b/gpu/command_buffer/service/context_group_unittest.cc index 3f8c65e..34c8adc 100644 --- a/gpu/command_buffer/service/context_group_unittest.cc +++ b/gpu/command_buffer/service/context_group_unittest.cc @@ -136,6 +136,8 @@ TEST_F(ContextGroupTest, InitializeNoExtensions) { GL_COMPRESSED_RGB_S3TC_DXT1_EXT)); EXPECT_FALSE(group_.validators()->compressed_texture_format.IsValid( GL_COMPRESSED_RGBA_S3TC_DXT1_EXT)); + EXPECT_FALSE(group_.validators()->read_pixel_format.IsValid( + GL_BGRA_EXT)); } TEST_F(ContextGroupTest, InitializeNPOTExtensionGLES) { @@ -190,10 +192,14 @@ TEST_F(ContextGroupTest, InitializeEXT_texture_format_BGRA8888GL) { group_.Initialize(); EXPECT_THAT(group_.extensions(), HasSubstr("GL_EXT_texture_format_BGRA8888")); + EXPECT_THAT(group_.extensions(), + HasSubstr("GL_EXT_read_format_bgra")); EXPECT_TRUE(group_.validators()->texture_format.IsValid( GL_BGRA_EXT)); EXPECT_TRUE(group_.validators()->texture_internal_format.IsValid( GL_BGRA_EXT)); + EXPECT_TRUE(group_.validators()->read_pixel_format.IsValid( + GL_BGRA_EXT)); } TEST_F(ContextGroupTest, InitializeEXT_texture_format_BGRA8888Apple) { @@ -207,6 +213,19 @@ TEST_F(ContextGroupTest, InitializeEXT_texture_format_BGRA8888Apple) { GL_BGRA_EXT)); } +TEST_F(ContextGroupTest, InitializeEXT_read_format_bgra) { + SetupInitExpectations("GL_EXT_read_format_bgra"); + group_.Initialize(); + EXPECT_THAT(group_.extensions(), + HasSubstr("GL_EXT_read_format_bgra")); + EXPECT_FALSE(group_.validators()->texture_format.IsValid( + GL_BGRA_EXT)); + EXPECT_FALSE(group_.validators()->texture_internal_format.IsValid( + GL_BGRA_EXT)); + EXPECT_TRUE(group_.validators()->read_pixel_format.IsValid( + GL_BGRA_EXT)); +} + TEST_F(ContextGroupTest, InitializeOES_texture_floatGLES2) { SetupInitExpectations("GL_OES_texture_float"); group_.Initialize(); |