| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 #include "gpu/command_buffer/service/test_helper.h" | 5 #include "gpu/command_buffer/service/test_helper.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 #include <string> | 8 #include <string> |
| 9 | 9 |
| 10 #include "base/strings/string_number_conversions.h" | 10 #include "base/strings/string_number_conversions.h" |
| (...skipping 274 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 strstr(extensions, "GL_EXT_multisampled_render_to_texture") || | 285 strstr(extensions, "GL_EXT_multisampled_render_to_texture") || |
| 286 gl_info.is_es3) { | 286 gl_info.is_es3) { |
| 287 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_SAMPLES, _)) | 287 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_SAMPLES, _)) |
| 288 .WillOnce(SetArgumentPointee<1>(kMaxSamples)) | 288 .WillOnce(SetArgumentPointee<1>(kMaxSamples)) |
| 289 .RetiresOnSaturation(); | 289 .RetiresOnSaturation(); |
| 290 } else if (strstr(extensions, "GL_IMG_multisampled_render_to_texture")) { | 290 } else if (strstr(extensions, "GL_IMG_multisampled_render_to_texture")) { |
| 291 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_SAMPLES_IMG, _)) | 291 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_SAMPLES_IMG, _)) |
| 292 .WillOnce(SetArgumentPointee<1>(kMaxSamples)) | 292 .WillOnce(SetArgumentPointee<1>(kMaxSamples)) |
| 293 .RetiresOnSaturation(); | 293 .RetiresOnSaturation(); |
| 294 } | 294 } |
| 295 |
| 296 if (gl_info.IsAtLeastGL(3, 3) || |
| 297 (gl_info.IsAtLeastGL(3, 2) && |
| 298 strstr(extensions, "GL_ARB_blend_func_extended")) || |
| 299 (gl_info.is_es && strstr(extensions, "GL_EXT_blend_func_extended"))) { |
| 300 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_DUAL_SOURCE_DRAW_BUFFERS_EXT, _)) |
| 301 .WillOnce(SetArgumentPointee<1>(8)) |
| 302 .RetiresOnSaturation(); |
| 303 } |
| 304 |
| 295 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_VERTEX_ATTRIBS, _)) | 305 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_VERTEX_ATTRIBS, _)) |
| 296 .WillOnce(SetArgumentPointee<1>(kNumVertexAttribs)) | 306 .WillOnce(SetArgumentPointee<1>(kNumVertexAttribs)) |
| 297 .RetiresOnSaturation(); | 307 .RetiresOnSaturation(); |
| 298 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, _)) | 308 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS, _)) |
| 299 .WillOnce(SetArgumentPointee<1>(kNumTextureUnits)) | 309 .WillOnce(SetArgumentPointee<1>(kNumTextureUnits)) |
| 300 .RetiresOnSaturation(); | 310 .RetiresOnSaturation(); |
| 301 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_TEXTURE_SIZE, _)) | 311 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_TEXTURE_SIZE, _)) |
| 302 .WillOnce(SetArgumentPointee<1>(kMaxTextureSize)) | 312 .WillOnce(SetArgumentPointee<1>(kMaxTextureSize)) |
| 303 .RetiresOnSaturation(); | 313 .RetiresOnSaturation(); |
| 304 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, _)) | 314 EXPECT_CALL(*gl, GetIntegerv(GL_MAX_CUBE_MAP_TEXTURE_SIZE, _)) |
| (...skipping 536 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 841 } else { | 851 } else { |
| 842 EXPECT_CALL(*error_state, SetGLErrorInvalidParami(_, _, error, _, _, _)) | 852 EXPECT_CALL(*error_state, SetGLErrorInvalidParami(_, _, error, _, _, _)) |
| 843 .Times(1) | 853 .Times(1) |
| 844 .RetiresOnSaturation(); | 854 .RetiresOnSaturation(); |
| 845 } | 855 } |
| 846 manager->SetParameteri("", error_state, texture_ref, pname, value); | 856 manager->SetParameteri("", error_state, texture_ref, pname, value); |
| 847 } | 857 } |
| 848 | 858 |
| 849 // static | 859 // static |
| 850 void TestHelper::SetShaderStates( | 860 void TestHelper::SetShaderStates( |
| 851 ::gfx::MockGLInterface* gl, Shader* shader, | 861 ::gfx::MockGLInterface* gl, |
| 852 bool expected_valid, | 862 Shader* shader, |
| 853 const std::string* const expected_log_info, | 863 bool expected_valid, |
| 854 const std::string* const expected_translated_source, | 864 const std::string* const expected_log_info, |
| 855 const int* const expected_shader_version, | 865 const std::string* const expected_translated_source, |
| 856 const AttributeMap* const expected_attrib_map, | 866 const int* const expected_shader_version, |
| 857 const UniformMap* const expected_uniform_map, | 867 const AttributeMap* const expected_attrib_map, |
| 858 const VaryingMap* const expected_varying_map, | 868 const UniformMap* const expected_uniform_map, |
| 859 const NameMap* const expected_name_map) { | 869 const VaryingMap* const expected_varying_map, |
| 870 const AttributeList* const expected_output_variable_list, |
| 871 const NameMap* const expected_name_map) { |
| 860 const std::string empty_log_info; | 872 const std::string empty_log_info; |
| 861 const std::string* log_info = (expected_log_info && !expected_valid) ? | 873 const std::string* log_info = (expected_log_info && !expected_valid) ? |
| 862 expected_log_info : &empty_log_info; | 874 expected_log_info : &empty_log_info; |
| 863 const std::string empty_translated_source; | 875 const std::string empty_translated_source; |
| 864 const std::string* translated_source = | 876 const std::string* translated_source = |
| 865 (expected_translated_source && expected_valid) ? | 877 (expected_translated_source && expected_valid) ? |
| 866 expected_translated_source : &empty_translated_source; | 878 expected_translated_source : &empty_translated_source; |
| 867 int default_shader_version = 100; | 879 int default_shader_version = 100; |
| 868 const int* shader_version = (expected_shader_version && expected_valid) ? | 880 const int* shader_version = (expected_shader_version && expected_valid) ? |
| 869 expected_shader_version : &default_shader_version; | 881 expected_shader_version : &default_shader_version; |
| 870 const AttributeMap empty_attrib_map; | 882 const AttributeMap empty_attrib_map; |
| 871 const AttributeMap* attrib_map = (expected_attrib_map && expected_valid) ? | 883 const AttributeMap* attrib_map = (expected_attrib_map && expected_valid) ? |
| 872 expected_attrib_map : &empty_attrib_map; | 884 expected_attrib_map : &empty_attrib_map; |
| 873 const UniformMap empty_uniform_map; | 885 const UniformMap empty_uniform_map; |
| 874 const UniformMap* uniform_map = (expected_uniform_map && expected_valid) ? | 886 const UniformMap* uniform_map = (expected_uniform_map && expected_valid) ? |
| 875 expected_uniform_map : &empty_uniform_map; | 887 expected_uniform_map : &empty_uniform_map; |
| 876 const VaryingMap empty_varying_map; | 888 const VaryingMap empty_varying_map; |
| 877 const VaryingMap* varying_map = (expected_varying_map && expected_valid) ? | 889 const VaryingMap* varying_map = (expected_varying_map && expected_valid) ? |
| 878 expected_varying_map : &empty_varying_map; | 890 expected_varying_map : &empty_varying_map; |
| 891 const AttributeList empty_output_variable_list; |
| 892 const AttributeList* output_variable_list = |
| 893 (expected_output_variable_list && expected_valid) |
| 894 ? expected_output_variable_list |
| 895 : &empty_output_variable_list; |
| 879 const NameMap empty_name_map; | 896 const NameMap empty_name_map; |
| 880 const NameMap* name_map = (expected_name_map && expected_valid) ? | 897 const NameMap* name_map = (expected_name_map && expected_valid) ? |
| 881 expected_name_map : &empty_name_map; | 898 expected_name_map : &empty_name_map; |
| 882 | 899 |
| 883 MockShaderTranslator* mock_translator = new MockShaderTranslator; | 900 MockShaderTranslator* mock_translator = new MockShaderTranslator; |
| 884 scoped_refptr<ShaderTranslatorInterface> translator(mock_translator); | 901 scoped_refptr<ShaderTranslatorInterface> translator(mock_translator); |
| 885 EXPECT_CALL(*mock_translator, Translate(_, | 902 EXPECT_CALL(*mock_translator, Translate(_, |
| 886 NotNull(), // log_info | 903 NotNull(), // log_info |
| 887 NotNull(), // translated_source | 904 NotNull(), // translated_source |
| 888 NotNull(), // shader_version | 905 NotNull(), // shader_version |
| 889 NotNull(), // attrib_map | 906 NotNull(), // attrib_map |
| 890 NotNull(), // uniform_map | 907 NotNull(), // uniform_map |
| 891 NotNull(), // varying_map | 908 NotNull(), // varying_map |
| 909 NotNull(), // output_variable_list |
| 892 NotNull())) // name_map | 910 NotNull())) // name_map |
| 893 .WillOnce(DoAll(SetArgumentPointee<1>(*log_info), | 911 .WillOnce(DoAll(SetArgumentPointee<1>(*log_info), |
| 894 SetArgumentPointee<2>(*translated_source), | 912 SetArgumentPointee<2>(*translated_source), |
| 895 SetArgumentPointee<3>(*shader_version), | 913 SetArgumentPointee<3>(*shader_version), |
| 896 SetArgumentPointee<4>(*attrib_map), | 914 SetArgumentPointee<4>(*attrib_map), |
| 897 SetArgumentPointee<5>(*uniform_map), | 915 SetArgumentPointee<5>(*uniform_map), |
| 898 SetArgumentPointee<6>(*varying_map), | 916 SetArgumentPointee<6>(*varying_map), |
| 899 SetArgumentPointee<7>(*name_map), | 917 SetArgumentPointee<7>(*output_variable_list), |
| 900 Return(expected_valid))) | 918 SetArgumentPointee<8>(*name_map), Return(expected_valid))) |
| 901 .RetiresOnSaturation(); | 919 .RetiresOnSaturation(); |
| 902 if (expected_valid) { | 920 if (expected_valid) { |
| 903 EXPECT_CALL(*gl, ShaderSource(shader->service_id(), 1, _, NULL)) | 921 EXPECT_CALL(*gl, ShaderSource(shader->service_id(), 1, _, NULL)) |
| 904 .Times(1) | 922 .Times(1) |
| 905 .RetiresOnSaturation(); | 923 .RetiresOnSaturation(); |
| 906 EXPECT_CALL(*gl, CompileShader(shader->service_id())) | 924 EXPECT_CALL(*gl, CompileShader(shader->service_id())) |
| 907 .Times(1) | 925 .Times(1) |
| 908 .RetiresOnSaturation(); | 926 .RetiresOnSaturation(); |
| 909 EXPECT_CALL(*gl, GetShaderiv(shader->service_id(), | 927 EXPECT_CALL(*gl, GetShaderiv(shader->service_id(), |
| 910 GL_COMPILE_STATUS, | 928 GL_COMPILE_STATUS, |
| 911 NotNull())) // status | 929 NotNull())) // status |
| 912 .WillOnce(SetArgumentPointee<2>(GL_TRUE)) | 930 .WillOnce(SetArgumentPointee<2>(GL_TRUE)) |
| 913 .RetiresOnSaturation(); | 931 .RetiresOnSaturation(); |
| 914 } | 932 } |
| 915 shader->RequestCompile(translator, Shader::kGL); | 933 shader->RequestCompile(translator, Shader::kGL); |
| 916 shader->DoCompile(); | 934 shader->DoCompile(); |
| 917 } | 935 } |
| 918 | 936 |
| 919 // static | 937 // static |
| 920 void TestHelper::SetShaderStates( | 938 void TestHelper::SetShaderStates( |
| 921 ::gfx::MockGLInterface* gl, Shader* shader, bool valid) { | 939 ::gfx::MockGLInterface* gl, Shader* shader, bool valid) { |
| 922 SetShaderStates(gl, shader, valid, NULL, NULL, NULL, NULL, NULL, NULL, NULL); | 940 SetShaderStates(gl, shader, valid, NULL, NULL, NULL, NULL, NULL, NULL, NULL, |
| 941 NULL); |
| 923 } | 942 } |
| 924 | 943 |
| 925 // static | 944 // static |
| 926 sh::Attribute TestHelper::ConstructAttribute( | 945 sh::Attribute TestHelper::ConstructAttribute( |
| 927 GLenum type, GLint array_size, GLenum precision, | 946 GLenum type, GLint array_size, GLenum precision, |
| 928 bool static_use, const std::string& name) { | 947 bool static_use, const std::string& name) { |
| 929 return ConstructShaderVariable<sh::Attribute>( | 948 return ConstructShaderVariable<sh::Attribute>( |
| 930 type, array_size, precision, static_use, name); | 949 type, array_size, precision, static_use, name); |
| 931 } | 950 } |
| 932 | 951 |
| (...skipping 19 matching lines...) Expand all Loading... |
| 952 gfx::SetGLImplementation(implementation); | 971 gfx::SetGLImplementation(implementation); |
| 953 } | 972 } |
| 954 | 973 |
| 955 ScopedGLImplementationSetter::~ScopedGLImplementationSetter() { | 974 ScopedGLImplementationSetter::~ScopedGLImplementationSetter() { |
| 956 gfx::SetGLImplementation(old_implementation_); | 975 gfx::SetGLImplementation(old_implementation_); |
| 957 } | 976 } |
| 958 | 977 |
| 959 } // namespace gles2 | 978 } // namespace gles2 |
| 960 } // namespace gpu | 979 } // namespace gpu |
| 961 | 980 |
| OLD | NEW |