OLD | NEW |
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2011 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 "gpu/command_buffer/common/gl_mock.h" | 7 #include "gpu/command_buffer/common/gl_mock.h" |
8 #include "gpu/command_buffer/common/gles2_cmd_format.h" | 8 #include "gpu/command_buffer/common/gles2_cmd_format.h" |
9 #include "gpu/command_buffer/common/gles2_cmd_utils.h" | 9 #include "gpu/command_buffer/common/gles2_cmd_utils.h" |
10 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h" | 10 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_base.h" |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 EXPECT_CALL(*gl_, TexParameteri( | 47 EXPECT_CALL(*gl_, TexParameteri( |
48 GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR)) | 48 GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST_MIPMAP_LINEAR)) |
49 .Times(1) | 49 .Times(1) |
50 .RetiresOnSaturation(); | 50 .RetiresOnSaturation(); |
51 } | 51 } |
52 }; | 52 }; |
53 | 53 |
54 template <> | 54 template <> |
55 void GLES2DecoderTestBase::SpecializedSetup<CheckFramebufferStatus, 0>( | 55 void GLES2DecoderTestBase::SpecializedSetup<CheckFramebufferStatus, 0>( |
56 bool /* valid */) { | 56 bool /* valid */) { |
| 57 // Give it a valid framebuffer. |
| 58 DoBindRenderbuffer(GL_RENDERBUFFER, client_renderbuffer_id_, |
| 59 kServiceRenderbufferId); |
57 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, | 60 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
58 kServiceFramebufferId); | 61 kServiceFramebufferId); |
| 62 DoRenderbufferStorage( |
| 63 GL_RENDERBUFFER, GL_RGBA4, GL_RGBA, 1, 1, GL_NO_ERROR); |
| 64 DoFramebufferRenderbuffer( |
| 65 GL_FRAMEBUFFER, GL_COLOR_ATTACHMENT0, GL_RENDERBUFFER, |
| 66 client_renderbuffer_id_, kServiceRenderbufferId, GL_NO_ERROR); |
59 }; | 67 }; |
60 | 68 |
61 template <> | 69 template <> |
62 void GLES2DecoderTestBase::SpecializedSetup<Clear, 0>(bool valid) { | 70 void GLES2DecoderTestBase::SpecializedSetup<Clear, 0>(bool valid) { |
63 if (valid) { | 71 if (valid) { |
64 SetupExpectationsForApplyingDefaultDirtyState(); | 72 SetupExpectationsForApplyingDefaultDirtyState(); |
65 } | 73 } |
66 }; | 74 }; |
67 | 75 |
68 template <> | 76 template <> |
(...skipping 15 matching lines...) Expand all Loading... |
84 .RetiresOnSaturation(); | 92 .RetiresOnSaturation(); |
85 } | 93 } |
86 }; | 94 }; |
87 | 95 |
88 template <> | 96 template <> |
89 void GLES2DecoderTestBase::SpecializedSetup<CopyTexSubImage2D, 0>(bool valid) { | 97 void GLES2DecoderTestBase::SpecializedSetup<CopyTexSubImage2D, 0>(bool valid) { |
90 if (valid) { | 98 if (valid) { |
91 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); | 99 DoBindTexture(GL_TEXTURE_2D, client_texture_id_, kServiceTextureId); |
92 DoTexImage2D( | 100 DoTexImage2D( |
93 GL_TEXTURE_2D, 2, GL_RGBA, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE, | 101 GL_TEXTURE_2D, 2, GL_RGBA, 16, 16, 0, GL_RGBA, GL_UNSIGNED_BYTE, |
94 0, 0); | 102 kSharedMemoryId, kSharedMemoryOffset); |
95 } | 103 } |
96 }; | 104 }; |
97 | 105 |
98 template <> | 106 template <> |
99 void GLES2DecoderTestBase::SpecializedSetup<DetachShader, 0>(bool valid) { | 107 void GLES2DecoderTestBase::SpecializedSetup<DetachShader, 0>(bool valid) { |
100 if (valid) { | 108 if (valid) { |
101 EXPECT_CALL(*gl_, | 109 EXPECT_CALL(*gl_, |
102 AttachShader(kServiceProgramId, kServiceShaderId)) | 110 AttachShader(kServiceProgramId, kServiceShaderId)) |
103 .Times(1) | 111 .Times(1) |
104 .RetiresOnSaturation(); | 112 .RetiresOnSaturation(); |
105 AttachShader attach_cmd; | 113 AttachShader attach_cmd; |
106 attach_cmd.Init(client_program_id_, client_shader_id_); | 114 attach_cmd.Init(client_program_id_, client_shader_id_); |
107 EXPECT_EQ(error::kNoError, ExecuteCmd(attach_cmd)); | 115 EXPECT_EQ(error::kNoError, ExecuteCmd(attach_cmd)); |
108 } | 116 } |
109 }; | 117 }; |
110 | 118 |
111 template <> | 119 template <> |
112 void GLES2DecoderTestBase::SpecializedSetup<FramebufferRenderbuffer, 0>( | 120 void GLES2DecoderTestBase::SpecializedSetup<FramebufferRenderbuffer, 0>( |
113 bool valid) { | 121 bool valid) { |
114 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, | 122 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
115 kServiceFramebufferId); | 123 kServiceFramebufferId); |
116 if (valid) { | 124 if (valid) { |
117 EXPECT_CALL(*gl_, GetError()) | 125 EXPECT_CALL(*gl_, GetError()) |
118 .WillOnce(Return(GL_NO_ERROR)) | 126 .WillOnce(Return(GL_NO_ERROR)) |
119 .RetiresOnSaturation(); | |
120 // Return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT so the code | |
121 // doesn't try to clear the buffer. That is tested else where. | |
122 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)) | |
123 .WillOnce(Return(GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT)) | |
124 .RetiresOnSaturation(); | |
125 EXPECT_CALL(*gl_, GetError()) | |
126 .WillOnce(Return(GL_NO_ERROR)) | 127 .WillOnce(Return(GL_NO_ERROR)) |
127 .RetiresOnSaturation(); | 128 .RetiresOnSaturation(); |
128 } | 129 } |
129 }; | 130 }; |
130 | 131 |
131 template <> | 132 template <> |
132 void GLES2DecoderTestBase::SpecializedSetup<FramebufferTexture2D, 0>( | 133 void GLES2DecoderTestBase::SpecializedSetup<FramebufferTexture2D, 0>( |
133 bool valid) { | 134 bool valid) { |
134 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, | 135 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
135 kServiceFramebufferId); | 136 kServiceFramebufferId); |
136 if (valid) { | 137 if (valid) { |
137 EXPECT_CALL(*gl_, GetError()) | 138 EXPECT_CALL(*gl_, GetError()) |
138 .WillOnce(Return(GL_NO_ERROR)) | 139 .WillOnce(Return(GL_NO_ERROR)) |
139 .RetiresOnSaturation(); | |
140 // Return GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT so the code | |
141 // doesn't try to clear the buffer. That is tested else where. | |
142 EXPECT_CALL(*gl_, CheckFramebufferStatusEXT(GL_FRAMEBUFFER)) | |
143 .WillOnce(Return(GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT)) | |
144 .RetiresOnSaturation(); | |
145 EXPECT_CALL(*gl_, GetError()) | |
146 .WillOnce(Return(GL_NO_ERROR)) | 140 .WillOnce(Return(GL_NO_ERROR)) |
147 .RetiresOnSaturation(); | 141 .RetiresOnSaturation(); |
148 } | 142 } |
149 }; | 143 }; |
150 | 144 |
151 template <> | 145 template <> |
152 void GLES2DecoderTestBase::SpecializedSetup<GetFramebufferAttachmentParameteriv, | 146 void GLES2DecoderTestBase::SpecializedSetup<GetFramebufferAttachmentParameteriv, |
153 0>(bool /* valid */) { | 147 0>(bool /* valid */) { |
154 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, | 148 DoBindFramebuffer(GL_FRAMEBUFFER, client_framebuffer_id_, |
155 kServiceFramebufferId); | 149 kServiceFramebufferId); |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
238 .WillOnce(Return(GL_NO_ERROR)) | 232 .WillOnce(Return(GL_NO_ERROR)) |
239 .RetiresOnSaturation(); | 233 .RetiresOnSaturation(); |
240 } | 234 } |
241 }; | 235 }; |
242 | 236 |
243 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h" | 237 #include "gpu/command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h" |
244 | 238 |
245 } // namespace gles2 | 239 } // namespace gles2 |
246 } // namespace gpu | 240 } // namespace gpu |
247 | 241 |
OLD | NEW |