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

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

Issue 202763002: Switch to use SharedBitmapManager all the time in cc_unittests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 9 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 | Annotate | Revision Log
« no previous file with comments | « cc/layers/ui_resource_layer_impl_unittest.cc ('k') | cc/output/software_renderer_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 <set> 7 #include <set>
8 8
9 #include "cc/base/math_util.h" 9 #include "cc/base/math_util.h"
10 #include "cc/output/compositor_frame_metadata.h" 10 #include "cc/output/compositor_frame_metadata.h"
11 #include "cc/resources/prioritized_resource_manager.h" 11 #include "cc/resources/prioritized_resource_manager.h"
12 #include "cc/resources/resource_provider.h" 12 #include "cc/resources/resource_provider.h"
13 #include "cc/test/fake_impl_proxy.h" 13 #include "cc/test/fake_impl_proxy.h"
14 #include "cc/test/fake_layer_tree_host_impl.h" 14 #include "cc/test/fake_layer_tree_host_impl.h"
15 #include "cc/test/fake_output_surface.h" 15 #include "cc/test/fake_output_surface.h"
16 #include "cc/test/fake_output_surface_client.h" 16 #include "cc/test/fake_output_surface_client.h"
17 #include "cc/test/mock_quad_culler.h" 17 #include "cc/test/mock_quad_culler.h"
18 #include "cc/test/pixel_test.h" 18 #include "cc/test/pixel_test.h"
19 #include "cc/test/render_pass_test_common.h" 19 #include "cc/test/render_pass_test_common.h"
20 #include "cc/test/render_pass_test_utils.h" 20 #include "cc/test/render_pass_test_utils.h"
21 #include "cc/test/test_shared_bitmap_manager.h"
21 #include "cc/test/test_web_graphics_context_3d.h" 22 #include "cc/test/test_web_graphics_context_3d.h"
22 #include "gpu/GLES2/gl2extchromium.h" 23 #include "gpu/GLES2/gl2extchromium.h"
23 #include "gpu/command_buffer/client/context_support.h" 24 #include "gpu/command_buffer/client/context_support.h"
24 #include "testing/gmock/include/gmock/gmock.h" 25 #include "testing/gmock/include/gmock/gmock.h"
25 #include "testing/gtest/include/gtest/gtest.h" 26 #include "testing/gtest/include/gtest/gtest.h"
26 #include "third_party/khronos/GLES2/gl2.h" 27 #include "third_party/khronos/GLES2/gl2.h"
27 #include "third_party/skia/include/core/SkImageFilter.h" 28 #include "third_party/skia/include/core/SkImageFilter.h"
28 #include "third_party/skia/include/core/SkMatrix.h" 29 #include "third_party/skia/include/core/SkMatrix.h"
29 #include "third_party/skia/include/effects/SkColorFilterImageFilter.h" 30 #include "third_party/skia/include/effects/SkColorFilterImageFilter.h"
30 #include "third_party/skia/include/effects/SkColorMatrixFilter.h" 31 #include "third_party/skia/include/effects/SkColorMatrixFilter.h"
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 using GLRenderer::stencil_enabled; 165 using GLRenderer::stencil_enabled;
165 }; 166 };
166 167
167 class GLRendererWithDefaultHarnessTest : public GLRendererTest { 168 class GLRendererWithDefaultHarnessTest : public GLRendererTest {
168 protected: 169 protected:
169 GLRendererWithDefaultHarnessTest() { 170 GLRendererWithDefaultHarnessTest() {
170 output_surface_ = 171 output_surface_ =
171 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()).Pass(); 172 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()).Pass();
172 CHECK(output_surface_->BindToClient(&output_surface_client_)); 173 CHECK(output_surface_->BindToClient(&output_surface_client_));
173 174
174 resource_provider_ = ResourceProvider::Create( 175 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
175 output_surface_.get(), NULL, 0, false, 1).Pass(); 176 resource_provider_ =
177 ResourceProvider::Create(
178 output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1)
179 .Pass();
176 renderer_ = make_scoped_ptr(new FakeRendererGL(&renderer_client_, 180 renderer_ = make_scoped_ptr(new FakeRendererGL(&renderer_client_,
177 &settings_, 181 &settings_,
178 output_surface_.get(), 182 output_surface_.get(),
179 resource_provider_.get())); 183 resource_provider_.get()));
180 } 184 }
181 185
182 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } 186 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); }
183 187
184 LayerTreeSettings settings_; 188 LayerTreeSettings settings_;
185 FakeOutputSurfaceClient output_surface_client_; 189 FakeOutputSurfaceClient output_surface_client_;
186 scoped_ptr<FakeOutputSurface> output_surface_; 190 scoped_ptr<FakeOutputSurface> output_surface_;
187 FakeRendererClient renderer_client_; 191 FakeRendererClient renderer_client_;
192 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_;
188 scoped_ptr<ResourceProvider> resource_provider_; 193 scoped_ptr<ResourceProvider> resource_provider_;
189 scoped_ptr<FakeRendererGL> renderer_; 194 scoped_ptr<FakeRendererGL> renderer_;
190 }; 195 };
191 196
192 // Closing the namespace here so that GLRendererShaderTest can take advantage 197 // Closing the namespace here so that GLRendererShaderTest can take advantage
193 // of the friend relationship with GLRenderer and all of the mock classes 198 // of the friend relationship with GLRenderer and all of the mock classes
194 // declared above it. 199 // declared above it.
195 } // namespace 200 } // namespace
196 201
197 class GLRendererShaderTest : public GLRendererTest { 202 class GLRendererShaderTest : public GLRendererTest {
198 protected: 203 protected:
199 GLRendererShaderTest() { 204 GLRendererShaderTest() {
200 output_surface_ = FakeOutputSurface::Create3d().Pass(); 205 output_surface_ = FakeOutputSurface::Create3d().Pass();
201 CHECK(output_surface_->BindToClient(&output_surface_client_)); 206 CHECK(output_surface_->BindToClient(&output_surface_client_));
202 207
203 resource_provider_ = ResourceProvider::Create( 208 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
204 output_surface_.get(), NULL, 0, false, 1).Pass(); 209 resource_provider_ =
210 ResourceProvider::Create(
211 output_surface_.get(), shared_bitmap_manager_.get(), 0, false, 1)
212 .Pass();
205 renderer_.reset(new FakeRendererGL(&renderer_client_, 213 renderer_.reset(new FakeRendererGL(&renderer_client_,
206 &settings_, 214 &settings_,
207 output_surface_.get(), 215 output_surface_.get(),
208 resource_provider_.get())); 216 resource_provider_.get()));
209 } 217 }
210 218
211 void TestRenderPassProgram(TexCoordPrecision precision) { 219 void TestRenderPassProgram(TexCoordPrecision precision) {
212 EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_[precision]); 220 EXPECT_PROGRAM_VALID(&renderer_->render_pass_program_[precision]);
213 EXPECT_EQ(renderer_->render_pass_program_[precision].program(), 221 EXPECT_EQ(renderer_->render_pass_program_[precision].program(),
214 renderer_->program_shadow_); 222 renderer_->program_shadow_);
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
266 void TestSolidColorProgramAA() { 274 void TestSolidColorProgramAA() {
267 EXPECT_PROGRAM_VALID(&renderer_->solid_color_program_aa_); 275 EXPECT_PROGRAM_VALID(&renderer_->solid_color_program_aa_);
268 EXPECT_EQ(renderer_->solid_color_program_aa_.program(), 276 EXPECT_EQ(renderer_->solid_color_program_aa_.program(),
269 renderer_->program_shadow_); 277 renderer_->program_shadow_);
270 } 278 }
271 279
272 LayerTreeSettings settings_; 280 LayerTreeSettings settings_;
273 FakeOutputSurfaceClient output_surface_client_; 281 FakeOutputSurfaceClient output_surface_client_;
274 scoped_ptr<FakeOutputSurface> output_surface_; 282 scoped_ptr<FakeOutputSurface> output_surface_;
275 FakeRendererClient renderer_client_; 283 FakeRendererClient renderer_client_;
284 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_;
276 scoped_ptr<ResourceProvider> resource_provider_; 285 scoped_ptr<ResourceProvider> resource_provider_;
277 scoped_ptr<FakeRendererGL> renderer_; 286 scoped_ptr<FakeRendererGL> renderer_;
278 }; 287 };
279 288
280 namespace { 289 namespace {
281 290
282 // Test GLRenderer DiscardBackbuffer functionality: 291 // Test GLRenderer DiscardBackbuffer functionality:
283 // Suggest discarding framebuffer when one exists and the renderer is not 292 // Suggest discarding framebuffer when one exists and the renderer is not
284 // visible. 293 // visible.
285 // Expected: it is discarded and damage tracker is reset. 294 // Expected: it is discarded and damage tracker is reset.
(...skipping 219 matching lines...) Expand 10 before | Expand all | Expand 10 after
505 ADD_FAILURE(); 514 ADD_FAILURE();
506 return 0; 515 return 0;
507 } 516 }
508 }; 517 };
509 TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) { 518 TEST_F(GLRendererTest, InitializationDoesNotMakeSynchronousCalls) {
510 FakeOutputSurfaceClient output_surface_client; 519 FakeOutputSurfaceClient output_surface_client;
511 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 520 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
512 scoped_ptr<TestWebGraphicsContext3D>(new ForbidSynchronousCallContext))); 521 scoped_ptr<TestWebGraphicsContext3D>(new ForbidSynchronousCallContext)));
513 CHECK(output_surface->BindToClient(&output_surface_client)); 522 CHECK(output_surface->BindToClient(&output_surface_client));
514 523
515 scoped_ptr<ResourceProvider> resource_provider( 524 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
516 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 525 new TestSharedBitmapManager());
526 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
527 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
517 528
518 LayerTreeSettings settings; 529 LayerTreeSettings settings;
519 FakeRendererClient renderer_client; 530 FakeRendererClient renderer_client;
520 FakeRendererGL renderer(&renderer_client, 531 FakeRendererGL renderer(&renderer_client,
521 &settings, 532 &settings,
522 output_surface.get(), 533 output_surface.get(),
523 resource_provider.get()); 534 resource_provider.get());
524 } 535 }
525 536
526 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D { 537 class LoseContextOnFirstGetContext : public TestWebGraphicsContext3D {
(...skipping 12 matching lines...) Expand all
539 *value = 0; 550 *value = 0;
540 } 551 }
541 }; 552 };
542 553
543 TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) { 554 TEST_F(GLRendererTest, InitializationWithQuicklyLostContextDoesNotAssert) {
544 FakeOutputSurfaceClient output_surface_client; 555 FakeOutputSurfaceClient output_surface_client;
545 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 556 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
546 scoped_ptr<TestWebGraphicsContext3D>(new LoseContextOnFirstGetContext))); 557 scoped_ptr<TestWebGraphicsContext3D>(new LoseContextOnFirstGetContext)));
547 CHECK(output_surface->BindToClient(&output_surface_client)); 558 CHECK(output_surface->BindToClient(&output_surface_client));
548 559
549 scoped_ptr<ResourceProvider> resource_provider( 560 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
550 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 561 new TestSharedBitmapManager());
562 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
563 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
551 564
552 LayerTreeSettings settings; 565 LayerTreeSettings settings;
553 FakeRendererClient renderer_client; 566 FakeRendererClient renderer_client;
554 FakeRendererGL renderer(&renderer_client, 567 FakeRendererGL renderer(&renderer_client,
555 &settings, 568 &settings,
556 output_surface.get(), 569 output_surface.get(),
557 resource_provider.get()); 570 resource_provider.get());
558 } 571 }
559 572
560 class ClearCountingContext : public TestWebGraphicsContext3D { 573 class ClearCountingContext : public TestWebGraphicsContext3D {
561 public: 574 public:
562 ClearCountingContext() { test_capabilities_.gpu.discard_framebuffer = true; } 575 ClearCountingContext() { test_capabilities_.gpu.discard_framebuffer = true; }
563 576
564 MOCK_METHOD3(discardFramebufferEXT, 577 MOCK_METHOD3(discardFramebufferEXT,
565 void(GLenum target, 578 void(GLenum target,
566 GLsizei numAttachments, 579 GLsizei numAttachments,
567 const GLenum* attachments)); 580 const GLenum* attachments));
568 MOCK_METHOD1(clear, void(GLbitfield mask)); 581 MOCK_METHOD1(clear, void(GLbitfield mask));
569 }; 582 };
570 583
571 TEST_F(GLRendererTest, OpaqueBackground) { 584 TEST_F(GLRendererTest, OpaqueBackground) {
572 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext); 585 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext);
573 ClearCountingContext* context = context_owned.get(); 586 ClearCountingContext* context = context_owned.get();
574 587
575 FakeOutputSurfaceClient output_surface_client; 588 FakeOutputSurfaceClient output_surface_client;
576 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 589 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
577 context_owned.PassAs<TestWebGraphicsContext3D>())); 590 context_owned.PassAs<TestWebGraphicsContext3D>()));
578 CHECK(output_surface->BindToClient(&output_surface_client)); 591 CHECK(output_surface->BindToClient(&output_surface_client));
579 592
580 scoped_ptr<ResourceProvider> resource_provider( 593 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
581 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 594 new TestSharedBitmapManager());
595 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
596 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
582 597
583 LayerTreeSettings settings; 598 LayerTreeSettings settings;
584 FakeRendererClient renderer_client; 599 FakeRendererClient renderer_client;
585 FakeRendererGL renderer(&renderer_client, 600 FakeRendererGL renderer(&renderer_client,
586 &settings, 601 &settings,
587 output_surface.get(), 602 output_surface.get(),
588 resource_provider.get()); 603 resource_provider.get());
589 604
590 gfx::Rect viewport_rect(1, 1); 605 gfx::Rect viewport_rect(1, 1);
591 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 606 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
(...skipping 23 matching lines...) Expand all
615 630
616 TEST_F(GLRendererTest, TransparentBackground) { 631 TEST_F(GLRendererTest, TransparentBackground) {
617 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext); 632 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext);
618 ClearCountingContext* context = context_owned.get(); 633 ClearCountingContext* context = context_owned.get();
619 634
620 FakeOutputSurfaceClient output_surface_client; 635 FakeOutputSurfaceClient output_surface_client;
621 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 636 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
622 context_owned.PassAs<TestWebGraphicsContext3D>())); 637 context_owned.PassAs<TestWebGraphicsContext3D>()));
623 CHECK(output_surface->BindToClient(&output_surface_client)); 638 CHECK(output_surface->BindToClient(&output_surface_client));
624 639
625 scoped_ptr<ResourceProvider> resource_provider( 640 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
626 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 641 new TestSharedBitmapManager());
642 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
643 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
627 644
628 LayerTreeSettings settings; 645 LayerTreeSettings settings;
629 FakeRendererClient renderer_client; 646 FakeRendererClient renderer_client;
630 FakeRendererGL renderer(&renderer_client, 647 FakeRendererGL renderer(&renderer_client,
631 &settings, 648 &settings,
632 output_surface.get(), 649 output_surface.get(),
633 resource_provider.get()); 650 resource_provider.get());
634 651
635 gfx::Rect viewport_rect(1, 1); 652 gfx::Rect viewport_rect(1, 1);
636 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_, 653 TestRenderPass* root_pass = AddRenderPass(&render_passes_in_draw_order_,
(...skipping 16 matching lines...) Expand all
653 670
654 TEST_F(GLRendererTest, OffscreenOutputSurface) { 671 TEST_F(GLRendererTest, OffscreenOutputSurface) {
655 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext); 672 scoped_ptr<ClearCountingContext> context_owned(new ClearCountingContext);
656 ClearCountingContext* context = context_owned.get(); 673 ClearCountingContext* context = context_owned.get();
657 674
658 FakeOutputSurfaceClient output_surface_client; 675 FakeOutputSurfaceClient output_surface_client;
659 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::CreateOffscreen( 676 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::CreateOffscreen(
660 context_owned.PassAs<TestWebGraphicsContext3D>())); 677 context_owned.PassAs<TestWebGraphicsContext3D>()));
661 CHECK(output_surface->BindToClient(&output_surface_client)); 678 CHECK(output_surface->BindToClient(&output_surface_client));
662 679
663 scoped_ptr<ResourceProvider> resource_provider( 680 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
664 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 681 new TestSharedBitmapManager());
682 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
683 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
665 684
666 LayerTreeSettings settings; 685 LayerTreeSettings settings;
667 FakeRendererClient renderer_client; 686 FakeRendererClient renderer_client;
668 FakeRendererGL renderer(&renderer_client, 687 FakeRendererGL renderer(&renderer_client,
669 &settings, 688 &settings,
670 output_surface.get(), 689 output_surface.get(),
671 resource_provider.get()); 690 resource_provider.get());
672 691
673 gfx::Rect viewport_rect(1, 1); 692 gfx::Rect viewport_rect(1, 1);
674 AddRenderPass(&render_passes_in_draw_order_, 693 AddRenderPass(&render_passes_in_draw_order_,
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
733 752
734 provider->support()->SetSurfaceVisibleCallback(base::Bind( 753 provider->support()->SetSurfaceVisibleCallback(base::Bind(
735 &VisibilityChangeIsLastCallTrackingContext::set_last_call_was_visibility, 754 &VisibilityChangeIsLastCallTrackingContext::set_last_call_was_visibility,
736 base::Unretained(context))); 755 base::Unretained(context)));
737 756
738 FakeOutputSurfaceClient output_surface_client; 757 FakeOutputSurfaceClient output_surface_client;
739 scoped_ptr<OutputSurface> output_surface( 758 scoped_ptr<OutputSurface> output_surface(
740 FakeOutputSurface::Create3d(provider)); 759 FakeOutputSurface::Create3d(provider));
741 CHECK(output_surface->BindToClient(&output_surface_client)); 760 CHECK(output_surface->BindToClient(&output_surface_client));
742 761
743 scoped_ptr<ResourceProvider> resource_provider( 762 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
744 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 763 new TestSharedBitmapManager());
764 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
765 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
745 766
746 LayerTreeSettings settings; 767 LayerTreeSettings settings;
747 FakeRendererClient renderer_client; 768 FakeRendererClient renderer_client;
748 FakeRendererGL renderer(&renderer_client, 769 FakeRendererGL renderer(&renderer_client,
749 &settings, 770 &settings,
750 output_surface.get(), 771 output_surface.get(),
751 resource_provider.get()); 772 resource_provider.get());
752 773
753 gfx::Rect viewport_rect(1, 1); 774 gfx::Rect viewport_rect(1, 1);
754 AddRenderPass(&render_passes_in_draw_order_, 775 AddRenderPass(&render_passes_in_draw_order_,
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
796 TEST_F(GLRendererTest, ActiveTextureState) { 817 TEST_F(GLRendererTest, ActiveTextureState) {
797 scoped_ptr<TextureStateTrackingContext> context_owned( 818 scoped_ptr<TextureStateTrackingContext> context_owned(
798 new TextureStateTrackingContext); 819 new TextureStateTrackingContext);
799 TextureStateTrackingContext* context = context_owned.get(); 820 TextureStateTrackingContext* context = context_owned.get();
800 821
801 FakeOutputSurfaceClient output_surface_client; 822 FakeOutputSurfaceClient output_surface_client;
802 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 823 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
803 context_owned.PassAs<TestWebGraphicsContext3D>())); 824 context_owned.PassAs<TestWebGraphicsContext3D>()));
804 CHECK(output_surface->BindToClient(&output_surface_client)); 825 CHECK(output_surface->BindToClient(&output_surface_client));
805 826
806 scoped_ptr<ResourceProvider> resource_provider( 827 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
807 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 828 new TestSharedBitmapManager());
829 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
830 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
808 831
809 LayerTreeSettings settings; 832 LayerTreeSettings settings;
810 FakeRendererClient renderer_client; 833 FakeRendererClient renderer_client;
811 FakeRendererGL renderer(&renderer_client, 834 FakeRendererGL renderer(&renderer_client,
812 &settings, 835 &settings,
813 output_surface.get(), 836 output_surface.get(),
814 resource_provider.get()); 837 resource_provider.get());
815 838
816 // During initialization we are allowed to set any texture parameters. 839 // During initialization we are allowed to set any texture parameters.
817 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber()); 840 EXPECT_CALL(*context, texParameteri(_, _, _)).Times(AnyNumber());
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
874 TEST_F(GLRendererTest, ShouldClearRootRenderPass) { 897 TEST_F(GLRendererTest, ShouldClearRootRenderPass) {
875 scoped_ptr<NoClearRootRenderPassMockContext> mock_context_owned( 898 scoped_ptr<NoClearRootRenderPassMockContext> mock_context_owned(
876 new NoClearRootRenderPassMockContext); 899 new NoClearRootRenderPassMockContext);
877 NoClearRootRenderPassMockContext* mock_context = mock_context_owned.get(); 900 NoClearRootRenderPassMockContext* mock_context = mock_context_owned.get();
878 901
879 FakeOutputSurfaceClient output_surface_client; 902 FakeOutputSurfaceClient output_surface_client;
880 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 903 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
881 mock_context_owned.PassAs<TestWebGraphicsContext3D>())); 904 mock_context_owned.PassAs<TestWebGraphicsContext3D>()));
882 CHECK(output_surface->BindToClient(&output_surface_client)); 905 CHECK(output_surface->BindToClient(&output_surface_client));
883 906
884 scoped_ptr<ResourceProvider> resource_provider( 907 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
885 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 908 new TestSharedBitmapManager());
909 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
910 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
886 911
887 LayerTreeSettings settings; 912 LayerTreeSettings settings;
888 settings.should_clear_root_render_pass = false; 913 settings.should_clear_root_render_pass = false;
889 914
890 FakeRendererClient renderer_client; 915 FakeRendererClient renderer_client;
891 FakeRendererGL renderer(&renderer_client, 916 FakeRendererGL renderer(&renderer_client,
892 &settings, 917 &settings,
893 output_surface.get(), 918 output_surface.get(),
894 resource_provider.get()); 919 resource_provider.get());
895 920
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
965 990
966 TEST_F(GLRendererTest, ScissorTestWhenClearing) { 991 TEST_F(GLRendererTest, ScissorTestWhenClearing) {
967 scoped_ptr<ScissorTestOnClearCheckingContext> context_owned( 992 scoped_ptr<ScissorTestOnClearCheckingContext> context_owned(
968 new ScissorTestOnClearCheckingContext); 993 new ScissorTestOnClearCheckingContext);
969 994
970 FakeOutputSurfaceClient output_surface_client; 995 FakeOutputSurfaceClient output_surface_client;
971 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( 996 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d(
972 context_owned.PassAs<TestWebGraphicsContext3D>())); 997 context_owned.PassAs<TestWebGraphicsContext3D>()));
973 CHECK(output_surface->BindToClient(&output_surface_client)); 998 CHECK(output_surface->BindToClient(&output_surface_client));
974 999
975 scoped_ptr<ResourceProvider> resource_provider( 1000 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
976 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 1001 new TestSharedBitmapManager());
1002 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
1003 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
977 1004
978 LayerTreeSettings settings; 1005 LayerTreeSettings settings;
979 FakeRendererClient renderer_client; 1006 FakeRendererClient renderer_client;
980 FakeRendererGL renderer(&renderer_client, 1007 FakeRendererGL renderer(&renderer_client,
981 &settings, 1008 &settings,
982 output_surface.get(), 1009 output_surface.get(),
983 resource_provider.get()); 1010 resource_provider.get());
984 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 1011 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
985 1012
986 gfx::Rect viewport_rect(1, 1); 1013 gfx::Rect viewport_rect(1, 1);
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
1057 scoped_ptr<DiscardCheckingContext> context_owned(new DiscardCheckingContext); 1084 scoped_ptr<DiscardCheckingContext> context_owned(new DiscardCheckingContext);
1058 DiscardCheckingContext* context = context_owned.get(); 1085 DiscardCheckingContext* context = context_owned.get();
1059 1086
1060 FakeOutputSurfaceClient output_surface_client; 1087 FakeOutputSurfaceClient output_surface_client;
1061 scoped_ptr<NonReshapableOutputSurface> output_surface( 1088 scoped_ptr<NonReshapableOutputSurface> output_surface(
1062 new NonReshapableOutputSurface( 1089 new NonReshapableOutputSurface(
1063 context_owned.PassAs<TestWebGraphicsContext3D>())); 1090 context_owned.PassAs<TestWebGraphicsContext3D>()));
1064 CHECK(output_surface->BindToClient(&output_surface_client)); 1091 CHECK(output_surface->BindToClient(&output_surface_client));
1065 output_surface->set_fixed_size(gfx::Size(100, 100)); 1092 output_surface->set_fixed_size(gfx::Size(100, 100));
1066 1093
1067 scoped_ptr<ResourceProvider> resource_provider( 1094 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
1068 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 1095 new TestSharedBitmapManager());
1096 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
1097 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
1069 1098
1070 LayerTreeSettings settings; 1099 LayerTreeSettings settings;
1071 settings.partial_swap_enabled = true; 1100 settings.partial_swap_enabled = true;
1072 FakeRendererClient renderer_client; 1101 FakeRendererClient renderer_client;
1073 FakeRendererGL renderer(&renderer_client, 1102 FakeRendererGL renderer(&renderer_client,
1074 &settings, 1103 &settings,
1075 output_surface.get(), 1104 output_surface.get(),
1076 resource_provider.get()); 1105 resource_provider.get());
1077 EXPECT_TRUE(renderer.Capabilities().using_partial_swap); 1106 EXPECT_TRUE(renderer.Capabilities().using_partial_swap);
1078 1107
(...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after
1246 // glScissor's Y coordinate is flipped correctly in this environment, and that 1275 // glScissor's Y coordinate is flipped correctly in this environment, and that
1247 // the glViewport can be at a nonzero origin within the surface. 1276 // the glViewport can be at a nonzero origin within the surface.
1248 scoped_ptr<FlippedScissorAndViewportContext> context_owned( 1277 scoped_ptr<FlippedScissorAndViewportContext> context_owned(
1249 new FlippedScissorAndViewportContext); 1278 new FlippedScissorAndViewportContext);
1250 1279
1251 FakeOutputSurfaceClient output_surface_client; 1280 FakeOutputSurfaceClient output_surface_client;
1252 scoped_ptr<OutputSurface> output_surface(new NonReshapableOutputSurface( 1281 scoped_ptr<OutputSurface> output_surface(new NonReshapableOutputSurface(
1253 context_owned.PassAs<TestWebGraphicsContext3D>())); 1282 context_owned.PassAs<TestWebGraphicsContext3D>()));
1254 CHECK(output_surface->BindToClient(&output_surface_client)); 1283 CHECK(output_surface->BindToClient(&output_surface_client));
1255 1284
1256 scoped_ptr<ResourceProvider> resource_provider( 1285 scoped_ptr<SharedBitmapManager> shared_bitmap_manager(
1257 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); 1286 new TestSharedBitmapManager());
1287 scoped_ptr<ResourceProvider> resource_provider(ResourceProvider::Create(
1288 output_surface.get(), shared_bitmap_manager.get(), 0, false, 1));
1258 1289
1259 LayerTreeSettings settings; 1290 LayerTreeSettings settings;
1260 FakeRendererClient renderer_client; 1291 FakeRendererClient renderer_client;
1261 FakeRendererGL renderer(&renderer_client, 1292 FakeRendererGL renderer(&renderer_client,
1262 &settings, 1293 &settings,
1263 output_surface.get(), 1294 output_surface.get(),
1264 resource_provider.get()); 1295 resource_provider.get());
1265 EXPECT_FALSE(renderer.Capabilities().using_partial_swap); 1296 EXPECT_FALSE(renderer.Capabilities().using_partial_swap);
1266 1297
1267 gfx::Rect device_viewport_rect(10, 10, 100, 100); 1298 gfx::Rect device_viewport_rect(10, 10, 100, 100);
(...skipping 362 matching lines...) Expand 10 before | Expand all | Expand 10 after
1630 MOCK_METHOD0(BindFramebuffer, void()); 1661 MOCK_METHOD0(BindFramebuffer, void());
1631 MOCK_METHOD1(SwapBuffers, void(CompositorFrame* frame)); 1662 MOCK_METHOD1(SwapBuffers, void(CompositorFrame* frame));
1632 }; 1663 };
1633 1664
1634 class MockOutputSurfaceTest : public GLRendererTest { 1665 class MockOutputSurfaceTest : public GLRendererTest {
1635 protected: 1666 protected:
1636 virtual void SetUp() { 1667 virtual void SetUp() {
1637 FakeOutputSurfaceClient output_surface_client_; 1668 FakeOutputSurfaceClient output_surface_client_;
1638 CHECK(output_surface_.BindToClient(&output_surface_client_)); 1669 CHECK(output_surface_.BindToClient(&output_surface_client_));
1639 1670
1671 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
1640 resource_provider_ = 1672 resource_provider_ =
1641 ResourceProvider::Create(&output_surface_, NULL, 0, false, 1).Pass(); 1673 ResourceProvider::Create(
1674 &output_surface_, shared_bitmap_manager_.get(), 0, false, 1).Pass();
1642 1675
1643 renderer_.reset(new FakeRendererGL(&renderer_client_, 1676 renderer_.reset(new FakeRendererGL(&renderer_client_,
1644 &settings_, 1677 &settings_,
1645 &output_surface_, 1678 &output_surface_,
1646 resource_provider_.get())); 1679 resource_provider_.get()));
1647 } 1680 }
1648 1681
1649 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } 1682 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); }
1650 1683
1651 void DrawFrame(float device_scale_factor, 1684 void DrawFrame(float device_scale_factor,
(...skipping 27 matching lines...) Expand all
1679 1712
1680 OutputSurfaceMockContext* Context() { 1713 OutputSurfaceMockContext* Context() {
1681 return static_cast<OutputSurfaceMockContext*>( 1714 return static_cast<OutputSurfaceMockContext*>(
1682 static_cast<TestContextProvider*>( 1715 static_cast<TestContextProvider*>(
1683 output_surface_.context_provider().get())->TestContext3d()); 1716 output_surface_.context_provider().get())->TestContext3d());
1684 } 1717 }
1685 1718
1686 LayerTreeSettings settings_; 1719 LayerTreeSettings settings_;
1687 FakeOutputSurfaceClient output_surface_client_; 1720 FakeOutputSurfaceClient output_surface_client_;
1688 StrictMock<MockOutputSurface> output_surface_; 1721 StrictMock<MockOutputSurface> output_surface_;
1722 scoped_ptr<SharedBitmapManager> shared_bitmap_manager_;
1689 scoped_ptr<ResourceProvider> resource_provider_; 1723 scoped_ptr<ResourceProvider> resource_provider_;
1690 FakeRendererClient renderer_client_; 1724 FakeRendererClient renderer_client_;
1691 scoped_ptr<FakeRendererGL> renderer_; 1725 scoped_ptr<FakeRendererGL> renderer_;
1692 }; 1726 };
1693 1727
1694 TEST_F(MockOutputSurfaceTest, DrawFrameAndSwap) { 1728 TEST_F(MockOutputSurfaceTest, DrawFrameAndSwap) {
1695 gfx::Rect device_viewport_rect(1, 1); 1729 gfx::Rect device_viewport_rect(1, 1);
1696 DrawFrame(1.f, device_viewport_rect); 1730 DrawFrame(1.f, device_viewport_rect);
1697 1731
1698 EXPECT_CALL(output_surface_, SwapBuffers(_)).Times(1); 1732 EXPECT_CALL(output_surface_, SwapBuffers(_)).Times(1);
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
1793 base::MessageLoop::current()->Run(); 1827 base::MessageLoop::current()->Run();
1794 1828
1795 // The sync point should have happened. 1829 // The sync point should have happened.
1796 EXPECT_EQ(1, sync_point_callback_count); 1830 EXPECT_EQ(1, sync_point_callback_count);
1797 EXPECT_EQ(1, other_callback_count); 1831 EXPECT_EQ(1, other_callback_count);
1798 } 1832 }
1799 #endif // OS_ANDROID 1833 #endif // OS_ANDROID
1800 1834
1801 } // namespace 1835 } // namespace
1802 } // namespace cc 1836 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/ui_resource_layer_impl_unittest.cc ('k') | cc/output/software_renderer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698