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 c3efa89204d5a794337be84ec63c1a6c9f54683f..5f684f37d82335703b2ff668a24c7500dde4c537 100644 |
| --- a/gpu/command_buffer/service/test_helper.cc |
| +++ b/gpu/command_buffer/service/test_helper.cc |
| @@ -58,6 +58,10 @@ T ConstructShaderVariable( |
| #ifndef COMPILER_MSVC |
| const GLuint TestHelper::kServiceBlackTexture2dId; |
| const GLuint TestHelper::kServiceDefaultTexture2dId; |
| +const GLuint TestHelper::kServiceBlackTexture3dId; |
| +const GLuint TestHelper::kServiceDefaultTexture3dId; |
| +const GLuint TestHelper::kServiceBlackTexture2dArrayId; |
| +const GLuint TestHelper::kServiceDefaultTexture2dArrayId; |
| const GLuint TestHelper::kServiceBlackTextureCubemapId; |
| const GLuint TestHelper::kServiceDefaultTextureCubemapId; |
| const GLuint TestHelper::kServiceBlackExternalTextureId; |
| @@ -93,10 +97,18 @@ void TestHelper::SetupTextureInitializationExpectations( |
| bool needs_initialization = (target != GL_TEXTURE_EXTERNAL_OES); |
| bool needs_faces = (target == GL_TEXTURE_CUBE_MAP); |
| + bool is_3d_or_2d_array_target = (target == GL_TEXTURE_3D || |
| + target == GL_TEXTURE_2D_ARRAY); |
| static GLuint texture_2d_ids[] = { |
| kServiceBlackTexture2dId, |
| kServiceDefaultTexture2dId }; |
| + static GLuint texture_3d_ids[] = { |
| + kServiceBlackTexture3dId, |
| + kServiceDefaultTexture3dId }; |
| + static GLuint texture_2d_array_ids[] = { |
| + kServiceBlackTexture2dArrayId, |
| + kServiceDefaultTexture2dArrayId }; |
| static GLuint texture_cube_map_ids[] = { |
| kServiceBlackTextureCubemapId, |
| kServiceDefaultTextureCubemapId }; |
| @@ -112,6 +124,12 @@ void TestHelper::SetupTextureInitializationExpectations( |
| case GL_TEXTURE_2D: |
| texture_ids = &texture_2d_ids[0]; |
| break; |
| + case GL_TEXTURE_3D: |
| + texture_ids = &texture_3d_ids[0]; |
| + break; |
| + case GL_TEXTURE_2D_ARRAY: |
| + texture_ids = &texture_2d_array_ids[0]; |
| + break; |
| case GL_TEXTURE_CUBE_MAP: |
| texture_ids = &texture_cube_map_ids[0]; |
| break; |
| @@ -152,10 +170,17 @@ void TestHelper::SetupTextureInitializationExpectations( |
| .RetiresOnSaturation(); |
| } |
| } else { |
| - EXPECT_CALL(*gl, TexImage2D(target, 0, GL_RGBA, 1, 1, 0, GL_RGBA, |
| - GL_UNSIGNED_BYTE, _)) |
| - .Times(1) |
| - .RetiresOnSaturation(); |
| + if (is_3d_or_2d_array_target) { |
| + EXPECT_CALL(*gl, TexImage3D(target, 0, GL_RGBA, 1, 1, 1, 0, GL_RGBA, |
| + GL_UNSIGNED_BYTE, _)) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + } else { |
| + EXPECT_CALL(*gl, TexImage2D(target, 0, GL_RGBA, 1, 1, 0, GL_RGBA, |
| + GL_UNSIGNED_BYTE, _)) |
| + .Times(1) |
| + .RetiresOnSaturation(); |
| + } |
| } |
| } |
| } |
| @@ -166,15 +191,25 @@ void TestHelper::SetupTextureInitializationExpectations( |
| void TestHelper::SetupTextureManagerInitExpectations( |
| ::gfx::MockGLInterface* gl, |
| + const char* gl_version, |
| const char* extensions, |
| bool use_default_textures) { |
| InSequence sequence; |
| + gfx::GLVersionInfo gl_info(gl_version, "", extensions); |
| + |
| SetupTextureInitializationExpectations( |
| gl, GL_TEXTURE_2D, use_default_textures); |
| SetupTextureInitializationExpectations( |
| gl, GL_TEXTURE_CUBE_MAP, use_default_textures); |
| + if (gl_info.is_es3) { |
|
Zhenyao Mo
2015/09/14 21:12:06
This is also incorrect. I assume you want to setu
qiankun
2015/09/15 09:14:59
Done.
|
| + SetupTextureInitializationExpectations( |
| + gl, GL_TEXTURE_3D, use_default_textures); |
| + SetupTextureInitializationExpectations( |
| + gl, GL_TEXTURE_2D_ARRAY, use_default_textures); |
| + } |
| + |
| bool ext_image_external = false; |
| bool arb_texture_rectangle = false; |
| base::CStringTokenizer t(extensions, extensions + strlen(extensions), " "); |
| @@ -211,6 +246,12 @@ void TestHelper::SetupTextureDestructionExpectations( |
| case GL_TEXTURE_2D: |
| texture_id = kServiceDefaultTexture2dId; |
| break; |
| + case GL_TEXTURE_3D: |
| + texture_id = kServiceDefaultTexture3dId; |
| + break; |
| + case GL_TEXTURE_2D_ARRAY: |
| + texture_id = kServiceDefaultTexture2dArrayId; |
| + break; |
| case GL_TEXTURE_CUBE_MAP: |
| texture_id = kServiceDefaultTextureCubemapId; |
| break; |
| @@ -231,12 +272,22 @@ void TestHelper::SetupTextureDestructionExpectations( |
| void TestHelper::SetupTextureManagerDestructionExpectations( |
| ::gfx::MockGLInterface* gl, |
| + const char* gl_version, |
|
Zhenyao Mo
2015/09/14 21:12:06
same here.
qiankun
2015/09/15 09:14:58
Done.
|
| const char* extensions, |
| bool use_default_textures) { |
| SetupTextureDestructionExpectations(gl, GL_TEXTURE_2D, use_default_textures); |
| SetupTextureDestructionExpectations( |
| gl, GL_TEXTURE_CUBE_MAP, use_default_textures); |
| + gfx::GLVersionInfo gl_info(gl_version, "", extensions); |
| + |
| + if (gl_info.is_es3) { |
| + SetupTextureDestructionExpectations( |
| + gl, GL_TEXTURE_3D, use_default_textures); |
| + SetupTextureDestructionExpectations( |
| + gl, GL_TEXTURE_2D_ARRAY,use_default_textures); |
| + } |
| + |
| bool ext_image_external = false; |
| bool arb_texture_rectangle = false; |
| base::CStringTokenizer t(extensions, extensions + strlen(extensions), " "); |
| @@ -260,7 +311,7 @@ void TestHelper::SetupTextureManagerDestructionExpectations( |
| gl, GL_TEXTURE_RECTANGLE_ARB, use_default_textures); |
| } |
| - EXPECT_CALL(*gl, DeleteTextures(4, _)) |
| + EXPECT_CALL(*gl, DeleteTextures(6, _)) |
| .Times(1) |
| .RetiresOnSaturation(); |
| } |
| @@ -343,7 +394,8 @@ void TestHelper::SetupContextGroupInitExpectations( |
| } |
| bool use_default_textures = bind_generates_resource; |
| - SetupTextureManagerInitExpectations(gl, extensions, use_default_textures); |
| + SetupTextureManagerInitExpectations( |
| + gl, gl_version, extensions, use_default_textures); |
| } |
| void TestHelper::SetupFeatureInfoInitExpectations( |