Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(884)

Side by Side Diff: cc/output/gl_renderer_unittest.cc

Issue 51653008: Remove WGC3D::isContextLost references from cc (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix android build Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/program_binding.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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 "cc/output/gl_renderer.h" 5 #include "cc/output/gl_renderer.h"
6 6
7 #include <set> 7 #include <set>
8 8
9 #include "cc/base/math_util.h" 9 #include "cc/base/math_util.h"
10 #include "cc/output/compositor_frame_metadata.h" 10 #include "cc/output/compositor_frame_metadata.h"
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
50 using WebKit::WGC3Dint; 50 using WebKit::WGC3Dint;
51 using WebKit::WGC3Dintptr; 51 using WebKit::WGC3Dintptr;
52 using WebKit::WGC3Dsizei; 52 using WebKit::WGC3Dsizei;
53 using WebKit::WGC3Dsizeiptr; 53 using WebKit::WGC3Dsizeiptr;
54 using WebKit::WGC3Duint; 54 using WebKit::WGC3Duint;
55 55
56 namespace cc { 56 namespace cc {
57 57
58 #define EXPECT_PROGRAM_VALID(program_binding) \ 58 #define EXPECT_PROGRAM_VALID(program_binding) \
59 do { \ 59 do { \
60 EXPECT_TRUE(program_binding->program()); \ 60 EXPECT_TRUE((program_binding)->program()); \
61 EXPECT_TRUE(program_binding->initialized()); \ 61 EXPECT_TRUE((program_binding)->initialized()); \
62 } while (false) 62 } while (false)
63 63
64 // Explicitly named to be a friend in GLRenderer for shader access. 64 // Explicitly named to be a friend in GLRenderer for shader access.
65 class GLRendererShaderPixelTest : public GLRendererPixelTest { 65 class GLRendererShaderPixelTest : public GLRendererPixelTest {
66 public: 66 public:
67 void TestShaders() { 67 void TestShaders() {
68 ASSERT_FALSE(renderer()->IsContextLost()); 68 ASSERT_FALSE(renderer()->IsContextLost());
69 EXPECT_PROGRAM_VALID(renderer()->GetTileCheckerboardProgram()); 69 EXPECT_PROGRAM_VALID(renderer()->GetTileCheckerboardProgram());
70 EXPECT_PROGRAM_VALID(renderer()->GetDebugBorderProgram()); 70 EXPECT_PROGRAM_VALID(renderer()->GetDebugBorderProgram());
71 EXPECT_PROGRAM_VALID(renderer()->GetSolidColorProgram()); 71 EXPECT_PROGRAM_VALID(renderer()->GetSolidColorProgram());
(...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after
255 resource_provider_ = ResourceProvider::Create( 255 resource_provider_ = ResourceProvider::Create(
256 output_surface_.get(), NULL, 0, false, 1).Pass(); 256 output_surface_.get(), NULL, 0, false, 1).Pass();
257 renderer_.reset(new FakeRendererGL(&renderer_client_, 257 renderer_.reset(new FakeRendererGL(&renderer_client_,
258 &settings_, 258 &settings_,
259 output_surface_.get(), 259 output_surface_.get(),
260 resource_provider_.get())); 260 resource_provider_.get()));
261 renderer_->Initialize(); 261 renderer_->Initialize();
262 } 262 }
263 263
264 void TestRenderPassProgram() { 264 void TestRenderPassProgram() {
265 EXPECT_PROGRAM_VALID(renderer_->render_pass_program_); 265 EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_);
266 EXPECT_EQ(renderer_->render_pass_program_->program(), 266 EXPECT_EQ(renderer_->render_pass_program_.program(),
267 renderer_->program_shadow_); 267 renderer_->program_shadow_);
268 } 268 }
269 269
270 void TestRenderPassColorMatrixProgram() { 270 void TestRenderPassColorMatrixProgram() {
271 EXPECT_PROGRAM_VALID(renderer_->render_pass_color_matrix_program_); 271 EXPECT_PROGRAM_VALID(&renderer_->render_pass_color_matrix_program_);
272 EXPECT_EQ(renderer_->render_pass_color_matrix_program_->program(), 272 EXPECT_EQ(renderer_->render_pass_color_matrix_program_.program(),
273 renderer_->program_shadow_); 273 renderer_->program_shadow_);
274 } 274 }
275 275
276 void TestRenderPassMaskProgram() { 276 void TestRenderPassMaskProgram() {
277 EXPECT_PROGRAM_VALID(renderer_->render_pass_mask_program_); 277 EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_);
278 EXPECT_EQ(renderer_->render_pass_mask_program_->program(), 278 EXPECT_EQ(renderer_->render_pass_mask_program_.program(),
279 renderer_->program_shadow_); 279 renderer_->program_shadow_);
280 } 280 }
281 281
282 void TestRenderPassMaskColorMatrixProgram() { 282 void TestRenderPassMaskColorMatrixProgram() {
283 EXPECT_PROGRAM_VALID(renderer_->render_pass_mask_color_matrix_program_); 283 EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_color_matrix_program_);
284 EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_->program(), 284 EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_.program(),
285 renderer_->program_shadow_); 285 renderer_->program_shadow_);
286 } 286 }
287 287
288 void TestRenderPassProgramAA() { 288 void TestRenderPassProgramAA() {
289 EXPECT_PROGRAM_VALID(renderer_->render_pass_program_aa_); 289 EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_aa_);
290 EXPECT_EQ(renderer_->render_pass_program_aa_->program(), 290 EXPECT_EQ(renderer_->render_pass_program_aa_.program(),
291 renderer_->program_shadow_); 291 renderer_->program_shadow_);
292 } 292 }
293 293
294 void TestRenderPassColorMatrixProgramAA() { 294 void TestRenderPassColorMatrixProgramAA() {
295 EXPECT_PROGRAM_VALID(renderer_->render_pass_color_matrix_program_aa_); 295 EXPECT_PROGRAM_VALID(&renderer_->render_pass_color_matrix_program_aa_);
296 EXPECT_EQ(renderer_->render_pass_color_matrix_program_aa_->program(), 296 EXPECT_EQ(renderer_->render_pass_color_matrix_program_aa_.program(),
297 renderer_->program_shadow_); 297 renderer_->program_shadow_);
298 } 298 }
299 299
300 void TestRenderPassMaskProgramAA() { 300 void TestRenderPassMaskProgramAA() {
301 EXPECT_PROGRAM_VALID(renderer_->render_pass_mask_program_aa_); 301 EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_aa_);
302 EXPECT_EQ(renderer_->render_pass_mask_program_aa_->program(), 302 EXPECT_EQ(renderer_->render_pass_mask_program_aa_.program(),
303 renderer_->program_shadow_); 303 renderer_->program_shadow_);
304 } 304 }
305 305
306 void TestRenderPassMaskColorMatrixProgramAA() { 306 void TestRenderPassMaskColorMatrixProgramAA() {
307 EXPECT_PROGRAM_VALID(renderer_->render_pass_mask_color_matrix_program_aa_); 307 EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_color_matrix_program_aa_);
308 EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_aa_->program(), 308 EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_aa_.program(),
309 renderer_->program_shadow_); 309 renderer_->program_shadow_);
310 } 310 }
311 311
312 void TestSolidColorProgramAA() { 312 void TestSolidColorProgramAA() {
313 EXPECT_PROGRAM_VALID(renderer_->solid_color_program_aa_); 313 EXPECT_PROGRAM_VALID(&renderer_->solid_color_program_aa_);
314 EXPECT_EQ(renderer_->solid_color_program_aa_->program(), 314 EXPECT_EQ(renderer_->solid_color_program_aa_.program(),
315 renderer_->program_shadow_); 315 renderer_->program_shadow_);
316 } 316 }
317 317
318 LayerTreeSettings settings_; 318 LayerTreeSettings settings_;
319 FakeOutputSurfaceClient output_surface_client_; 319 FakeOutputSurfaceClient output_surface_client_;
320 scoped_ptr<FakeOutputSurface> output_surface_; 320 scoped_ptr<FakeOutputSurface> output_surface_;
321 FakeRendererClient renderer_client_; 321 FakeRendererClient renderer_client_;
322 scoped_ptr<ResourceProvider> resource_provider_; 322 scoped_ptr<ResourceProvider> resource_provider_;
323 scoped_ptr<FakeRendererGL> renderer_; 323 scoped_ptr<FakeRendererGL> renderer_;
324 }; 324 };
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 FakeRendererGL renderer(&renderer_client, 563 FakeRendererGL renderer(&renderer_client,
564 &settings, 564 &settings,
565 output_surface.get(), 565 output_surface.get(),
566 resource_provider.get()); 566 resource_provider.get());
567 567
568 EXPECT_TRUE(renderer.Initialize()); 568 EXPECT_TRUE(renderer.Initialize());
569 } 569 }
570 570
571 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { 571 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D {
572 public: 572 public:
573 LoseContextOnFirstGetContext() : context_lost_(false) {} 573 LoseContextOnFirstGetContext() {}
574
575 virtual bool makeContextCurrent() OVERRIDE { return !context_lost_; }
576 574
577 virtual void getProgramiv(WebGLId program, WGC3Denum pname, WGC3Dint* value) 575 virtual void getProgramiv(WebGLId program, WGC3Denum pname, WGC3Dint* value)
578 OVERRIDE { 576 OVERRIDE {
579 context_lost_ = true; 577 context_lost_ = true;
580 *value = 0; 578 *value = 0;
581 } 579 }
582 580
583 virtual void getShaderiv(WebGLId shader, WGC3Denum pname, WGC3Dint* value) 581 virtual void getShaderiv(WebGLId shader, WGC3Denum pname, WGC3Dint* value)
584 OVERRIDE { 582 OVERRIDE {
585 context_lost_ = true; 583 context_lost_ = true;
586 *value = 0; 584 *value = 0;
587 } 585 }
588
589 virtual WGC3Denum getGraphicsResetStatusARB() OVERRIDE {
590 return context_lost_ ? 1 : 0;
591 }
592
593 private:
594 bool context_lost_;
595 }; 586 };
596 587
597 TEST(GLRendererTest2, InitializationWithQuicklyLostContextDoesNotAssert) { 588 TEST(GLRendererTest2, InitializationWithQuicklyLostContextDoesNotAssert) {
598 FakeOutputSurfaceClient output_surface_client; 589 FakeOutputSurfaceClient output_surface_client;
599 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 590 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
600 scoped_ptr<TestWebGraphicsContext3D>(new LoseContextOnFirstGetContext))); 591 scoped_ptr<TestWebGraphicsContext3D>(new LoseContextOnFirstGetContext)));
601 CHECK(output_surface->BindToClient(&output_surface_client)); 592 CHECK(output_surface->BindToClient(&output_surface_client));
602 593
603 scoped_ptr<ResourceProvider> resource_provider( 594 scoped_ptr<ResourceProvider> resource_provider(
604 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 595 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
(...skipping 1180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1785 base::MessageLoop::current()->Run(); 1776 base::MessageLoop::current()->Run();
1786 1777
1787 // The sync point should have happened. 1778 // The sync point should have happened.
1788 EXPECT_EQ(1, sync_point_callback_count); 1779 EXPECT_EQ(1, sync_point_callback_count);
1789 EXPECT_EQ(1, other_callback_count); 1780 EXPECT_EQ(1, other_callback_count);
1790 } 1781 }
1791 #endif // OS_ANDROID 1782 #endif // OS_ANDROID
1792 1783
1793 } // namespace 1784 } // namespace
1794 } // namespace cc 1785 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/program_binding.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698