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

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

Issue 2254543003: cc: Delete the RendererClient class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@setvisible-browser
Patch Set: deleterendererclient: rebase Created 4 years, 4 months 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
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/overlay_unittest.cc » ('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 <stdint.h> 7 #include <stdint.h>
8 8
9 #include <set> 9 #include <set>
10 10
11 #include "base/location.h" 11 #include "base/location.h"
12 #include "base/memory/ptr_util.h" 12 #include "base/memory/ptr_util.h"
13 #include "base/threading/thread_task_runner_handle.h" 13 #include "base/threading/thread_task_runner_handle.h"
14 #include "cc/base/math_util.h" 14 #include "cc/base/math_util.h"
15 #include "cc/output/compositor_frame_metadata.h" 15 #include "cc/output/compositor_frame_metadata.h"
16 #include "cc/output/copy_output_request.h" 16 #include "cc/output/copy_output_request.h"
17 #include "cc/output/copy_output_result.h" 17 #include "cc/output/copy_output_result.h"
18 #include "cc/output/overlay_strategy_single_on_top.h" 18 #include "cc/output/overlay_strategy_single_on_top.h"
19 #include "cc/output/overlay_strategy_underlay.h" 19 #include "cc/output/overlay_strategy_underlay.h"
20 #include "cc/output/texture_mailbox_deleter.h" 20 #include "cc/output/texture_mailbox_deleter.h"
21 #include "cc/quads/texture_draw_quad.h" 21 #include "cc/quads/texture_draw_quad.h"
22 #include "cc/resources/resource_provider.h" 22 #include "cc/resources/resource_provider.h"
23 #include "cc/test/fake_impl_task_runner_provider.h" 23 #include "cc/test/fake_impl_task_runner_provider.h"
24 #include "cc/test/fake_layer_tree_host_impl.h" 24 #include "cc/test/fake_layer_tree_host_impl.h"
25 #include "cc/test/fake_output_surface.h" 25 #include "cc/test/fake_output_surface.h"
26 #include "cc/test/fake_output_surface_client.h" 26 #include "cc/test/fake_output_surface_client.h"
27 #include "cc/test/fake_renderer_client.h"
28 #include "cc/test/fake_resource_provider.h" 27 #include "cc/test/fake_resource_provider.h"
29 #include "cc/test/pixel_test.h" 28 #include "cc/test/pixel_test.h"
30 #include "cc/test/render_pass_test_utils.h" 29 #include "cc/test/render_pass_test_utils.h"
31 #include "cc/test/test_gles2_interface.h" 30 #include "cc/test/test_gles2_interface.h"
32 #include "cc/test/test_shared_bitmap_manager.h" 31 #include "cc/test/test_shared_bitmap_manager.h"
33 #include "cc/test/test_web_graphics_context_3d.h" 32 #include "cc/test/test_web_graphics_context_3d.h"
34 #include "gpu/GLES2/gl2extchromium.h" 33 #include "gpu/GLES2/gl2extchromium.h"
35 #include "gpu/command_buffer/client/context_support.h" 34 #include "gpu/command_buffer/client/context_support.h"
36 #include "testing/gmock/include/gmock/gmock.h" 35 #include "testing/gmock/include/gmock/gmock.h"
37 #include "testing/gtest/include/gtest/gtest.h" 36 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 270 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 MaskShaderPixelTest, 307 MaskShaderPixelTest,
309 ::testing::Combine(::testing::ValuesIn(kPrecisionList), 308 ::testing::Combine(::testing::ValuesIn(kPrecisionList),
310 ::testing::ValuesIn(kSamplerList), 309 ::testing::ValuesIn(kSamplerList),
311 ::testing::ValuesIn(kBlendModeList), 310 ::testing::ValuesIn(kBlendModeList),
312 ::testing::Bool())); 311 ::testing::Bool()));
313 312
314 #endif 313 #endif
315 314
316 class FakeRendererGL : public GLRenderer { 315 class FakeRendererGL : public GLRenderer {
317 public: 316 public:
318 FakeRendererGL(RendererClient* client, 317 FakeRendererGL(const RendererSettings* settings,
319 const RendererSettings* settings,
320 OutputSurface* output_surface, 318 OutputSurface* output_surface,
321 ResourceProvider* resource_provider) 319 ResourceProvider* resource_provider)
322 : GLRenderer(client, 320 : GLRenderer(settings, output_surface, resource_provider, nullptr, 0) {}
323 settings,
324 output_surface,
325 resource_provider,
326 NULL,
327 0) {}
328 321
329 FakeRendererGL(RendererClient* client, 322 FakeRendererGL(const RendererSettings* settings,
330 const RendererSettings* settings,
331 OutputSurface* output_surface, 323 OutputSurface* output_surface,
332 ResourceProvider* resource_provider, 324 ResourceProvider* resource_provider,
333 TextureMailboxDeleter* texture_mailbox_deleter) 325 TextureMailboxDeleter* texture_mailbox_deleter)
334 : GLRenderer(client, 326 : GLRenderer(settings,
335 settings,
336 output_surface, 327 output_surface,
337 resource_provider, 328 resource_provider,
338 texture_mailbox_deleter, 329 texture_mailbox_deleter,
339 0) {} 330 0) {}
340 331
341 void SetOverlayProcessor(OverlayProcessor* processor) { 332 void SetOverlayProcessor(OverlayProcessor* processor) {
342 overlay_processor_.reset(processor); 333 overlay_processor_.reset(processor);
343 } 334 }
344 335
345 // GLRenderer methods. 336 // GLRenderer methods.
346 337
347 // Changing visibility to public. 338 // Changing visibility to public.
348 using GLRenderer::IsBackbufferDiscarded;
349 using GLRenderer::DoDrawQuad; 339 using GLRenderer::DoDrawQuad;
350 using GLRenderer::BeginDrawingFrame; 340 using GLRenderer::BeginDrawingFrame;
351 using GLRenderer::FinishDrawingQuadList; 341 using GLRenderer::FinishDrawingQuadList;
352 using GLRenderer::stencil_enabled; 342 using GLRenderer::stencil_enabled;
353 }; 343 };
354 344
355 class GLRendererWithDefaultHarnessTest : public GLRendererTest { 345 class GLRendererWithDefaultHarnessTest : public GLRendererTest {
356 protected: 346 protected:
357 GLRendererWithDefaultHarnessTest() { 347 GLRendererWithDefaultHarnessTest() {
358 output_surface_ = 348 output_surface_ =
359 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()); 349 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create());
360 CHECK(output_surface_->BindToClient(&output_surface_client_)); 350 CHECK(output_surface_->BindToClient(&output_surface_client_));
361 351
362 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 352 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
363 resource_provider_ = FakeResourceProvider::Create( 353 resource_provider_ = FakeResourceProvider::Create(
364 output_surface_.get(), shared_bitmap_manager_.get()); 354 output_surface_.get(), shared_bitmap_manager_.get());
365 renderer_ = base::WrapUnique( 355 renderer_ = base::WrapUnique(new FakeRendererGL(
366 new FakeRendererGL(&renderer_client_, &settings_, output_surface_.get(), 356 &settings_, output_surface_.get(), resource_provider_.get()));
367 resource_provider_.get()));
368 renderer_->SetVisible(true); 357 renderer_->SetVisible(true);
369 } 358 }
370 359
371 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } 360 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); }
372 361
373 RendererSettings settings_; 362 RendererSettings settings_;
374 FakeOutputSurfaceClient output_surface_client_; 363 FakeOutputSurfaceClient output_surface_client_;
375 std::unique_ptr<FakeOutputSurface> output_surface_; 364 std::unique_ptr<FakeOutputSurface> output_surface_;
376 FakeRendererClient renderer_client_;
377 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 365 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
378 std::unique_ptr<ResourceProvider> resource_provider_; 366 std::unique_ptr<ResourceProvider> resource_provider_;
379 std::unique_ptr<FakeRendererGL> renderer_; 367 std::unique_ptr<FakeRendererGL> renderer_;
380 }; 368 };
381 369
382 // Closing the namespace here so that GLRendererShaderTest can take advantage 370 // Closing the namespace here so that GLRendererShaderTest can take advantage
383 // of the friend relationship with GLRenderer and all of the mock classes 371 // of the friend relationship with GLRenderer and all of the mock classes
384 // declared above it. 372 // declared above it.
385 } // namespace 373 } // namespace
386 374
387 class GLRendererShaderTest : public GLRendererTest { 375 class GLRendererShaderTest : public GLRendererTest {
388 protected: 376 protected:
389 GLRendererShaderTest() { 377 GLRendererShaderTest() {
390 output_surface_ = FakeOutputSurface::Create3d(); 378 output_surface_ = FakeOutputSurface::Create3d();
391 CHECK(output_surface_->BindToClient(&output_surface_client_)); 379 CHECK(output_surface_->BindToClient(&output_surface_client_));
392 380
393 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 381 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
394 resource_provider_ = FakeResourceProvider::Create( 382 resource_provider_ = FakeResourceProvider::Create(
395 output_surface_.get(), shared_bitmap_manager_.get()); 383 output_surface_.get(), shared_bitmap_manager_.get());
396 renderer_.reset(new FakeRendererGL(&renderer_client_, 384 renderer_.reset(new FakeRendererGL(&settings_, output_surface_.get(),
397 &settings_,
398 output_surface_.get(),
399 resource_provider_.get())); 385 resource_provider_.get()));
400 renderer_->SetVisible(true); 386 renderer_->SetVisible(true);
401 } 387 }
402 388
403 void TestRenderPassProgram(TexCoordPrecision precision, 389 void TestRenderPassProgram(TexCoordPrecision precision,
404 BlendMode blend_mode) { 390 BlendMode blend_mode) {
405 EXPECT_PROGRAM_VALID( 391 EXPECT_PROGRAM_VALID(
406 &renderer_->render_pass_program_[precision][blend_mode]); 392 &renderer_->render_pass_program_[precision][blend_mode]);
407 EXPECT_EQ(renderer_->render_pass_program_[precision][blend_mode].program(), 393 EXPECT_EQ(renderer_->render_pass_program_[precision][blend_mode].program(),
408 renderer_->program_shadow_); 394 renderer_->program_shadow_);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
489 475
490 void TestSolidColorProgramAA() { 476 void TestSolidColorProgramAA() {
491 EXPECT_PROGRAM_VALID(&renderer_->solid_color_program_aa_); 477 EXPECT_PROGRAM_VALID(&renderer_->solid_color_program_aa_);
492 EXPECT_EQ(renderer_->solid_color_program_aa_.program(), 478 EXPECT_EQ(renderer_->solid_color_program_aa_.program(),
493 renderer_->program_shadow_); 479 renderer_->program_shadow_);
494 } 480 }
495 481
496 RendererSettings settings_; 482 RendererSettings settings_;
497 FakeOutputSurfaceClient output_surface_client_; 483 FakeOutputSurfaceClient output_surface_client_;
498 std::unique_ptr<FakeOutputSurface> output_surface_; 484 std::unique_ptr<FakeOutputSurface> output_surface_;
499 FakeRendererClient renderer_client_;
500 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 485 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
501 std::unique_ptr<ResourceProvider> resource_provider_; 486 std::unique_ptr<ResourceProvider> resource_provider_;
502 std::unique_ptr<FakeRendererGL> renderer_; 487 std::unique_ptr<FakeRendererGL> renderer_;
503 }; 488 };
504 489
505 namespace { 490 namespace {
506 491
507 // Test GLRenderer DiscardBackbuffer functionality:
508 // Suggest discarding framebuffer when one exists and the renderer is not
509 // visible.
510 // Expected: it is discarded and damage tracker is reset.
511 TEST_F(
512 GLRendererWithDefaultHarnessTest,
513 SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLayerIfNotVisible) {
514 renderer_->SetVisible(false);
515 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count());
516 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
517 }
518
519 // Test GLRenderer DiscardBackbuffer functionality:
520 // Suggest discarding framebuffer when one exists and the renderer is visible.
521 // Expected: the allocation is ignored.
522 TEST_F(GLRendererWithDefaultHarnessTest,
523 SuggestBackbufferNoDoNothingWhenVisible) {
524 renderer_->SetVisible(true);
525 EXPECT_EQ(0, renderer_client_.set_full_root_layer_damage_count());
526 EXPECT_FALSE(renderer_->IsBackbufferDiscarded());
527 }
528
529 // Test GLRenderer DiscardBackbuffer functionality:
530 // Suggest discarding framebuffer when one does not exist.
531 // Expected: it does nothing.
532 TEST_F(GLRendererWithDefaultHarnessTest,
533 SuggestBackbufferNoWhenItDoesntExistShouldDoNothing) {
534 renderer_->SetVisible(false);
535 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count());
536 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
537
538 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count());
539 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
540 }
541
542 // Test GLRenderer DiscardBackbuffer functionality:
543 // Begin drawing a frame while a framebuffer is discarded.
544 // Expected: will recreate framebuffer.
545 TEST_F(GLRendererWithDefaultHarnessTest,
546 DiscardedBackbufferIsRecreatedForScopeDuration) {
547 gfx::Rect viewport_rect(1, 1);
548 renderer_->SetVisible(false);
549 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
550 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count());
551
552 AddRenderPass(&render_passes_in_draw_order_,
553 RenderPassId(1, 0),
554 viewport_rect,
555 gfx::Transform());
556
557 renderer_->SetVisible(true);
558 DrawFrame(renderer_.get(), viewport_rect);
559 EXPECT_FALSE(renderer_->IsBackbufferDiscarded());
560
561 SwapBuffers();
562 EXPECT_EQ(1u, output_surface_->num_sent_frames());
563 }
564
565 TEST_F(GLRendererWithDefaultHarnessTest, ExternalStencil) { 492 TEST_F(GLRendererWithDefaultHarnessTest, ExternalStencil) {
566 gfx::Rect viewport_rect(1, 1); 493 gfx::Rect viewport_rect(1, 1);
567 EXPECT_FALSE(renderer_->stencil_enabled()); 494 EXPECT_FALSE(renderer_->stencil_enabled());
568 495
569 output_surface_->set_has_external_stencil_test(true); 496 output_surface_->set_has_external_stencil_test(true);
570 497
571 RenderPass* root_pass = 498 RenderPass* root_pass =
572 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), 499 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0),
573 viewport_rect, gfx::Transform()); 500 viewport_rect, gfx::Transform());
574 root_pass->has_transparent_background = false; 501 root_pass->has_transparent_background = false;
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
681 new ForbidSynchronousCallContext))); 608 new ForbidSynchronousCallContext)));
682 CHECK(output_surface->BindToClient(&output_surface_client)); 609 CHECK(output_surface->BindToClient(&output_surface_client));
683 610
684 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 611 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
685 new TestSharedBitmapManager()); 612 new TestSharedBitmapManager());
686 std::unique_ptr<ResourceProvider> resource_provider = 613 std::unique_ptr<ResourceProvider> resource_provider =
687 FakeResourceProvider::Create(output_surface.get(), 614 FakeResourceProvider::Create(output_surface.get(),
688 shared_bitmap_manager.get()); 615 shared_bitmap_manager.get());
689 616
690 RendererSettings settings; 617 RendererSettings settings;
691 FakeRendererClient renderer_client; 618 FakeRendererGL renderer(&settings, output_surface.get(),
692 FakeRendererGL renderer(&renderer_client,
693 &settings,
694 output_surface.get(),
695 resource_provider.get()); 619 resource_provider.get());
696 } 620 }
697 621
698 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { 622 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D {
699 public: 623 public:
700 LoseContextOnFirstGetContext() {} 624 LoseContextOnFirstGetContext() {}
701 625
702 void getProgramiv(GLuint program, GLenum pname, GLint* value) override { 626 void getProgramiv(GLuint program, GLenum pname, GLint* value) override {
703 context_lost_ = true; 627 context_lost_ = true;
704 *value = 0; 628 *value = 0;
(...skipping 12 matching lines...) Expand all
717 new LoseContextOnFirstGetContext))); 641 new LoseContextOnFirstGetContext)));
718 CHECK(output_surface->BindToClient(&output_surface_client)); 642 CHECK(output_surface->BindToClient(&output_surface_client));
719 643
720 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 644 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
721 new TestSharedBitmapManager()); 645 new TestSharedBitmapManager());
722 std::unique_ptr<ResourceProvider> resource_provider = 646 std::unique_ptr<ResourceProvider> resource_provider =
723 FakeResourceProvider::Create(output_surface.get(), 647 FakeResourceProvider::Create(output_surface.get(),
724 shared_bitmap_manager.get()); 648 shared_bitmap_manager.get());
725 649
726 RendererSettings settings; 650 RendererSettings settings;
727 FakeRendererClient renderer_client; 651 FakeRendererGL renderer(&settings, output_surface.get(),
728 FakeRendererGL renderer(&renderer_client,
729 &settings,
730 output_surface.get(),
731 resource_provider.get()); 652 resource_provider.get());
732 } 653 }
733 654
734 class ClearCountingContext : public TestWebGraphicsContext3D { 655 class ClearCountingContext : public TestWebGraphicsContext3D {
735 public: 656 public:
736 ClearCountingContext() { test_capabilities_.discard_framebuffer = true; } 657 ClearCountingContext() { test_capabilities_.discard_framebuffer = true; }
737 658
738 MOCK_METHOD3(discardFramebufferEXT, 659 MOCK_METHOD3(discardFramebufferEXT,
739 void(GLenum target, 660 void(GLenum target,
740 GLsizei numAttachments, 661 GLsizei numAttachments,
(...skipping 10 matching lines...) Expand all
751 FakeOutputSurface::Create3d(std::move(context_owned))); 672 FakeOutputSurface::Create3d(std::move(context_owned)));
752 CHECK(output_surface->BindToClient(&output_surface_client)); 673 CHECK(output_surface->BindToClient(&output_surface_client));
753 674
754 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 675 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
755 new TestSharedBitmapManager()); 676 new TestSharedBitmapManager());
756 std::unique_ptr<ResourceProvider> resource_provider = 677 std::unique_ptr<ResourceProvider> resource_provider =
757 FakeResourceProvider::Create(output_surface.get(), 678 FakeResourceProvider::Create(output_surface.get(),
758 shared_bitmap_manager.get()); 679 shared_bitmap_manager.get());
759 680
760 RendererSettings settings; 681 RendererSettings settings;
761 FakeRendererClient renderer_client; 682 FakeRendererGL renderer(&settings, output_surface.get(),
762 FakeRendererGL renderer(&renderer_client,
763 &settings,
764 output_surface.get(),
765 resource_provider.get()); 683 resource_provider.get());
766 renderer.SetVisible(true); 684 renderer.SetVisible(true);
767 685
768 gfx::Rect viewport_rect(1, 1); 686 gfx::Rect viewport_rect(1, 1);
769 RenderPass* root_pass = 687 RenderPass* root_pass =
770 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), 688 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0),
771 viewport_rect, gfx::Transform()); 689 viewport_rect, gfx::Transform());
772 root_pass->has_transparent_background = false; 690 root_pass->has_transparent_background = false;
773 691
774 // On DEBUG builds, render passes with opaque background clear to blue to 692 // On DEBUG builds, render passes with opaque background clear to blue to
(...skipping 19 matching lines...) Expand all
794 FakeOutputSurface::Create3d(std::move(context_owned))); 712 FakeOutputSurface::Create3d(std::move(context_owned)));
795 CHECK(output_surface->BindToClient(&output_surface_client)); 713 CHECK(output_surface->BindToClient(&output_surface_client));
796 714
797 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 715 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
798 new TestSharedBitmapManager()); 716 new TestSharedBitmapManager());
799 std::unique_ptr<ResourceProvider> resource_provider = 717 std::unique_ptr<ResourceProvider> resource_provider =
800 FakeResourceProvider::Create(output_surface.get(), 718 FakeResourceProvider::Create(output_surface.get(),
801 shared_bitmap_manager.get()); 719 shared_bitmap_manager.get());
802 720
803 RendererSettings settings; 721 RendererSettings settings;
804 FakeRendererClient renderer_client; 722 FakeRendererGL renderer(&settings, output_surface.get(),
805 FakeRendererGL renderer(&renderer_client,
806 &settings,
807 output_surface.get(),
808 resource_provider.get()); 723 resource_provider.get());
809 renderer.SetVisible(true); 724 renderer.SetVisible(true);
810 725
811 gfx::Rect viewport_rect(1, 1); 726 gfx::Rect viewport_rect(1, 1);
812 RenderPass* root_pass = 727 RenderPass* root_pass =
813 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), 728 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0),
814 viewport_rect, gfx::Transform()); 729 viewport_rect, gfx::Transform());
815 root_pass->has_transparent_background = true; 730 root_pass->has_transparent_background = true;
816 731
817 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, 1, _)).Times(1); 732 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, 1, _)).Times(1);
(...skipping 12 matching lines...) Expand all
830 FakeOutputSurface::CreateOffscreen(std::move(context_owned))); 745 FakeOutputSurface::CreateOffscreen(std::move(context_owned)));
831 CHECK(output_surface->BindToClient(&output_surface_client)); 746 CHECK(output_surface->BindToClient(&output_surface_client));
832 747
833 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 748 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
834 new TestSharedBitmapManager()); 749 new TestSharedBitmapManager());
835 std::unique_ptr<ResourceProvider> resource_provider = 750 std::unique_ptr<ResourceProvider> resource_provider =
836 FakeResourceProvider::Create(output_surface.get(), 751 FakeResourceProvider::Create(output_surface.get(),
837 shared_bitmap_manager.get()); 752 shared_bitmap_manager.get());
838 753
839 RendererSettings settings; 754 RendererSettings settings;
840 FakeRendererClient renderer_client; 755 FakeRendererGL renderer(&settings, output_surface.get(),
841 FakeRendererGL renderer(&renderer_client,
842 &settings,
843 output_surface.get(),
844 resource_provider.get()); 756 resource_provider.get());
845 renderer.SetVisible(true); 757 renderer.SetVisible(true);
846 758
847 gfx::Rect viewport_rect(1, 1); 759 gfx::Rect viewport_rect(1, 1);
848 AddRenderPass(&render_passes_in_draw_order_, 760 AddRenderPass(&render_passes_in_draw_order_,
849 RenderPassId(1, 0), 761 RenderPassId(1, 0),
850 viewport_rect, 762 viewport_rect,
851 gfx::Transform()); 763 gfx::Transform());
852 764
853 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _)) 765 EXPECT_CALL(*context, discardFramebufferEXT(GL_FRAMEBUFFER, _, _))
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 FakeOutputSurface::Create3d(std::move(context_owned))); 802 FakeOutputSurface::Create3d(std::move(context_owned)));
891 CHECK(output_surface->BindToClient(&output_surface_client)); 803 CHECK(output_surface->BindToClient(&output_surface_client));
892 804
893 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 805 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
894 new TestSharedBitmapManager()); 806 new TestSharedBitmapManager());
895 std::unique_ptr<ResourceProvider> resource_provider = 807 std::unique_ptr<ResourceProvider> resource_provider =
896 FakeResourceProvider::Create(output_surface.get(), 808 FakeResourceProvider::Create(output_surface.get(),
897 shared_bitmap_manager.get()); 809 shared_bitmap_manager.get());
898 810
899 RendererSettings settings; 811 RendererSettings settings;
900 FakeRendererClient renderer_client; 812 FakeRendererGL renderer(&settings, output_surface.get(),
901 FakeRendererGL renderer(&renderer_client,
902 &settings,
903 output_surface.get(),
904 resource_provider.get()); 813 resource_provider.get());
905 renderer.SetVisible(true); 814 renderer.SetVisible(true);
906 815
907 // During initialization we are allowed to set any texture parameters. 816 // During initialization we are allowed to set any texture parameters.
908 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); 817 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber());
909 818
910 RenderPass* root_pass = 819 RenderPass* root_pass =
911 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 1), 820 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 1),
912 gfx::Rect(100, 100), gfx::Transform()); 821 gfx::Rect(100, 100), gfx::Transform());
913 gpu::SyncToken mailbox_sync_token; 822 gpu::SyncToken mailbox_sync_token;
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
975 884
976 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 885 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
977 new TestSharedBitmapManager()); 886 new TestSharedBitmapManager());
978 std::unique_ptr<ResourceProvider> resource_provider = 887 std::unique_ptr<ResourceProvider> resource_provider =
979 FakeResourceProvider::Create(output_surface.get(), 888 FakeResourceProvider::Create(output_surface.get(),
980 shared_bitmap_manager.get()); 889 shared_bitmap_manager.get());
981 890
982 RendererSettings settings; 891 RendererSettings settings;
983 settings.should_clear_root_render_pass = false; 892 settings.should_clear_root_render_pass = false;
984 893
985 FakeRendererClient renderer_client; 894 FakeRendererGL renderer(&settings, output_surface.get(),
986 FakeRendererGL renderer(&renderer_client,
987 &settings,
988 output_surface.get(),
989 resource_provider.get()); 895 resource_provider.get());
990 renderer.SetVisible(true); 896 renderer.SetVisible(true);
991 897
992 gfx::Rect viewport_rect(10, 10); 898 gfx::Rect viewport_rect(10, 10);
993 899
994 RenderPassId child_pass_id(2, 0); 900 RenderPassId child_pass_id(2, 0);
995 RenderPass* child_pass = 901 RenderPass* child_pass =
996 AddRenderPass(&render_passes_in_draw_order_, child_pass_id, viewport_rect, 902 AddRenderPass(&render_passes_in_draw_order_, child_pass_id, viewport_rect,
997 gfx::Transform()); 903 gfx::Transform());
998 AddQuad(child_pass, viewport_rect, SK_ColorBLUE); 904 AddQuad(child_pass, viewport_rect, SK_ColorBLUE);
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
1061 TestContextProvider::Create(std::move(gl_owned)))); 967 TestContextProvider::Create(std::move(gl_owned))));
1062 CHECK(output_surface->BindToClient(&output_surface_client)); 968 CHECK(output_surface->BindToClient(&output_surface_client));
1063 969
1064 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 970 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1065 new TestSharedBitmapManager()); 971 new TestSharedBitmapManager());
1066 std::unique_ptr<ResourceProvider> resource_provider = 972 std::unique_ptr<ResourceProvider> resource_provider =
1067 FakeResourceProvider::Create(output_surface.get(), 973 FakeResourceProvider::Create(output_surface.get(),
1068 shared_bitmap_manager.get()); 974 shared_bitmap_manager.get());
1069 975
1070 RendererSettings settings; 976 RendererSettings settings;
1071 FakeRendererClient renderer_client; 977 FakeRendererGL renderer(&settings, output_surface.get(),
1072 FakeRendererGL renderer(&renderer_client,
1073 &settings,
1074 output_surface.get(),
1075 resource_provider.get()); 978 resource_provider.get());
1076 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 979 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
1077 renderer.SetVisible(true); 980 renderer.SetVisible(true);
1078 981
1079 gfx::Rect viewport_rect(1, 1); 982 gfx::Rect viewport_rect(1, 1);
1080 983
1081 gfx::Rect grand_child_rect(25, 25); 984 gfx::Rect grand_child_rect(25, 25);
1082 RenderPassId grand_child_pass_id(3, 0); 985 RenderPassId grand_child_pass_id(3, 0);
1083 RenderPass* grand_child_pass = 986 RenderPass* grand_child_pass =
1084 AddRenderPass(&render_passes_in_draw_order_, grand_child_pass_id, 987 AddRenderPass(&render_passes_in_draw_order_, grand_child_pass_id,
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
1153 output_surface->set_fixed_size(gfx::Size(100, 100)); 1056 output_surface->set_fixed_size(gfx::Size(100, 100));
1154 1057
1155 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1058 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1156 new TestSharedBitmapManager()); 1059 new TestSharedBitmapManager());
1157 std::unique_ptr<ResourceProvider> resource_provider = 1060 std::unique_ptr<ResourceProvider> resource_provider =
1158 FakeResourceProvider::Create(output_surface.get(), 1061 FakeResourceProvider::Create(output_surface.get(),
1159 shared_bitmap_manager.get()); 1062 shared_bitmap_manager.get());
1160 1063
1161 RendererSettings settings; 1064 RendererSettings settings;
1162 settings.partial_swap_enabled = true; 1065 settings.partial_swap_enabled = true;
1163 FakeRendererClient renderer_client; 1066 FakeRendererGL renderer(&settings, output_surface.get(),
1164 FakeRendererGL renderer(&renderer_client,
1165 &settings,
1166 output_surface.get(),
1167 resource_provider.get()); 1067 resource_provider.get());
1168 EXPECT_TRUE(renderer.Capabilities().using_partial_swap); 1068 EXPECT_TRUE(renderer.Capabilities().using_partial_swap);
1169 renderer.SetVisible(true); 1069 renderer.SetVisible(true);
1170 1070
1171 gfx::Rect viewport_rect(100, 100); 1071 gfx::Rect viewport_rect(100, 100);
1172 gfx::Rect clip_rect(100, 100); 1072 gfx::Rect clip_rect(100, 100);
1173 1073
1174 { 1074 {
1175 // Partial frame, should not discard. 1075 // Partial frame, should not discard.
1176 RenderPassId root_pass_id(1, 0); 1076 RenderPassId root_pass_id(1, 0);
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
1288 new NonReshapableOutputSurface(std::move(gl_owned))); 1188 new NonReshapableOutputSurface(std::move(gl_owned)));
1289 CHECK(output_surface->BindToClient(&output_surface_client)); 1189 CHECK(output_surface->BindToClient(&output_surface_client));
1290 1190
1291 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1191 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1292 new TestSharedBitmapManager()); 1192 new TestSharedBitmapManager());
1293 std::unique_ptr<ResourceProvider> resource_provider = 1193 std::unique_ptr<ResourceProvider> resource_provider =
1294 FakeResourceProvider::Create(output_surface.get(), 1194 FakeResourceProvider::Create(output_surface.get(),
1295 shared_bitmap_manager.get()); 1195 shared_bitmap_manager.get());
1296 1196
1297 RendererSettings settings; 1197 RendererSettings settings;
1298 FakeRendererClient renderer_client; 1198 FakeRendererGL renderer(&settings, output_surface.get(),
1299 FakeRendererGL renderer(&renderer_client,
1300 &settings,
1301 output_surface.get(),
1302 resource_provider.get()); 1199 resource_provider.get());
1303 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 1200 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
1304 renderer.SetVisible(true); 1201 renderer.SetVisible(true);
1305 1202
1306 gfx::Rect device_viewport_rect(10, 10, 100, 100); 1203 gfx::Rect device_viewport_rect(10, 10, 100, 100);
1307 gfx::Rect viewport_rect(device_viewport_rect.size()); 1204 gfx::Rect viewport_rect(device_viewport_rect.size());
1308 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20); 1205 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20);
1309 1206
1310 RenderPassId root_pass_id(1, 0); 1207 RenderPassId root_pass_id(1, 0);
1311 RenderPass* root_pass = 1208 RenderPass* root_pass =
(...skipping 16 matching lines...) Expand all
1328 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create())); 1225 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()));
1329 CHECK(output_surface->BindToClient(&output_surface_client)); 1226 CHECK(output_surface->BindToClient(&output_surface_client));
1330 1227
1331 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1228 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1332 new TestSharedBitmapManager()); 1229 new TestSharedBitmapManager());
1333 std::unique_ptr<ResourceProvider> resource_provider = 1230 std::unique_ptr<ResourceProvider> resource_provider =
1334 FakeResourceProvider::Create(output_surface.get(), 1231 FakeResourceProvider::Create(output_surface.get(),
1335 shared_bitmap_manager.get()); 1232 shared_bitmap_manager.get());
1336 1233
1337 RendererSettings settings; 1234 RendererSettings settings;
1338 FakeRendererClient renderer_client; 1235 FakeRendererGL renderer(&settings, output_surface.get(),
1339 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
1340 resource_provider.get()); 1236 resource_provider.get());
1341 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 1237 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
1342 renderer.SetVisible(true); 1238 renderer.SetVisible(true);
1343 1239
1344 gfx::Rect device_viewport_rect(0, 0, 100, 100); 1240 gfx::Rect device_viewport_rect(0, 0, 100, 100);
1345 gfx::Rect viewport_rect(device_viewport_rect.size()); 1241 gfx::Rect viewport_rect(device_viewport_rect.size());
1346 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20); 1242 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20);
1347 1243
1348 RenderPassId root_pass_id(1, 0); 1244 RenderPassId root_pass_id(1, 0);
1349 RenderPass* root_pass = 1245 RenderPass* root_pass =
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
1712 class MockOutputSurfaceTest : public GLRendererTest { 1608 class MockOutputSurfaceTest : public GLRendererTest {
1713 protected: 1609 protected:
1714 virtual void SetUp() { 1610 virtual void SetUp() {
1715 FakeOutputSurfaceClient output_surface_client_; 1611 FakeOutputSurfaceClient output_surface_client_;
1716 CHECK(output_surface_.BindToClient(&output_surface_client_)); 1612 CHECK(output_surface_.BindToClient(&output_surface_client_));
1717 1613
1718 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 1614 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
1719 resource_provider_ = FakeResourceProvider::Create( 1615 resource_provider_ = FakeResourceProvider::Create(
1720 &output_surface_, shared_bitmap_manager_.get()); 1616 &output_surface_, shared_bitmap_manager_.get());
1721 1617
1722 renderer_.reset(new FakeRendererGL(&renderer_client_, 1618 renderer_.reset(new FakeRendererGL(&settings_, &output_surface_,
1723 &settings_,
1724 &output_surface_,
1725 resource_provider_.get())); 1619 resource_provider_.get()));
1620
1621 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1);
1726 renderer_->SetVisible(true); 1622 renderer_->SetVisible(true);
1727 } 1623 }
1728 1624
1729 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } 1625 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); }
1730 1626
1731 void DrawFrame(float device_scale_factor, 1627 void DrawFrame(float device_scale_factor,
1732 const gfx::Rect& device_viewport_rect, 1628 const gfx::Rect& device_viewport_rect,
1733 bool transparent) { 1629 bool transparent) {
1734 RenderPassId render_pass_id(1, 0); 1630 RenderPassId render_pass_id(1, 0);
1735 RenderPass* render_pass = 1631 RenderPass* render_pass =
(...skipping 23 matching lines...) Expand all
1759 return static_cast<OutputSurfaceMockContext*>( 1655 return static_cast<OutputSurfaceMockContext*>(
1760 static_cast<TestContextProvider*>(output_surface_.context_provider()) 1656 static_cast<TestContextProvider*>(output_surface_.context_provider())
1761 ->TestContext3d()); 1657 ->TestContext3d());
1762 } 1658 }
1763 1659
1764 RendererSettings settings_; 1660 RendererSettings settings_;
1765 FakeOutputSurfaceClient output_surface_client_; 1661 FakeOutputSurfaceClient output_surface_client_;
1766 StrictMock<MockOutputSurface> output_surface_; 1662 StrictMock<MockOutputSurface> output_surface_;
1767 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 1663 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
1768 std::unique_ptr<ResourceProvider> resource_provider_; 1664 std::unique_ptr<ResourceProvider> resource_provider_;
1769 FakeRendererClient renderer_client_;
1770 std::unique_ptr<FakeRendererGL> renderer_; 1665 std::unique_ptr<FakeRendererGL> renderer_;
1771 }; 1666 };
1772 1667
1668 TEST_F(MockOutputSurfaceTest, BackbufferDiscard) {
1669 // Drop backbuffer on hide.
1670 EXPECT_CALL(output_surface_, DiscardBackbuffer()).Times(1);
1671 renderer_->SetVisible(false);
1672 // Restore backbuffer on show.
1673 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1);
1674 renderer_->SetVisible(true);
1675 }
1676
1773 TEST_F(MockOutputSurfaceTest, DrawFrameAndSwap) { 1677 TEST_F(MockOutputSurfaceTest, DrawFrameAndSwap) {
1774 gfx::Rect device_viewport_rect(1, 1); 1678 gfx::Rect device_viewport_rect(1, 1);
1775 DrawFrame(1.f, device_viewport_rect, true); 1679 DrawFrame(1.f, device_viewport_rect, true);
1776 1680
1777 EXPECT_CALL(output_surface_, SwapBuffers_(_)).Times(1); 1681 EXPECT_CALL(output_surface_, SwapBuffers_(_)).Times(1);
1778 renderer_->SwapBuffers(CompositorFrameMetadata()); 1682 renderer_->SwapBuffers(CompositorFrameMetadata());
1779 } 1683 }
1780 1684
1781 TEST_F(MockOutputSurfaceTest, DrawOpaqueFrameAndSwap) { 1685 TEST_F(MockOutputSurfaceTest, DrawOpaqueFrameAndSwap) {
1782 gfx::Rect device_viewport_rect(1, 1); 1686 gfx::Rect device_viewport_rect(1, 1);
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
1863 1767
1864 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1768 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1865 new TestSharedBitmapManager()); 1769 new TestSharedBitmapManager());
1866 std::unique_ptr<ResourceProvider> resource_provider = 1770 std::unique_ptr<ResourceProvider> resource_provider =
1867 FakeResourceProvider::Create(output_surface.get(), 1771 FakeResourceProvider::Create(output_surface.get(),
1868 shared_bitmap_manager.get()); 1772 shared_bitmap_manager.get());
1869 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( 1773 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter(
1870 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); 1774 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get()));
1871 1775
1872 RendererSettings settings; 1776 RendererSettings settings;
1873 FakeRendererClient renderer_client; 1777 FakeRendererGL renderer(&settings, output_surface.get(),
1874 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
1875 resource_provider.get(), mailbox_deleter.get()); 1778 resource_provider.get(), mailbox_deleter.get());
1876 renderer.SetVisible(true); 1779 renderer.SetVisible(true);
1877 1780
1878 TestOverlayProcessor* processor = 1781 TestOverlayProcessor* processor =
1879 new TestOverlayProcessor(output_surface.get()); 1782 new TestOverlayProcessor(output_surface.get());
1880 processor->Initialize(); 1783 processor->Initialize();
1881 renderer.SetOverlayProcessor(processor); 1784 renderer.SetOverlayProcessor(processor);
1882 std::unique_ptr<TestOverlayProcessor::Validator> validator( 1785 std::unique_ptr<TestOverlayProcessor::Validator> validator(
1883 new TestOverlayProcessor::Validator); 1786 new TestOverlayProcessor::Validator);
1884 output_surface->SetOverlayCandidateValidator(validator.get()); 1787 output_surface->SetOverlayCandidateValidator(validator.get());
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
2022 1925
2023 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1926 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
2024 new TestSharedBitmapManager()); 1927 new TestSharedBitmapManager());
2025 std::unique_ptr<ResourceProvider> resource_provider = 1928 std::unique_ptr<ResourceProvider> resource_provider =
2026 FakeResourceProvider::Create(output_surface.get(), 1929 FakeResourceProvider::Create(output_surface.get(),
2027 shared_bitmap_manager.get()); 1930 shared_bitmap_manager.get());
2028 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( 1931 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter(
2029 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); 1932 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get()));
2030 1933
2031 RendererSettings settings; 1934 RendererSettings settings;
2032 FakeRendererClient renderer_client; 1935 FakeRendererGL renderer(&settings, output_surface.get(),
2033 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
2034 resource_provider.get(), mailbox_deleter.get()); 1936 resource_provider.get(), mailbox_deleter.get());
2035 renderer.SetVisible(true); 1937 renderer.SetVisible(true);
2036 1938
2037 SingleOverlayOnTopProcessor* processor = 1939 SingleOverlayOnTopProcessor* processor =
2038 new SingleOverlayOnTopProcessor(output_surface.get()); 1940 new SingleOverlayOnTopProcessor(output_surface.get());
2039 processor->Initialize(); 1941 processor->Initialize();
2040 renderer.SetOverlayProcessor(processor); 1942 renderer.SetOverlayProcessor(processor);
2041 1943
2042 gfx::Rect viewport_rect(1, 1); 1944 gfx::Rect viewport_rect(1, 1);
2043 RenderPass* root_pass = 1945 RenderPass* root_pass =
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
2101 FakeOutputSurfaceClient output_surface_client; 2003 FakeOutputSurfaceClient output_surface_client;
2102 std::unique_ptr<FakeOutputSurface> output_surface( 2004 std::unique_ptr<FakeOutputSurface> output_surface(
2103 FakeOutputSurface::Create3d(std::move(gl_owned))); 2005 FakeOutputSurface::Create3d(std::move(gl_owned)));
2104 CHECK(output_surface->BindToClient(&output_surface_client)); 2006 CHECK(output_surface->BindToClient(&output_surface_client));
2105 2007
2106 std::unique_ptr<ResourceProvider> resource_provider = 2008 std::unique_ptr<ResourceProvider> resource_provider =
2107 FakeResourceProvider::Create(output_surface.get(), nullptr); 2009 FakeResourceProvider::Create(output_surface.get(), nullptr);
2108 2010
2109 RendererSettings settings; 2011 RendererSettings settings;
2110 settings.partial_swap_enabled = partial_swap; 2012 settings.partial_swap_enabled = partial_swap;
2111 FakeRendererClient renderer_client; 2013 FakeRendererGL renderer(&settings, output_surface.get(),
2112 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
2113 resource_provider.get()); 2014 resource_provider.get());
2114 EXPECT_EQ(partial_swap, renderer.Capabilities().using_partial_swap); 2015 EXPECT_EQ(partial_swap, renderer.Capabilities().using_partial_swap);
2115 renderer.SetVisible(true); 2016 renderer.SetVisible(true);
2116 2017
2117 gfx::Rect viewport_rect(100, 100); 2018 gfx::Rect viewport_rect(100, 100);
2118 gfx::Rect clip_rect(100, 100); 2019 gfx::Rect clip_rect(100, 100);
2119 2020
2120 { 2021 {
2121 RenderPassId root_pass_id(1, 0); 2022 RenderPassId root_pass_id(1, 0);
2122 RenderPass* root_pass = 2023 RenderPass* root_pass =
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
2190 }; 2091 };
2191 2092
2192 void SetUp() override { 2093 void SetUp() override {
2193 auto context_support = base::MakeUnique<MockContextSupport>(); 2094 auto context_support = base::MakeUnique<MockContextSupport>();
2194 context_support_ptr_ = context_support.get(); 2095 context_support_ptr_ = context_support.get();
2195 context_provider_ = new MockContextProvider(std::move(context_support)); 2096 context_provider_ = new MockContextProvider(std::move(context_support));
2196 output_surface_ = FakeOutputSurface::Create3d(context_provider_); 2097 output_surface_ = FakeOutputSurface::Create3d(context_provider_);
2197 output_surface_->BindToClient(&output_surface_client_); 2098 output_surface_->BindToClient(&output_surface_client_);
2198 resource_provider_ = 2099 resource_provider_ =
2199 FakeResourceProvider::Create(output_surface_.get(), nullptr); 2100 FakeResourceProvider::Create(output_surface_.get(), nullptr);
2200 renderer_ = base::MakeUnique<GLRenderer>( 2101 renderer_ =
2201 &renderer_client_, &settings_, output_surface_.get(), 2102 base::MakeUnique<GLRenderer>(&settings_, output_surface_.get(),
2202 resource_provider_.get(), nullptr, 0); 2103 resource_provider_.get(), nullptr, 0);
2203 } 2104 }
2204 2105
2205 FakeRendererClient renderer_client_;
2206 RendererSettings settings_; 2106 RendererSettings settings_;
2207 FakeOutputSurfaceClient output_surface_client_; 2107 FakeOutputSurfaceClient output_surface_client_;
2208 MockContextSupport* context_support_ptr_; 2108 MockContextSupport* context_support_ptr_;
2209 scoped_refptr<MockContextProvider> context_provider_; 2109 scoped_refptr<MockContextProvider> context_provider_;
2210 std::unique_ptr<OutputSurface> output_surface_; 2110 std::unique_ptr<OutputSurface> output_surface_;
2211 std::unique_ptr<ResourceProvider> resource_provider_; 2111 std::unique_ptr<ResourceProvider> resource_provider_;
2212 std::unique_ptr<Renderer> renderer_; 2112 std::unique_ptr<Renderer> renderer_;
2213 }; 2113 };
2214 2114
2215 TEST_F(GLRendererWithMockContextTest, 2115 TEST_F(GLRendererWithMockContextTest,
(...skipping 16 matching lines...) Expand all
2232 EXPECT_CALL(*context_provider_, DeleteCachedResources()); 2132 EXPECT_CALL(*context_provider_, DeleteCachedResources());
2233 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); 2133 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true));
2234 renderer_->SetVisible(false); 2134 renderer_->SetVisible(false);
2235 Mock::VerifyAndClearExpectations(context_support_ptr_); 2135 Mock::VerifyAndClearExpectations(context_support_ptr_);
2236 2136
2237 EXPECT_FALSE(renderer_->visible()); 2137 EXPECT_FALSE(renderer_->visible());
2238 } 2138 }
2239 2139
2240 } // namespace 2140 } // namespace
2241 } // namespace cc 2141 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/overlay_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698