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 |