| OLD | NEW |
| 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2016 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #ifndef GL_GLEXT_PROTOTYPES | 5 #ifndef GL_GLEXT_PROTOTYPES |
| 6 #define GL_GLEXT_PROTOTYPES | 6 #define GL_GLEXT_PROTOTYPES |
| 7 #endif | 7 #endif |
| 8 | 8 |
| 9 #include <GLES2/gl2.h> | 9 #include <GLES2/gl2.h> |
| 10 #include <GLES2/gl2ext.h> | 10 #include <GLES2/gl2ext.h> |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 | 130 |
| 131 glBindFramebuffer(GL_FRAMEBUFFER, 0); | 131 glBindFramebuffer(GL_FRAMEBUFFER, 0); |
| 132 glApplyScreenSpaceAntialiasingCHROMIUM(); | 132 glApplyScreenSpaceAntialiasingCHROMIUM(); |
| 133 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), glGetError()); | 133 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_OPERATION), glGetError()); |
| 134 } | 134 } |
| 135 | 135 |
| 136 TEST_F(GLApplyScreenSpaceAntialiasingCHROMIUMTest, InternalFormat) { | 136 TEST_F(GLApplyScreenSpaceAntialiasingCHROMIUMTest, InternalFormat) { |
| 137 if (!available_) | 137 if (!available_) |
| 138 return; | 138 return; |
| 139 | 139 |
| 140 GLint formats[] = {GL_RGB, GL_RGBA}; | 140 GLint formats[] = {GL_RGB, GL_RGBA, GL_ALPHA, GL_LUMINANCE, |
| 141 GL_LUMINANCE_ALPHA}; |
| 141 for (size_t index = 0; index < arraysize(formats); index++) { | 142 for (size_t index = 0; index < arraysize(formats); index++) { |
| 142 glTexImage2D(GL_TEXTURE_2D, 0, formats[index], 1, 1, 0, formats[index], | 143 glTexImage2D(GL_TEXTURE_2D, 0, formats[index], 1, 1, 0, formats[index], |
| 143 GL_UNSIGNED_BYTE, nullptr); | 144 GL_UNSIGNED_BYTE, nullptr); |
| 144 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); | 145 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); |
| 145 | 146 |
| 146 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, | 147 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, |
| 147 textures_, 0); | 148 textures_, 0); |
| 148 | 149 |
| 150 // Only if the format is supported by FBO, supported by this extension. |
| 151 if (glCheckFramebufferStatus(GL_FRAMEBUFFER) != GL_FRAMEBUFFER_COMPLETE) |
| 152 continue; |
| 153 |
| 149 glClear(GL_COLOR_BUFFER_BIT); | 154 glClear(GL_COLOR_BUFFER_BIT); |
| 155 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); |
| 150 | 156 |
| 151 glApplyScreenSpaceAntialiasingCHROMIUM(); | 157 glApplyScreenSpaceAntialiasingCHROMIUM(); |
| 152 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()) << "index:" | 158 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()) << "index:" |
| 153 << index; | 159 << index; |
| 154 | 160 |
| 155 uint8_t pixels[1 * 4] = {0u, 255u, 0u, 255u}; | 161 uint8_t pixels[1 * 4] = {0u, 255u, 0u, 255u}; |
| 156 GLTestHelper::CheckPixels(0, 0, 1, 1, 0, pixels); | 162 GLTestHelper::CheckPixels(0, 0, 1, 1, 0, pixels); |
| 157 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); | 163 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); |
| 158 } | 164 } |
| 159 } | 165 } |
| 160 | 166 |
| 161 TEST_F(GLApplyScreenSpaceAntialiasingCHROMIUMTest, InternalFormatNotSupported) { | |
| 162 if (!available_) | |
| 163 return; | |
| 164 | |
| 165 // Check unsupported format reports error. | |
| 166 GLint unsupported_formats[] = {GL_ALPHA, GL_LUMINANCE, GL_LUMINANCE_ALPHA}; | |
| 167 for (size_t index = 0; index < arraysize(unsupported_formats); index++) { | |
| 168 glTexImage2D(GL_TEXTURE_2D, 0, unsupported_formats[index], 1, 1, 0, | |
| 169 unsupported_formats[index], GL_UNSIGNED_BYTE, nullptr); | |
| 170 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); | |
| 171 | |
| 172 glFramebufferTexture2D(GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, | |
| 173 textures_, 0); | |
| 174 | |
| 175 glClear(GL_COLOR_BUFFER_BIT); | |
| 176 | |
| 177 glApplyScreenSpaceAntialiasingCHROMIUM(); | |
| 178 EXPECT_EQ(static_cast<GLenum>(GL_INVALID_FRAMEBUFFER_OPERATION), | |
| 179 glGetError()) | |
| 180 << "index:" << index; | |
| 181 } | |
| 182 } | |
| 183 | |
| 184 TEST_F(GLApplyScreenSpaceAntialiasingCHROMIUMTest, ImmutableTexture) { | 167 TEST_F(GLApplyScreenSpaceAntialiasingCHROMIUMTest, ImmutableTexture) { |
| 185 if (!available_) | 168 if (!available_) |
| 186 return; | 169 return; |
| 187 | 170 |
| 188 if (!GLTestHelper::HasExtension("GL_EXT_texture_storage")) { | 171 if (!GLTestHelper::HasExtension("GL_EXT_texture_storage")) { |
| 189 LOG(INFO) << "GL_EXT_texture_storage not supported. Skipping test..."; | 172 LOG(INFO) << "GL_EXT_texture_storage not supported. Skipping test..."; |
| 190 return; | 173 return; |
| 191 } | 174 } |
| 192 GLenum internal_formats[] = {GL_RGB8_OES, GL_RGBA8_OES, GL_BGRA8_EXT}; | 175 GLenum internal_formats[] = {GL_RGB8_OES, GL_RGBA8_OES, GL_BGRA8_EXT}; |
| 193 for (auto internal_format : internal_formats) { | 176 for (auto internal_format : internal_formats) { |
| (...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 431 EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, 1, 1, 0, expected)); | 414 EXPECT_TRUE(GLTestHelper::CheckPixels(0, 0, 1, 1, 0, expected)); |
| 432 | 415 |
| 433 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); | 416 EXPECT_EQ(static_cast<GLenum>(GL_NO_ERROR), glGetError()); |
| 434 | 417 |
| 435 gl2.MakeCurrent(); | 418 gl2.MakeCurrent(); |
| 436 gl2.Destroy(); | 419 gl2.Destroy(); |
| 437 gl_.MakeCurrent(); | 420 gl_.MakeCurrent(); |
| 438 } | 421 } |
| 439 | 422 |
| 440 } // namespace gpu | 423 } // namespace gpu |
| OLD | NEW |