OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/gles2_cmd_decoder.h" | 5 #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
6 | 6 |
7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
8 #include "base/strings/string_number_conversions.h" | 8 #include "base/strings/string_number_conversions.h" |
9 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 9 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 10 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
(...skipping 857 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
868 kInvalidSharedMemoryId, | 868 kInvalidSharedMemoryId, |
869 kSharedMemoryOffset); | 869 kSharedMemoryOffset); |
870 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); | 870 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
871 cmd.Init(client_program_id_, | 871 cmd.Init(client_program_id_, |
872 kBucketId, | 872 kBucketId, |
873 kSharedMemoryId, | 873 kSharedMemoryId, |
874 kInvalidSharedMemoryOffset); | 874 kInvalidSharedMemoryOffset); |
875 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); | 875 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
876 } | 876 } |
877 | 877 |
| 878 TEST_P(GLES2DecoderWithShaderTest, GetFragDataLocation) { |
| 879 const uint32 kBucketId = 123; |
| 880 const GLint kLocation = 10; |
| 881 const char* kName = "color"; |
| 882 typedef GetFragDataLocation::Result Result; |
| 883 Result* result = GetSharedMemoryAs<Result*>(); |
| 884 SetBucketAsCString(kBucketId, kName); |
| 885 *result = -1; |
| 886 GetFragDataLocation cmd; |
| 887 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); |
| 888 EXPECT_CALL(*gl_, GetFragDataLocation(kServiceProgramId, StrEq(kName))) |
| 889 .WillOnce(Return(kLocation)) |
| 890 .RetiresOnSaturation(); |
| 891 decoder_->set_unsafe_es3_apis_enabled(true); |
| 892 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 893 EXPECT_EQ(kLocation, *result); |
| 894 decoder_->set_unsafe_es3_apis_enabled(false); |
| 895 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); |
| 896 } |
| 897 |
| 898 TEST_P(GLES2DecoderWithShaderTest, GetFragDataLocationInvalidArgs) { |
| 899 const uint32 kBucketId = 123; |
| 900 typedef GetFragDataLocation::Result Result; |
| 901 Result* result = GetSharedMemoryAs<Result*>(); |
| 902 *result = -1; |
| 903 GetFragDataLocation cmd; |
| 904 decoder_->set_unsafe_es3_apis_enabled(true); |
| 905 // Check no bucket |
| 906 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); |
| 907 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
| 908 EXPECT_EQ(-1, *result); |
| 909 // Check bad program id. |
| 910 const char* kName = "color"; |
| 911 SetBucketAsCString(kBucketId, kName); |
| 912 cmd.Init(kInvalidClientId, kBucketId, kSharedMemoryId, kSharedMemoryOffset); |
| 913 *result = -1; |
| 914 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
| 915 EXPECT_EQ(-1, *result); |
| 916 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 917 // Check bad memory |
| 918 cmd.Init(client_program_id_, |
| 919 kBucketId, |
| 920 kInvalidSharedMemoryId, |
| 921 kSharedMemoryOffset); |
| 922 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
| 923 cmd.Init(client_program_id_, |
| 924 kBucketId, |
| 925 kSharedMemoryId, |
| 926 kInvalidSharedMemoryOffset); |
| 927 EXPECT_NE(error::kNoError, ExecuteCmd(cmd)); |
| 928 } |
| 929 |
878 TEST_P(GLES2DecoderWithShaderTest, GetUniformLocation) { | 930 TEST_P(GLES2DecoderWithShaderTest, GetUniformLocation) { |
879 const uint32 kBucketId = 123; | 931 const uint32 kBucketId = 123; |
880 const char* kNonExistentName = "foobar"; | 932 const char* kNonExistentName = "foobar"; |
881 typedef GetUniformLocation::Result Result; | 933 typedef GetUniformLocation::Result Result; |
882 Result* result = GetSharedMemoryAs<Result*>(); | 934 Result* result = GetSharedMemoryAs<Result*>(); |
883 SetBucketAsCString(kBucketId, kUniform2Name); | 935 SetBucketAsCString(kBucketId, kUniform2Name); |
884 *result = -1; | 936 *result = -1; |
885 GetUniformLocation cmd; | 937 GetUniformLocation cmd; |
886 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); | 938 cmd.Init(client_program_id_, kBucketId, kSharedMemoryId, kSharedMemoryOffset); |
887 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); | 939 EXPECT_EQ(error::kNoError, ExecuteCmd(cmd)); |
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1030 } | 1082 } |
1031 | 1083 |
1032 // TODO(gman): DeleteProgram | 1084 // TODO(gman): DeleteProgram |
1033 | 1085 |
1034 // TODO(gman): UseProgram | 1086 // TODO(gman): UseProgram |
1035 | 1087 |
1036 // TODO(gman): DeleteShader | 1088 // TODO(gman): DeleteShader |
1037 | 1089 |
1038 } // namespace gles2 | 1090 } // namespace gles2 |
1039 } // namespace gpu | 1091 } // namespace gpu |
OLD | NEW |