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

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

Issue 2194013002: cc: Delete the Renderer base class. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@dcheck-delegating
Patch Set: delete-renderer-base-class: 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
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_direct_renderer_client.h"
23 #include "cc/test/fake_impl_task_runner_provider.h" 24 #include "cc/test/fake_impl_task_runner_provider.h"
24 #include "cc/test/fake_layer_tree_host_impl.h" 25 #include "cc/test/fake_layer_tree_host_impl.h"
25 #include "cc/test/fake_output_surface.h" 26 #include "cc/test/fake_output_surface.h"
26 #include "cc/test/fake_output_surface_client.h" 27 #include "cc/test/fake_output_surface_client.h"
27 #include "cc/test/fake_renderer_client.h"
28 #include "cc/test/fake_resource_provider.h" 28 #include "cc/test/fake_resource_provider.h"
29 #include "cc/test/pixel_test.h" 29 #include "cc/test/pixel_test.h"
30 #include "cc/test/render_pass_test_utils.h" 30 #include "cc/test/render_pass_test_utils.h"
31 #include "cc/test/test_gles2_interface.h" 31 #include "cc/test/test_gles2_interface.h"
32 #include "cc/test/test_shared_bitmap_manager.h" 32 #include "cc/test/test_shared_bitmap_manager.h"
33 #include "cc/test/test_web_graphics_context_3d.h" 33 #include "cc/test/test_web_graphics_context_3d.h"
34 #include "gpu/GLES2/gl2extchromium.h" 34 #include "gpu/GLES2/gl2extchromium.h"
35 #include "gpu/command_buffer/client/context_support.h" 35 #include "gpu/command_buffer/client/context_support.h"
36 #include "testing/gmock/include/gmock/gmock.h" 36 #include "testing/gmock/include/gmock/gmock.h"
37 #include "testing/gtest/include/gtest/gtest.h" 37 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 20 matching lines...) Expand all
58 gpu::SyncToken other; 58 gpu::SyncToken other;
59 memcpy(&other, arg, sizeof(other)); 59 memcpy(&other, arg, sizeof(other));
60 return other == sync_token; 60 return other == sync_token;
61 } 61 }
62 62
63 class GLRendererTest : public testing::Test { 63 class GLRendererTest : public testing::Test {
64 protected: 64 protected:
65 RenderPass* root_render_pass() { 65 RenderPass* root_render_pass() {
66 return render_passes_in_draw_order_.back().get(); 66 return render_passes_in_draw_order_.back().get();
67 } 67 }
68 void DrawFrame(Renderer* renderer, const gfx::Rect& viewport_rect) { 68 void DrawFrame(GLRenderer* renderer, const gfx::Rect& viewport_rect) {
69 renderer->DrawFrame(&render_passes_in_draw_order_, 1.f, gfx::ColorSpace(), 69 renderer->DrawFrame(&render_passes_in_draw_order_, 1.f, gfx::ColorSpace(),
70 viewport_rect, viewport_rect); 70 viewport_rect, viewport_rect);
71 } 71 }
72 void DrawFrame(Renderer* renderer, 72 void DrawFrame(GLRenderer* renderer,
73 const gfx::Rect& viewport_rect, 73 const gfx::Rect& viewport_rect,
74 const gfx::Rect& clip_rect) { 74 const gfx::Rect& clip_rect) {
75 renderer->DrawFrame(&render_passes_in_draw_order_, 1.f, gfx::ColorSpace(), 75 renderer->DrawFrame(&render_passes_in_draw_order_, 1.f, gfx::ColorSpace(),
76 viewport_rect, clip_rect); 76 viewport_rect, clip_rect);
77 } 77 }
78 78
79 RenderPassList render_passes_in_draw_order_; 79 RenderPassList render_passes_in_draw_order_;
80 }; 80 };
81 81
82 #define EXPECT_PROGRAM_VALID(program_binding) \ 82 #define EXPECT_PROGRAM_VALID(program_binding) \
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 MaskShaderPixelTest, 306 MaskShaderPixelTest,
307 ::testing::Combine(::testing::ValuesIn(kPrecisionList), 307 ::testing::Combine(::testing::ValuesIn(kPrecisionList),
308 ::testing::ValuesIn(kSamplerList), 308 ::testing::ValuesIn(kSamplerList),
309 ::testing::ValuesIn(kBlendModeList), 309 ::testing::ValuesIn(kBlendModeList),
310 ::testing::Bool())); 310 ::testing::Bool()));
311 311
312 #endif 312 #endif
313 313
314 class FakeRendererGL : public GLRenderer { 314 class FakeRendererGL : public GLRenderer {
315 public: 315 public:
316 FakeRendererGL(RendererClient* client, 316 FakeRendererGL(DirectRendererClient* client,
317 const RendererSettings* settings, 317 const RendererSettings* settings,
318 OutputSurface* output_surface, 318 OutputSurface* output_surface,
319 ResourceProvider* resource_provider) 319 ResourceProvider* resource_provider)
320 : GLRenderer(client, 320 : GLRenderer(client,
321 settings, 321 settings,
322 output_surface, 322 output_surface,
323 resource_provider, 323 resource_provider,
324 NULL, 324 NULL,
325 0) {} 325 0) {}
326 326
327 FakeRendererGL(RendererClient* client, 327 FakeRendererGL(DirectRendererClient* client,
328 const RendererSettings* settings, 328 const RendererSettings* settings,
329 OutputSurface* output_surface, 329 OutputSurface* output_surface,
330 ResourceProvider* resource_provider, 330 ResourceProvider* resource_provider,
331 TextureMailboxDeleter* texture_mailbox_deleter) 331 TextureMailboxDeleter* texture_mailbox_deleter)
332 : GLRenderer(client, 332 : GLRenderer(client,
333 settings, 333 settings,
334 output_surface, 334 output_surface,
335 resource_provider, 335 resource_provider,
336 texture_mailbox_deleter, 336 texture_mailbox_deleter,
337 0) {} 337 0) {}
338 338
339 void SetOverlayProcessor(OverlayProcessor* processor) { 339 void SetOverlayProcessor(OverlayProcessor* processor) {
340 overlay_processor_.reset(processor); 340 overlay_processor_.reset(processor);
341 } 341 }
342 342
343 // GLRenderer methods. 343 // GLRenderer methods.
344 344
345 // Changing visibility to public. 345 // Changing visibility to public.
346 using GLRenderer::IsBackbufferDiscarded;
347 using GLRenderer::DoDrawQuad; 346 using GLRenderer::DoDrawQuad;
348 using GLRenderer::BeginDrawingFrame; 347 using GLRenderer::BeginDrawingFrame;
349 using GLRenderer::FinishDrawingQuadList; 348 using GLRenderer::FinishDrawingQuadList;
350 using GLRenderer::stencil_enabled; 349 using GLRenderer::stencil_enabled;
351 }; 350 };
352 351
353 class GLRendererWithDefaultHarnessTest : public GLRendererTest { 352 class GLRendererWithDefaultHarnessTest : public GLRendererTest {
354 protected: 353 protected:
355 GLRendererWithDefaultHarnessTest() { 354 GLRendererWithDefaultHarnessTest() {
356 output_surface_ = 355 output_surface_ =
357 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()); 356 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create());
358 CHECK(output_surface_->BindToClient(&output_surface_client_)); 357 CHECK(output_surface_->BindToClient(&output_surface_client_));
359 358
360 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 359 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
361 resource_provider_ = FakeResourceProvider::Create( 360 resource_provider_ = FakeResourceProvider::Create(
362 output_surface_.get(), shared_bitmap_manager_.get()); 361 output_surface_.get(), shared_bitmap_manager_.get());
363 renderer_ = base::WrapUnique( 362 renderer_ = base::WrapUnique(
364 new FakeRendererGL(&renderer_client_, &settings_, output_surface_.get(), 363 new FakeRendererGL(&renderer_client_, &settings_, output_surface_.get(),
365 resource_provider_.get())); 364 resource_provider_.get()));
366 } 365 }
367 366
368 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } 367 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); }
369 368
370 RendererSettings settings_; 369 RendererSettings settings_;
371 FakeOutputSurfaceClient output_surface_client_; 370 FakeOutputSurfaceClient output_surface_client_;
372 std::unique_ptr<FakeOutputSurface> output_surface_; 371 std::unique_ptr<FakeOutputSurface> output_surface_;
373 FakeRendererClient renderer_client_; 372 FakeDirectRendererClient renderer_client_;
374 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 373 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
375 std::unique_ptr<ResourceProvider> resource_provider_; 374 std::unique_ptr<ResourceProvider> resource_provider_;
376 std::unique_ptr<FakeRendererGL> renderer_; 375 std::unique_ptr<FakeRendererGL> renderer_;
377 }; 376 };
378 377
379 // Closing the namespace here so that GLRendererShaderTest can take advantage 378 // Closing the namespace here so that GLRendererShaderTest can take advantage
380 // of the friend relationship with GLRenderer and all of the mock classes 379 // of the friend relationship with GLRenderer and all of the mock classes
381 // declared above it. 380 // declared above it.
382 } // namespace 381 } // namespace
383 382
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
485 484
486 void TestSolidColorProgramAA() { 485 void TestSolidColorProgramAA() {
487 EXPECT_PROGRAM_VALID(&renderer_->solid_color_program_aa_); 486 EXPECT_PROGRAM_VALID(&renderer_->solid_color_program_aa_);
488 EXPECT_EQ(renderer_->solid_color_program_aa_.program(), 487 EXPECT_EQ(renderer_->solid_color_program_aa_.program(),
489 renderer_->program_shadow_); 488 renderer_->program_shadow_);
490 } 489 }
491 490
492 RendererSettings settings_; 491 RendererSettings settings_;
493 FakeOutputSurfaceClient output_surface_client_; 492 FakeOutputSurfaceClient output_surface_client_;
494 std::unique_ptr<FakeOutputSurface> output_surface_; 493 std::unique_ptr<FakeOutputSurface> output_surface_;
495 FakeRendererClient renderer_client_; 494 FakeDirectRendererClient renderer_client_;
496 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 495 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
497 std::unique_ptr<ResourceProvider> resource_provider_; 496 std::unique_ptr<ResourceProvider> resource_provider_;
498 std::unique_ptr<FakeRendererGL> renderer_; 497 std::unique_ptr<FakeRendererGL> renderer_;
499 }; 498 };
500 499
501 namespace { 500 namespace {
502 501
503 // Test GLRenderer DiscardBackbuffer functionality:
504 // Suggest discarding framebuffer when one exists and the renderer is not
505 // visible.
506 // Expected: it is discarded and damage tracker is reset.
507 TEST_F(
508 GLRendererWithDefaultHarnessTest,
509 SuggestBackbufferNoShouldDiscardBackbufferAndDamageRootLayerIfNotVisible) {
510 renderer_->SetVisible(false);
511 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count());
512 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
513 }
514
515 // Test GLRenderer DiscardBackbuffer functionality:
516 // Suggest discarding framebuffer when one exists and the renderer is visible.
517 // Expected: the allocation is ignored.
518 TEST_F(GLRendererWithDefaultHarnessTest,
519 SuggestBackbufferNoDoNothingWhenVisible) {
520 renderer_->SetVisible(true);
521 EXPECT_EQ(0, renderer_client_.set_full_root_layer_damage_count());
522 EXPECT_FALSE(renderer_->IsBackbufferDiscarded());
523 }
524
525 // Test GLRenderer DiscardBackbuffer functionality:
526 // Suggest discarding framebuffer when one does not exist.
527 // Expected: it does nothing.
528 TEST_F(GLRendererWithDefaultHarnessTest,
529 SuggestBackbufferNoWhenItDoesntExistShouldDoNothing) {
530 renderer_->SetVisible(false);
531 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count());
532 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
533
534 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count());
535 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
536 }
537
538 // Test GLRenderer DiscardBackbuffer functionality:
539 // Begin drawing a frame while a framebuffer is discarded.
540 // Expected: will recreate framebuffer.
541 TEST_F(GLRendererWithDefaultHarnessTest,
542 DiscardedBackbufferIsRecreatedForScopeDuration) {
543 gfx::Rect viewport_rect(1, 1);
544 renderer_->SetVisible(false);
545 EXPECT_TRUE(renderer_->IsBackbufferDiscarded());
546 EXPECT_EQ(1, renderer_client_.set_full_root_layer_damage_count());
547
548 AddRenderPass(&render_passes_in_draw_order_,
549 RenderPassId(1, 0),
550 viewport_rect,
551 gfx::Transform());
552
553 renderer_->SetVisible(true);
554 DrawFrame(renderer_.get(), viewport_rect);
555 EXPECT_FALSE(renderer_->IsBackbufferDiscarded());
556
557 SwapBuffers();
558 EXPECT_EQ(1u, output_surface_->num_sent_frames());
559 }
560
561 TEST_F(GLRendererWithDefaultHarnessTest, ExternalStencil) { 502 TEST_F(GLRendererWithDefaultHarnessTest, ExternalStencil) {
562 gfx::Rect viewport_rect(1, 1); 503 gfx::Rect viewport_rect(1, 1);
563 EXPECT_FALSE(renderer_->stencil_enabled()); 504 EXPECT_FALSE(renderer_->stencil_enabled());
564 505
565 output_surface_->set_has_external_stencil_test(true); 506 output_surface_->set_has_external_stencil_test(true);
566 507
567 RenderPass* root_pass = 508 RenderPass* root_pass =
568 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), 509 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0),
569 viewport_rect, gfx::Transform()); 510 viewport_rect, gfx::Transform());
570 root_pass->has_transparent_background = false; 511 root_pass->has_transparent_background = false;
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after
677 new ForbidSynchronousCallContext))); 618 new ForbidSynchronousCallContext)));
678 CHECK(output_surface->BindToClient(&output_surface_client)); 619 CHECK(output_surface->BindToClient(&output_surface_client));
679 620
680 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 621 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
681 new TestSharedBitmapManager()); 622 new TestSharedBitmapManager());
682 std::unique_ptr<ResourceProvider> resource_provider = 623 std::unique_ptr<ResourceProvider> resource_provider =
683 FakeResourceProvider::Create(output_surface.get(), 624 FakeResourceProvider::Create(output_surface.get(),
684 shared_bitmap_manager.get()); 625 shared_bitmap_manager.get());
685 626
686 RendererSettings settings; 627 RendererSettings settings;
687 FakeRendererClient renderer_client; 628 FakeDirectRendererClient renderer_client;
688 FakeRendererGL renderer(&renderer_client, 629 FakeRendererGL renderer(&renderer_client,
689 &settings, 630 &settings,
690 output_surface.get(), 631 output_surface.get(),
691 resource_provider.get()); 632 resource_provider.get());
692 } 633 }
693 634
694 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { 635 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D {
695 public: 636 public:
696 LoseContextOnFirstGetContext() {} 637 LoseContextOnFirstGetContext() {}
697 638
(...skipping 15 matching lines...) Expand all
713 new LoseContextOnFirstGetContext))); 654 new LoseContextOnFirstGetContext)));
714 CHECK(output_surface->BindToClient(&output_surface_client)); 655 CHECK(output_surface->BindToClient(&output_surface_client));
715 656
716 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 657 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
717 new TestSharedBitmapManager()); 658 new TestSharedBitmapManager());
718 std::unique_ptr<ResourceProvider> resource_provider = 659 std::unique_ptr<ResourceProvider> resource_provider =
719 FakeResourceProvider::Create(output_surface.get(), 660 FakeResourceProvider::Create(output_surface.get(),
720 shared_bitmap_manager.get()); 661 shared_bitmap_manager.get());
721 662
722 RendererSettings settings; 663 RendererSettings settings;
723 FakeRendererClient renderer_client; 664 FakeDirectRendererClient renderer_client;
724 FakeRendererGL renderer(&renderer_client, 665 FakeRendererGL renderer(&renderer_client,
725 &settings, 666 &settings,
726 output_surface.get(), 667 output_surface.get(),
727 resource_provider.get()); 668 resource_provider.get());
728 } 669 }
729 670
730 class ClearCountingContext : public TestWebGraphicsContext3D { 671 class ClearCountingContext : public TestWebGraphicsContext3D {
731 public: 672 public:
732 ClearCountingContext() { test_capabilities_.discard_framebuffer = true; } 673 ClearCountingContext() { test_capabilities_.discard_framebuffer = true; }
733 674
(...skipping 13 matching lines...) Expand all
747 FakeOutputSurface::Create3d(std::move(context_owned))); 688 FakeOutputSurface::Create3d(std::move(context_owned)));
748 CHECK(output_surface->BindToClient(&output_surface_client)); 689 CHECK(output_surface->BindToClient(&output_surface_client));
749 690
750 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 691 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
751 new TestSharedBitmapManager()); 692 new TestSharedBitmapManager());
752 std::unique_ptr<ResourceProvider> resource_provider = 693 std::unique_ptr<ResourceProvider> resource_provider =
753 FakeResourceProvider::Create(output_surface.get(), 694 FakeResourceProvider::Create(output_surface.get(),
754 shared_bitmap_manager.get()); 695 shared_bitmap_manager.get());
755 696
756 RendererSettings settings; 697 RendererSettings settings;
757 FakeRendererClient renderer_client; 698 FakeDirectRendererClient renderer_client;
758 FakeRendererGL renderer(&renderer_client, 699 FakeRendererGL renderer(&renderer_client,
759 &settings, 700 &settings,
760 output_surface.get(), 701 output_surface.get(),
761 resource_provider.get()); 702 resource_provider.get());
762 703
763 gfx::Rect viewport_rect(1, 1); 704 gfx::Rect viewport_rect(1, 1);
764 RenderPass* root_pass = 705 RenderPass* root_pass =
765 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), 706 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0),
766 viewport_rect, gfx::Transform()); 707 viewport_rect, gfx::Transform());
767 root_pass->has_transparent_background = false; 708 root_pass->has_transparent_background = false;
(...skipping 21 matching lines...) Expand all
789 FakeOutputSurface::Create3d(std::move(context_owned))); 730 FakeOutputSurface::Create3d(std::move(context_owned)));
790 CHECK(output_surface->BindToClient(&output_surface_client)); 731 CHECK(output_surface->BindToClient(&output_surface_client));
791 732
792 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 733 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
793 new TestSharedBitmapManager()); 734 new TestSharedBitmapManager());
794 std::unique_ptr<ResourceProvider> resource_provider = 735 std::unique_ptr<ResourceProvider> resource_provider =
795 FakeResourceProvider::Create(output_surface.get(), 736 FakeResourceProvider::Create(output_surface.get(),
796 shared_bitmap_manager.get()); 737 shared_bitmap_manager.get());
797 738
798 RendererSettings settings; 739 RendererSettings settings;
799 FakeRendererClient renderer_client; 740 FakeDirectRendererClient renderer_client;
800 FakeRendererGL renderer(&renderer_client, 741 FakeRendererGL renderer(&renderer_client,
801 &settings, 742 &settings,
802 output_surface.get(), 743 output_surface.get(),
803 resource_provider.get()); 744 resource_provider.get());
804 745
805 gfx::Rect viewport_rect(1, 1); 746 gfx::Rect viewport_rect(1, 1);
806 RenderPass* root_pass = 747 RenderPass* root_pass =
807 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0), 748 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 0),
808 viewport_rect, gfx::Transform()); 749 viewport_rect, gfx::Transform());
809 root_pass->has_transparent_background = true; 750 root_pass->has_transparent_background = true;
(...skipping 14 matching lines...) Expand all
824 FakeOutputSurface::CreateOffscreen(std::move(context_owned))); 765 FakeOutputSurface::CreateOffscreen(std::move(context_owned)));
825 CHECK(output_surface->BindToClient(&output_surface_client)); 766 CHECK(output_surface->BindToClient(&output_surface_client));
826 767
827 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 768 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
828 new TestSharedBitmapManager()); 769 new TestSharedBitmapManager());
829 std::unique_ptr<ResourceProvider> resource_provider = 770 std::unique_ptr<ResourceProvider> resource_provider =
830 FakeResourceProvider::Create(output_surface.get(), 771 FakeResourceProvider::Create(output_surface.get(),
831 shared_bitmap_manager.get()); 772 shared_bitmap_manager.get());
832 773
833 RendererSettings settings; 774 RendererSettings settings;
834 FakeRendererClient renderer_client; 775 FakeDirectRendererClient renderer_client;
835 FakeRendererGL renderer(&renderer_client, 776 FakeRendererGL renderer(&renderer_client,
836 &settings, 777 &settings,
837 output_surface.get(), 778 output_surface.get(),
838 resource_provider.get()); 779 resource_provider.get());
839 780
840 gfx::Rect viewport_rect(1, 1); 781 gfx::Rect viewport_rect(1, 1);
841 AddRenderPass(&render_passes_in_draw_order_, 782 AddRenderPass(&render_passes_in_draw_order_,
842 RenderPassId(1, 0), 783 RenderPassId(1, 0),
843 viewport_rect, 784 viewport_rect,
844 gfx::Transform()); 785 gfx::Transform());
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
883 FakeOutputSurface::Create3d(std::move(context_owned))); 824 FakeOutputSurface::Create3d(std::move(context_owned)));
884 CHECK(output_surface->BindToClient(&output_surface_client)); 825 CHECK(output_surface->BindToClient(&output_surface_client));
885 826
886 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 827 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
887 new TestSharedBitmapManager()); 828 new TestSharedBitmapManager());
888 std::unique_ptr<ResourceProvider> resource_provider = 829 std::unique_ptr<ResourceProvider> resource_provider =
889 FakeResourceProvider::Create(output_surface.get(), 830 FakeResourceProvider::Create(output_surface.get(),
890 shared_bitmap_manager.get()); 831 shared_bitmap_manager.get());
891 832
892 RendererSettings settings; 833 RendererSettings settings;
893 FakeRendererClient renderer_client; 834 FakeDirectRendererClient renderer_client;
894 FakeRendererGL renderer(&renderer_client, 835 FakeRendererGL renderer(&renderer_client,
895 &settings, 836 &settings,
896 output_surface.get(), 837 output_surface.get(),
897 resource_provider.get()); 838 resource_provider.get());
898 839
899 // During initialization we are allowed to set any texture parameters. 840 // During initialization we are allowed to set any texture parameters.
900 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); 841 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber());
901 842
902 RenderPass* root_pass = 843 RenderPass* root_pass =
903 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 1), 844 AddRenderPass(&render_passes_in_draw_order_, RenderPassId(1, 1),
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
967 908
968 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 909 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
969 new TestSharedBitmapManager()); 910 new TestSharedBitmapManager());
970 std::unique_ptr<ResourceProvider> resource_provider = 911 std::unique_ptr<ResourceProvider> resource_provider =
971 FakeResourceProvider::Create(output_surface.get(), 912 FakeResourceProvider::Create(output_surface.get(),
972 shared_bitmap_manager.get()); 913 shared_bitmap_manager.get());
973 914
974 RendererSettings settings; 915 RendererSettings settings;
975 settings.should_clear_root_render_pass = false; 916 settings.should_clear_root_render_pass = false;
976 917
977 FakeRendererClient renderer_client; 918 FakeDirectRendererClient renderer_client;
978 FakeRendererGL renderer(&renderer_client, 919 FakeRendererGL renderer(&renderer_client,
979 &settings, 920 &settings,
980 output_surface.get(), 921 output_surface.get(),
981 resource_provider.get()); 922 resource_provider.get());
982 923
983 gfx::Rect viewport_rect(10, 10); 924 gfx::Rect viewport_rect(10, 10);
984 925
985 RenderPassId child_pass_id(2, 0); 926 RenderPassId child_pass_id(2, 0);
986 RenderPass* child_pass = 927 RenderPass* child_pass =
987 AddRenderPass(&render_passes_in_draw_order_, child_pass_id, viewport_rect, 928 AddRenderPass(&render_passes_in_draw_order_, child_pass_id, viewport_rect,
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
1052 TestContextProvider::Create(std::move(gl_owned)))); 993 TestContextProvider::Create(std::move(gl_owned))));
1053 CHECK(output_surface->BindToClient(&output_surface_client)); 994 CHECK(output_surface->BindToClient(&output_surface_client));
1054 995
1055 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 996 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1056 new TestSharedBitmapManager()); 997 new TestSharedBitmapManager());
1057 std::unique_ptr<ResourceProvider> resource_provider = 998 std::unique_ptr<ResourceProvider> resource_provider =
1058 FakeResourceProvider::Create(output_surface.get(), 999 FakeResourceProvider::Create(output_surface.get(),
1059 shared_bitmap_manager.get()); 1000 shared_bitmap_manager.get());
1060 1001
1061 RendererSettings settings; 1002 RendererSettings settings;
1062 FakeRendererClient renderer_client; 1003 FakeDirectRendererClient renderer_client;
1063 FakeRendererGL renderer(&renderer_client, 1004 FakeRendererGL renderer(&renderer_client,
1064 &settings, 1005 &settings,
1065 output_surface.get(), 1006 output_surface.get(),
1066 resource_provider.get()); 1007 resource_provider.get());
1067 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 1008 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
1068 1009
1069 gfx::Rect viewport_rect(1, 1); 1010 gfx::Rect viewport_rect(1, 1);
1070 1011
1071 gfx::Rect grand_child_rect(25, 25); 1012 gfx::Rect grand_child_rect(25, 25);
1072 RenderPassId grand_child_pass_id(3, 0); 1013 RenderPassId grand_child_pass_id(3, 0);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1143 output_surface->set_fixed_size(gfx::Size(100, 100)); 1084 output_surface->set_fixed_size(gfx::Size(100, 100));
1144 1085
1145 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1086 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1146 new TestSharedBitmapManager()); 1087 new TestSharedBitmapManager());
1147 std::unique_ptr<ResourceProvider> resource_provider = 1088 std::unique_ptr<ResourceProvider> resource_provider =
1148 FakeResourceProvider::Create(output_surface.get(), 1089 FakeResourceProvider::Create(output_surface.get(),
1149 shared_bitmap_manager.get()); 1090 shared_bitmap_manager.get());
1150 1091
1151 RendererSettings settings; 1092 RendererSettings settings;
1152 settings.partial_swap_enabled = true; 1093 settings.partial_swap_enabled = true;
1153 FakeRendererClient renderer_client; 1094 FakeDirectRendererClient renderer_client;
1154 FakeRendererGL renderer(&renderer_client, 1095 FakeRendererGL renderer(&renderer_client,
1155 &settings, 1096 &settings,
1156 output_surface.get(), 1097 output_surface.get(),
1157 resource_provider.get()); 1098 resource_provider.get());
1158 EXPECT_TRUE(renderer.Capabilities().using_partial_swap); 1099 EXPECT_TRUE(renderer.Capabilities().using_partial_swap);
1159 1100
1160 gfx::Rect viewport_rect(100, 100); 1101 gfx::Rect viewport_rect(100, 100);
1161 gfx::Rect clip_rect(100, 100); 1102 gfx::Rect clip_rect(100, 100);
1162 1103
1163 { 1104 {
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
1277 new NonReshapableOutputSurface(std::move(gl_owned))); 1218 new NonReshapableOutputSurface(std::move(gl_owned)));
1278 CHECK(output_surface->BindToClient(&output_surface_client)); 1219 CHECK(output_surface->BindToClient(&output_surface_client));
1279 1220
1280 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1221 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1281 new TestSharedBitmapManager()); 1222 new TestSharedBitmapManager());
1282 std::unique_ptr<ResourceProvider> resource_provider = 1223 std::unique_ptr<ResourceProvider> resource_provider =
1283 FakeResourceProvider::Create(output_surface.get(), 1224 FakeResourceProvider::Create(output_surface.get(),
1284 shared_bitmap_manager.get()); 1225 shared_bitmap_manager.get());
1285 1226
1286 RendererSettings settings; 1227 RendererSettings settings;
1287 FakeRendererClient renderer_client; 1228 FakeDirectRendererClient renderer_client;
1288 FakeRendererGL renderer(&renderer_client, 1229 FakeRendererGL renderer(&renderer_client,
1289 &settings, 1230 &settings,
1290 output_surface.get(), 1231 output_surface.get(),
1291 resource_provider.get()); 1232 resource_provider.get());
1292 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 1233 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
1293 1234
1294 gfx::Rect device_viewport_rect(10, 10, 100, 100); 1235 gfx::Rect device_viewport_rect(10, 10, 100, 100);
1295 gfx::Rect viewport_rect(device_viewport_rect.size()); 1236 gfx::Rect viewport_rect(device_viewport_rect.size());
1296 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20); 1237 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20);
1297 1238
(...skipping 18 matching lines...) Expand all
1316 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create())); 1257 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()));
1317 CHECK(output_surface->BindToClient(&output_surface_client)); 1258 CHECK(output_surface->BindToClient(&output_surface_client));
1318 1259
1319 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1260 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1320 new TestSharedBitmapManager()); 1261 new TestSharedBitmapManager());
1321 std::unique_ptr<ResourceProvider> resource_provider = 1262 std::unique_ptr<ResourceProvider> resource_provider =
1322 FakeResourceProvider::Create(output_surface.get(), 1263 FakeResourceProvider::Create(output_surface.get(),
1323 shared_bitmap_manager.get()); 1264 shared_bitmap_manager.get());
1324 1265
1325 RendererSettings settings; 1266 RendererSettings settings;
1326 FakeRendererClient renderer_client; 1267 FakeDirectRendererClient renderer_client;
1327 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(), 1268 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
1328 resource_provider.get()); 1269 resource_provider.get());
1329 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 1270 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
1330 1271
1331 gfx::Rect device_viewport_rect(0, 0, 100, 100); 1272 gfx::Rect device_viewport_rect(0, 0, 100, 100);
1332 gfx::Rect viewport_rect(device_viewport_rect.size()); 1273 gfx::Rect viewport_rect(device_viewport_rect.size());
1333 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20); 1274 gfx::Rect quad_rect = gfx::Rect(20, 20, 20, 20);
1334 1275
1335 RenderPassId root_pass_id(1, 0); 1276 RenderPassId root_pass_id(1, 0);
1336 RenderPass* root_pass = 1277 RenderPass* root_pass =
(...skipping 408 matching lines...) Expand 10 before | Expand all | Expand 10 after
1745 return static_cast<OutputSurfaceMockContext*>( 1686 return static_cast<OutputSurfaceMockContext*>(
1746 static_cast<TestContextProvider*>(output_surface_.context_provider()) 1687 static_cast<TestContextProvider*>(output_surface_.context_provider())
1747 ->TestContext3d()); 1688 ->TestContext3d());
1748 } 1689 }
1749 1690
1750 RendererSettings settings_; 1691 RendererSettings settings_;
1751 FakeOutputSurfaceClient output_surface_client_; 1692 FakeOutputSurfaceClient output_surface_client_;
1752 StrictMock<MockOutputSurface> output_surface_; 1693 StrictMock<MockOutputSurface> output_surface_;
1753 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 1694 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
1754 std::unique_ptr<ResourceProvider> resource_provider_; 1695 std::unique_ptr<ResourceProvider> resource_provider_;
1755 FakeRendererClient renderer_client_; 1696 FakeDirectRendererClient renderer_client_;
1756 std::unique_ptr<FakeRendererGL> renderer_; 1697 std::unique_ptr<FakeRendererGL> renderer_;
1757 }; 1698 };
1758 1699
1759 TEST_F(MockOutputSurfaceTest, DrawFrameAndSwap) { 1700 TEST_F(MockOutputSurfaceTest, DrawFrameAndSwap) {
1760 gfx::Rect device_viewport_rect(1, 1); 1701 gfx::Rect device_viewport_rect(1, 1);
1761 DrawFrame(1.f, device_viewport_rect, true); 1702 DrawFrame(1.f, device_viewport_rect, true);
1762 1703
1763 EXPECT_CALL(output_surface_, SwapBuffers_(_)).Times(1); 1704 EXPECT_CALL(output_surface_, SwapBuffers_(_)).Times(1);
1764 renderer_->SwapBuffers(CompositorFrameMetadata()); 1705 renderer_->SwapBuffers(CompositorFrameMetadata());
1765 } 1706 }
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
1849 1790
1850 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1791 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
1851 new TestSharedBitmapManager()); 1792 new TestSharedBitmapManager());
1852 std::unique_ptr<ResourceProvider> resource_provider = 1793 std::unique_ptr<ResourceProvider> resource_provider =
1853 FakeResourceProvider::Create(output_surface.get(), 1794 FakeResourceProvider::Create(output_surface.get(),
1854 shared_bitmap_manager.get()); 1795 shared_bitmap_manager.get());
1855 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( 1796 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter(
1856 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); 1797 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get()));
1857 1798
1858 RendererSettings settings; 1799 RendererSettings settings;
1859 FakeRendererClient renderer_client; 1800 FakeDirectRendererClient renderer_client;
1860 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(), 1801 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
1861 resource_provider.get(), mailbox_deleter.get()); 1802 resource_provider.get(), mailbox_deleter.get());
1862 1803
1863 TestOverlayProcessor* processor = 1804 TestOverlayProcessor* processor =
1864 new TestOverlayProcessor(output_surface.get()); 1805 new TestOverlayProcessor(output_surface.get());
1865 processor->Initialize(); 1806 processor->Initialize();
1866 renderer.SetOverlayProcessor(processor); 1807 renderer.SetOverlayProcessor(processor);
1867 std::unique_ptr<TestOverlayProcessor::Validator> validator( 1808 std::unique_ptr<TestOverlayProcessor::Validator> validator(
1868 new TestOverlayProcessor::Validator); 1809 new TestOverlayProcessor::Validator);
1869 output_surface->SetOverlayCandidateValidator(validator.get()); 1810 output_surface->SetOverlayCandidateValidator(validator.get());
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
2007 1948
2008 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager( 1949 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager(
2009 new TestSharedBitmapManager()); 1950 new TestSharedBitmapManager());
2010 std::unique_ptr<ResourceProvider> resource_provider = 1951 std::unique_ptr<ResourceProvider> resource_provider =
2011 FakeResourceProvider::Create(output_surface.get(), 1952 FakeResourceProvider::Create(output_surface.get(),
2012 shared_bitmap_manager.get()); 1953 shared_bitmap_manager.get());
2013 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter( 1954 std::unique_ptr<TextureMailboxDeleter> mailbox_deleter(
2014 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get())); 1955 new TextureMailboxDeleter(base::ThreadTaskRunnerHandle::Get()));
2015 1956
2016 RendererSettings settings; 1957 RendererSettings settings;
2017 FakeRendererClient renderer_client; 1958 FakeDirectRendererClient renderer_client;
2018 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(), 1959 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
2019 resource_provider.get(), mailbox_deleter.get()); 1960 resource_provider.get(), mailbox_deleter.get());
2020 1961
2021 SingleOverlayOnTopProcessor* processor = 1962 SingleOverlayOnTopProcessor* processor =
2022 new SingleOverlayOnTopProcessor(output_surface.get()); 1963 new SingleOverlayOnTopProcessor(output_surface.get());
2023 processor->Initialize(); 1964 processor->Initialize();
2024 renderer.SetOverlayProcessor(processor); 1965 renderer.SetOverlayProcessor(processor);
2025 1966
2026 gfx::Rect viewport_rect(1, 1); 1967 gfx::Rect viewport_rect(1, 1);
2027 RenderPass* root_pass = 1968 RenderPass* root_pass =
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
2085 FakeOutputSurfaceClient output_surface_client; 2026 FakeOutputSurfaceClient output_surface_client;
2086 std::unique_ptr<FakeOutputSurface> output_surface( 2027 std::unique_ptr<FakeOutputSurface> output_surface(
2087 FakeOutputSurface::Create3d(std::move(gl_owned))); 2028 FakeOutputSurface::Create3d(std::move(gl_owned)));
2088 CHECK(output_surface->BindToClient(&output_surface_client)); 2029 CHECK(output_surface->BindToClient(&output_surface_client));
2089 2030
2090 std::unique_ptr<ResourceProvider> resource_provider = 2031 std::unique_ptr<ResourceProvider> resource_provider =
2091 FakeResourceProvider::Create(output_surface.get(), nullptr); 2032 FakeResourceProvider::Create(output_surface.get(), nullptr);
2092 2033
2093 RendererSettings settings; 2034 RendererSettings settings;
2094 settings.partial_swap_enabled = partial_swap; 2035 settings.partial_swap_enabled = partial_swap;
2095 FakeRendererClient renderer_client; 2036 FakeDirectRendererClient renderer_client;
2096 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(), 2037 FakeRendererGL renderer(&renderer_client, &settings, output_surface.get(),
2097 resource_provider.get()); 2038 resource_provider.get());
2098 EXPECT_EQ(partial_swap, renderer.Capabilities().using_partial_swap); 2039 EXPECT_EQ(partial_swap, renderer.Capabilities().using_partial_swap);
2099 2040
2100 gfx::Rect viewport_rect(100, 100); 2041 gfx::Rect viewport_rect(100, 100);
2101 gfx::Rect clip_rect(100, 100); 2042 gfx::Rect clip_rect(100, 100);
2102 2043
2103 { 2044 {
2104 RenderPassId root_pass_id(1, 0); 2045 RenderPassId root_pass_id(1, 0);
2105 RenderPass* root_pass = 2046 RenderPass* root_pass =
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
2143 TEST_F(GLRendererPartialSwapTest, PartialSwap) { 2084 TEST_F(GLRendererPartialSwapTest, PartialSwap) {
2144 RunTest(true); 2085 RunTest(true);
2145 } 2086 }
2146 2087
2147 TEST_F(GLRendererPartialSwapTest, NoPartialSwap) { 2088 TEST_F(GLRendererPartialSwapTest, NoPartialSwap) {
2148 RunTest(false); 2089 RunTest(false);
2149 } 2090 }
2150 2091
2151 } // namespace 2092 } // namespace
2152 } // namespace cc 2093 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698