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()); | |
no sievers
2015/01/27 00:17:20
Is this error set from the client?
Zhenyao Mo
2015/01/27 00:36:46
It's set by decoder in GetProgramInfoNotShader().
| |
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 |