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

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: rebased 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
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 243 matching lines...) Expand 10 before | Expand all | Expand 10 after
315 resource_provider_ = ResourceProvider::Create( 315 resource_provider_ = ResourceProvider::Create(
316 output_surface_.get(), NULL, 0, false, 1).Pass(); 316 output_surface_.get(), NULL, 0, false, 1).Pass();
317 renderer_.reset(new FakeRendererGL(&renderer_client_, 317 renderer_.reset(new FakeRendererGL(&renderer_client_,
318 &settings_, 318 &settings_,
319 output_surface_.get(), 319 output_surface_.get(),
320 resource_provider_.get())); 320 resource_provider_.get()));
321 renderer_->Initialize(); 321 renderer_->Initialize();
322 } 322 }
323 323
324 void TestRenderPassProgram() { 324 void TestRenderPassProgram() {
325 EXPECT_PROGRAM_VALID(renderer_->render_pass_program_); 325 EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_);
326 EXPECT_EQ(renderer_->render_pass_program_->program(), 326 EXPECT_EQ(renderer_->render_pass_program_.program(),
327 renderer_->program_shadow_); 327 renderer_->program_shadow_);
328 } 328 }
329 329
330 void TestRenderPassColorMatrixProgram() { 330 void TestRenderPassColorMatrixProgram() {
331 EXPECT_PROGRAM_VALID(renderer_->render_pass_color_matrix_program_); 331 EXPECT_PROGRAM_VALID(&renderer_->render_pass_color_matrix_program_);
332 EXPECT_EQ(renderer_->render_pass_color_matrix_program_->program(), 332 EXPECT_EQ(renderer_->render_pass_color_matrix_program_.program(),
333 renderer_->program_shadow_); 333 renderer_->program_shadow_);
334 } 334 }
335 335
336 void TestRenderPassMaskProgram() { 336 void TestRenderPassMaskProgram() {
337 EXPECT_PROGRAM_VALID(renderer_->render_pass_mask_program_); 337 EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_);
338 EXPECT_EQ(renderer_->render_pass_mask_program_->program(), 338 EXPECT_EQ(renderer_->render_pass_mask_program_.program(),
339 renderer_->program_shadow_); 339 renderer_->program_shadow_);
340 } 340 }
341 341
342 void TestRenderPassMaskColorMatrixProgram() { 342 void TestRenderPassMaskColorMatrixProgram() {
343 EXPECT_PROGRAM_VALID(renderer_->render_pass_mask_color_matrix_program_); 343 EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_color_matrix_program_);
344 EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_->program(), 344 EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_.program(),
345 renderer_->program_shadow_); 345 renderer_->program_shadow_);
346 } 346 }
347 347
348 void TestRenderPassProgramAA() { 348 void TestRenderPassProgramAA() {
349 EXPECT_PROGRAM_VALID(renderer_->render_pass_program_aa_); 349 EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_aa_);
350 EXPECT_EQ(renderer_->render_pass_program_aa_->program(), 350 EXPECT_EQ(renderer_->render_pass_program_aa_.program(),
351 renderer_->program_shadow_); 351 renderer_->program_shadow_);
352 } 352 }
353 353
354 void TestRenderPassColorMatrixProgramAA() { 354 void TestRenderPassColorMatrixProgramAA() {
355 EXPECT_PROGRAM_VALID(renderer_->render_pass_color_matrix_program_aa_); 355 EXPECT_PROGRAM_VALID(&renderer_->render_pass_color_matrix_program_aa_);
356 EXPECT_EQ(renderer_->render_pass_color_matrix_program_aa_->program(), 356 EXPECT_EQ(renderer_->render_pass_color_matrix_program_aa_.program(),
357 renderer_->program_shadow_); 357 renderer_->program_shadow_);
358 } 358 }
359 359
360 void TestRenderPassMaskProgramAA() { 360 void TestRenderPassMaskProgramAA() {
361 EXPECT_PROGRAM_VALID(renderer_->render_pass_mask_program_aa_); 361 EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_program_aa_);
362 EXPECT_EQ(renderer_->render_pass_mask_program_aa_->program(), 362 EXPECT_EQ(renderer_->render_pass_mask_program_aa_.program(),
363 renderer_->program_shadow_); 363 renderer_->program_shadow_);
364 } 364 }
365 365
366 void TestRenderPassMaskColorMatrixProgramAA() { 366 void TestRenderPassMaskColorMatrixProgramAA() {
367 EXPECT_PROGRAM_VALID(renderer_->render_pass_mask_color_matrix_program_aa_); 367 EXPECT_PROGRAM_VALID(&renderer_->render_pass_mask_color_matrix_program_aa_);
368 EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_aa_->program(), 368 EXPECT_EQ(renderer_->render_pass_mask_color_matrix_program_aa_.program(),
369 renderer_->program_shadow_); 369 renderer_->program_shadow_);
370 } 370 }
371 371
372 void TestSolidColorProgramAA() { 372 void TestSolidColorProgramAA() {
373 EXPECT_PROGRAM_VALID(renderer_->solid_color_program_aa_); 373 EXPECT_PROGRAM_VALID(&renderer_->solid_color_program_aa_);
374 EXPECT_EQ(renderer_->solid_color_program_aa_->program(), 374 EXPECT_EQ(renderer_->solid_color_program_aa_.program(),
375 renderer_->program_shadow_); 375 renderer_->program_shadow_);
376 } 376 }
377 377
378 LayerTreeSettings settings_; 378 LayerTreeSettings settings_;
379 FakeOutputSurfaceClient output_surface_client_; 379 FakeOutputSurfaceClient output_surface_client_;
380 scoped_ptr<FakeOutputSurface> output_surface_; 380 scoped_ptr<FakeOutputSurface> output_surface_;
381 FakeRendererClient renderer_client_; 381 FakeRendererClient renderer_client_;
382 scoped_ptr<ResourceProvider> resource_provider_; 382 scoped_ptr<ResourceProvider> resource_provider_;
383 scoped_ptr<FakeRendererGL> renderer_; 383 scoped_ptr<FakeRendererGL> renderer_;
384 }; 384 };
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after
623 FakeRendererGL renderer(&renderer_client, 623 FakeRendererGL renderer(&renderer_client,
624 &settings, 624 &settings,
625 output_surface.get(), 625 output_surface.get(),
626 resource_provider.get()); 626 resource_provider.get());
627 627
628 EXPECT_TRUE(renderer.Initialize()); 628 EXPECT_TRUE(renderer.Initialize());
629 } 629 }
630 630
631 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { 631 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D {
632 public: 632 public:
633 LoseContextOnFirstGetContext() : context_lost_(false) {} 633 LoseContextOnFirstGetContext() {}
634
635 virtual bool makeContextCurrent() OVERRIDE { return !context_lost_; }
636 634
637 virtual void getProgramiv(WebGLId program, WGC3Denum pname, WGC3Dint* value) 635 virtual void getProgramiv(WebGLId program, WGC3Denum pname, WGC3Dint* value)
638 OVERRIDE { 636 OVERRIDE {
639 context_lost_ = true; 637 context_lost_ = true;
640 *value = 0; 638 *value = 0;
641 } 639 }
642 640
643 virtual void getShaderiv(WebGLId shader, WGC3Denum pname, WGC3Dint* value) 641 virtual void getShaderiv(WebGLId shader, WGC3Denum pname, WGC3Dint* value)
644 OVERRIDE { 642 OVERRIDE {
645 context_lost_ = true; 643 context_lost_ = true;
646 *value = 0; 644 *value = 0;
647 } 645 }
648
649 virtual WGC3Denum getGraphicsResetStatusARB() OVERRIDE {
650 return context_lost_ ? 1 : 0;
651 }
652
653 private:
654 bool context_lost_;
655 }; 646 };
656 647
657 TEST(GLRendererTest2, InitializationWithQuicklyLostContextDoesNotAssert) { 648 TEST(GLRendererTest2, InitializationWithQuicklyLostContextDoesNotAssert) {
658 FakeOutputSurfaceClient output_surface_client; 649 FakeOutputSurfaceClient output_surface_client;
659 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 650 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
660 scoped_ptr<TestWebGraphicsContext3D>(new LoseContextOnFirstGetContext))); 651 scoped_ptr<TestWebGraphicsContext3D>(new LoseContextOnFirstGetContext)));
661 CHECK(output_surface->BindToClient(&output_surface_client)); 652 CHECK(output_surface->BindToClient(&output_surface_client));
662 653
663 scoped_ptr<ResourceProvider> resource_provider( 654 scoped_ptr<ResourceProvider> resource_provider(
664 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 655 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1));
(...skipping 1180 matching lines...) Expand 10 before | Expand all | Expand 10 after
1845 base::MessageLoop::current()->Run(); 1836 base::MessageLoop::current()->Run();
1846 1837
1847 // The sync point should have happened. 1838 // The sync point should have happened.
1848 EXPECT_EQ(1, sync_point_callback_count); 1839 EXPECT_EQ(1, sync_point_callback_count);
1849 EXPECT_EQ(1, other_callback_count); 1840 EXPECT_EQ(1, other_callback_count);
1850 } 1841 }
1851 #endif // OS_ANDROID 1842 #endif // OS_ANDROID
1852 1843
1853 } // namespace 1844 } // namespace
1854 } // namespace cc 1845 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698