Chromium Code Reviews| Index: gpu/command_buffer/service/test_helper.cc |
| diff --git a/gpu/command_buffer/service/test_helper.cc b/gpu/command_buffer/service/test_helper.cc |
| index 92c5ec456ef78ca6ff2d1ab6a0b922c224bf3bf3..c164eea9d92c9cae1743be4653728179738014e5 100644 |
| --- a/gpu/command_buffer/service/test_helper.cc |
| +++ b/gpu/command_buffer/service/test_helper.cc |
| @@ -227,16 +227,20 @@ void TestHelper::SetupTextureManagerDestructionExpectations( |
| void TestHelper::SetupContextGroupInitExpectations( |
| ::gfx::MockGLInterface* gl, |
| const DisallowedFeatures& disallowed_features, |
| - const char* extensions) { |
| + const char* extensions, |
| + const char* gl_version) { |
| InSequence sequence; |
| - SetupFeatureInfoInitExpectations(gl, extensions); |
| + SetupFeatureInfoInitExpectationsWithGLVersion(gl, extensions, "", gl_version); |
| + |
| + std::string l_version(StringToLowerASCII(std::string(gl_version))); |
| + bool is_es3 = (l_version.substr(0, 12) == "opengl es 3."); |
| EXPECT_CALL(*gl, GetIntegerv(GL_MAX_RENDERBUFFER_SIZE, _)) |
| .WillOnce(SetArgumentPointee<1>(kMaxRenderbufferSize)) |
| .RetiresOnSaturation(); |
| if (strstr(extensions, "GL_EXT_framebuffer_multisample") || |
| - strstr(extensions, "GL_EXT_multisampled_render_to_texture")) { |
| + strstr(extensions, "GL_EXT_multisampled_render_to_texture") || is_es3) { |
| EXPECT_CALL(*gl, GetIntegerv(GL_MAX_SAMPLES, _)) |
| .WillOnce(SetArgumentPointee<1>(kMaxSamples)) |
| .RetiresOnSaturation(); |
| @@ -297,6 +301,78 @@ void TestHelper::SetupFeatureInfoInitExpectationsWithGLVersion( |
| EXPECT_CALL(*gl, GetString(GL_VERSION)) |
| .WillOnce(Return(reinterpret_cast<const uint8*>(gl_version))) |
| .RetiresOnSaturation(); |
| + |
| + std::string l_version(StringToLowerASCII(std::string(gl_version))); |
| + bool is_es3 = (l_version.substr(0, 12) == "opengl es 3."); |
|
Ken Russell (switch to Gerrit)
2014/02/12 00:11:01
This will be fragile if ES 4 ever comes out. Would
oetuaho-nv
2014/02/12 10:51:43
This matches the ES3 check in feature_info.cc that
|
| + |
| + if (strstr(extensions, "GL_ARB_texture_float") || |
| + (is_es3 && strstr(extensions, "GL_EXT_color_buffer_float"))) { |
| + static const GLuint gl_ids[] = {101, 102}; |
| + const GLsizei width = 16; |
| + EXPECT_CALL(*gl, GetIntegerv(GL_FRAMEBUFFER_BINDING, _)) |
| + .WillOnce(SetArgumentPointee<1>(gl_ids[0])) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, GetIntegerv(GL_TEXTURE_BINDING_2D, _)) |
| + .WillOnce(SetArgumentPointee<1>(gl_ids[0])) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, GenTextures(1, _)) |
| + .WillOnce(SetArrayArgument<1>(gl_ids + 1, gl_ids + 2)) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, GenFramebuffersEXT(1, _)) |
| + .WillOnce(SetArrayArgument<1>(gl_ids + 1, gl_ids + 2)) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, BindTexture(GL_TEXTURE_2D, gl_ids[1])) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, TexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, |
| + GL_NEAREST)) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, TexImage2D(GL_TEXTURE_2D, 0, GL_RGBA32F, width, width, 0, |
| + GL_RGBA, GL_FLOAT, _)) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, BindFramebufferEXT(GL_FRAMEBUFFER, gl_ids[1])) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, FramebufferTexture2DEXT(GL_FRAMEBUFFER, |
| + GL_COLOR_ATTACHMENT0, GL_TEXTURE_2D, gl_ids[1], 0)) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)) |
| + .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, TexImage2D(GL_TEXTURE_2D, 0, GL_RGB32F, width, width, 0, |
| + GL_RGB, GL_FLOAT, _)) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + if (is_es3) { |
| + EXPECT_CALL(*gl, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)) |
| + .WillOnce(Return(GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT)) |
| + .RetiresOnSaturation(); |
| + } else { |
| + EXPECT_CALL(*gl, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)) |
| + .WillOnce(Return(GL_FRAMEBUFFER_COMPLETE)) |
| + .RetiresOnSaturation(); |
| + } |
| + EXPECT_CALL(*gl, DeleteFramebuffersEXT(1, _)) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, DeleteTextures(1, _)) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, BindFramebufferEXT(GL_FRAMEBUFFER, gl_ids[0])) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + EXPECT_CALL(*gl, BindTexture(GL_TEXTURE_2D, gl_ids[0])) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + if (DCHECK_IS_ON()) { |
| + EXPECT_CALL(*gl, GetError()) |
| + .WillOnce(Return(GL_NO_ERROR)) |
| + .RetiresOnSaturation(); |
| + } |
| + } |
| } |
| void TestHelper::SetupExpectationsForClearingUniforms( |