| 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 <limits.h> | 7 #include <limits.h> |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 2287 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2298 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); | 2298 EXPECT_EQ(GL_INVALID_VALUE, GetGLError()); |
| 2299 } | 2299 } |
| 2300 | 2300 |
| 2301 TEST_P(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUM) { | 2301 TEST_P(GLES2DecoderManualInitTest, RenderbufferStorageMultisampleCHROMIUM) { |
| 2302 InitState init; | 2302 InitState init; |
| 2303 init.extensions = "GL_EXT_framebuffer_multisample"; | 2303 init.extensions = "GL_EXT_framebuffer_multisample"; |
| 2304 InitDecoder(init); | 2304 InitDecoder(init); |
| 2305 DoBindRenderbuffer( | 2305 DoBindRenderbuffer( |
| 2306 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); | 2306 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); |
| 2307 InSequence sequence; | 2307 InSequence sequence; |
| 2308 DoRenderbufferStorageMultisampleCHROMIUM( | 2308 EnsureRenderbufferBound(false); |
| 2309 GL_RENDERBUFFER, TestHelper::kMaxSamples, GL_RGBA4, GL_RGBA, | 2309 DoRenderbufferStorageMultisampleCHROMIUM(GL_RENDERBUFFER, |
| 2310 TestHelper::kMaxRenderbufferSize, 1, false); | 2310 TestHelper::kMaxSamples, |
| 2311 GL_RGBA4, |
| 2312 GL_RGBA, |
| 2313 TestHelper::kMaxRenderbufferSize, |
| 2314 1); |
| 2311 } | 2315 } |
| 2312 | 2316 |
| 2313 TEST_P(GLES2DecoderManualInitTest, | 2317 TEST_P(GLES2DecoderManualInitTest, |
| 2314 RenderbufferStorageMultisampleCHROMIUMRebindRenderbuffer) { | 2318 RenderbufferStorageMultisampleCHROMIUMRebindRenderbuffer) { |
| 2315 InitState init; | 2319 InitState init; |
| 2316 init.extensions = "GL_EXT_framebuffer_multisample"; | 2320 init.extensions = "GL_EXT_framebuffer_multisample"; |
| 2317 InitDecoder(init); | 2321 InitDecoder(init); |
| 2318 DoBindRenderbuffer( | 2322 DoBindRenderbuffer( |
| 2319 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); | 2323 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); |
| 2320 RestoreRenderbufferBindings(); | 2324 RestoreRenderbufferBindings(); |
| 2321 InSequence sequence; | 2325 InSequence sequence; |
| 2322 DoRenderbufferStorageMultisampleCHROMIUM( | 2326 EnsureRenderbufferBound(true); |
| 2323 GL_RENDERBUFFER, TestHelper::kMaxSamples, GL_RGBA4, GL_RGBA, | 2327 DoRenderbufferStorageMultisampleCHROMIUM(GL_RENDERBUFFER, |
| 2324 TestHelper::kMaxRenderbufferSize, 1, true); | 2328 TestHelper::kMaxSamples, |
| 2329 GL_RGBA4, |
| 2330 GL_RGBA, |
| 2331 TestHelper::kMaxRenderbufferSize, |
| 2332 1); |
| 2325 } | 2333 } |
| 2326 | 2334 |
| 2327 TEST_P(GLES2DecoderManualInitTest, | 2335 TEST_P(GLES2DecoderManualInitTest, |
| 2328 RenderbufferStorageMultisampleEXTNotSupported) { | 2336 RenderbufferStorageMultisampleEXTNotSupported) { |
| 2329 InitState init; | 2337 InitState init; |
| 2330 init.extensions = "GL_EXT_framebuffer_multisample"; | 2338 init.extensions = "GL_EXT_framebuffer_multisample"; |
| 2331 init.bind_generates_resource = true; | 2339 init.bind_generates_resource = true; |
| 2332 InitDecoder(init); | 2340 InitDecoder(init); |
| 2333 DoBindRenderbuffer( | 2341 DoBindRenderbuffer( |
| 2334 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); | 2342 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); |
| (...skipping 21 matching lines...) Expand all Loading... |
| 2356 TestHelper::kMaxRenderbufferSize, | 2364 TestHelper::kMaxRenderbufferSize, |
| 2357 1); | 2365 1); |
| 2358 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); | 2366 EXPECT_EQ(error::kUnknownCommand, ExecuteCmd(cmd)); |
| 2359 } | 2367 } |
| 2360 | 2368 |
| 2361 void TestRenderbufferStorageMultisampleEXT(const char* extension, | 2369 void TestRenderbufferStorageMultisampleEXT(const char* extension, |
| 2362 bool rb_rebind) { | 2370 bool rb_rebind) { |
| 2363 DoBindRenderbuffer( | 2371 DoBindRenderbuffer( |
| 2364 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); | 2372 GL_RENDERBUFFER, client_renderbuffer_id_, kServiceRenderbufferId); |
| 2365 InSequence sequence; | 2373 InSequence sequence; |
| 2366 | |
| 2367 EXPECT_CALL(*gl_, GetError()) | |
| 2368 .WillOnce(Return(GL_NO_ERROR)) | |
| 2369 .RetiresOnSaturation(); | |
| 2370 if (rb_rebind) { | 2374 if (rb_rebind) { |
| 2371 RestoreRenderbufferBindings(); | 2375 RestoreRenderbufferBindings(); |
| 2372 EnsureRenderbufferBound(true); | 2376 EnsureRenderbufferBound(true); |
| 2373 } else { | 2377 } else { |
| 2374 EnsureRenderbufferBound(false); | 2378 EnsureRenderbufferBound(false); |
| 2375 } | 2379 } |
| 2380 |
| 2381 EXPECT_CALL(*gl_, GetError()) |
| 2382 .WillOnce(Return(GL_NO_ERROR)) |
| 2383 .RetiresOnSaturation(); |
| 2376 if (strstr(extension, "GL_IMG_multisampled_render_to_texture")) { | 2384 if (strstr(extension, "GL_IMG_multisampled_render_to_texture")) { |
| 2377 EXPECT_CALL( | 2385 EXPECT_CALL( |
| 2378 *gl_, | 2386 *gl_, |
| 2379 RenderbufferStorageMultisampleIMG(GL_RENDERBUFFER, | 2387 RenderbufferStorageMultisampleIMG(GL_RENDERBUFFER, |
| 2380 TestHelper::kMaxSamples, | 2388 TestHelper::kMaxSamples, |
| 2381 GL_RGBA4, | 2389 GL_RGBA4, |
| 2382 TestHelper::kMaxRenderbufferSize, | 2390 TestHelper::kMaxRenderbufferSize, |
| 2383 1)) | 2391 1)) |
| 2384 .Times(1) | 2392 .Times(1) |
| 2385 .RetiresOnSaturation(); | 2393 .RetiresOnSaturation(); |
| (...skipping 1672 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4058 INSTANTIATE_TEST_CASE_P(Service, | 4066 INSTANTIATE_TEST_CASE_P(Service, |
| 4059 GLES2DecoderTestWithDrawRectangle, | 4067 GLES2DecoderTestWithDrawRectangle, |
| 4060 ::testing::Bool()); | 4068 ::testing::Bool()); |
| 4061 | 4069 |
| 4062 // TODO(gman): PixelStorei | 4070 // TODO(gman): PixelStorei |
| 4063 | 4071 |
| 4064 // TODO(gman): SwapBuffers | 4072 // TODO(gman): SwapBuffers |
| 4065 | 4073 |
| 4066 } // namespace gles2 | 4074 } // namespace gles2 |
| 4067 } // namespace gpu | 4075 } // namespace gpu |
| OLD | NEW |