| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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 |
| OLD | NEW |