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 <set> | 7 #include <set> |
8 | 8 |
9 #include "cc/base/math_util.h" | 9 #include "cc/base/math_util.h" |
10 #include "cc/output/compositor_frame_metadata.h" | 10 #include "cc/output/compositor_frame_metadata.h" |
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
172 using GLRenderer::IsBackbufferDiscarded; | 172 using GLRenderer::IsBackbufferDiscarded; |
173 using GLRenderer::DoDrawQuad; | 173 using GLRenderer::DoDrawQuad; |
174 using GLRenderer::BeginDrawingFrame; | 174 using GLRenderer::BeginDrawingFrame; |
175 using GLRenderer::FinishDrawingQuadList; | 175 using GLRenderer::FinishDrawingQuadList; |
176 using GLRenderer::stencil_enabled; | 176 using GLRenderer::stencil_enabled; |
177 }; | 177 }; |
178 | 178 |
179 class GLRendererWithDefaultHarnessTest : public GLRendererTest { | 179 class GLRendererWithDefaultHarnessTest : public GLRendererTest { |
180 protected: | 180 protected: |
181 GLRendererWithDefaultHarnessTest() { | 181 GLRendererWithDefaultHarnessTest() { |
182 output_surface_ = FakeOutputSurface::Create3d( | 182 output_surface_ = |
183 TestWebGraphicsContext3D::Create()).Pass(); | 183 FakeOutputSurface::Create3d(TestWebGraphicsContext3D::Create()).Pass(); |
184 CHECK(output_surface_->BindToClient(&output_surface_client_)); | 184 CHECK(output_surface_->BindToClient(&output_surface_client_)); |
185 | 185 |
186 resource_provider_ = ResourceProvider::Create( | 186 resource_provider_ = ResourceProvider::Create( |
187 output_surface_.get(), NULL, 0, false, 1).Pass(); | 187 output_surface_.get(), NULL, 0, false, 1).Pass(); |
188 renderer_ = make_scoped_ptr(new FakeRendererGL(&renderer_client_, | 188 renderer_ = make_scoped_ptr(new FakeRendererGL(&renderer_client_, |
189 &settings_, | 189 &settings_, |
190 output_surface_.get(), | 190 output_surface_.get(), |
191 resource_provider_.get())); | 191 resource_provider_.get())); |
192 } | 192 } |
193 | 193 |
(...skipping 544 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
738 Mock::VerifyAndClearExpectations(context); | 738 Mock::VerifyAndClearExpectations(context); |
739 } | 739 } |
740 | 740 |
741 class VisibilityChangeIsLastCallTrackingContext | 741 class VisibilityChangeIsLastCallTrackingContext |
742 : public TestWebGraphicsContext3D { | 742 : public TestWebGraphicsContext3D { |
743 public: | 743 public: |
744 VisibilityChangeIsLastCallTrackingContext() | 744 VisibilityChangeIsLastCallTrackingContext() |
745 : last_call_was_set_visibility_(false) {} | 745 : last_call_was_set_visibility_(false) {} |
746 | 746 |
747 // WebGraphicsContext3D methods. | 747 // WebGraphicsContext3D methods. |
748 virtual void flush() { | 748 virtual void flush() { last_call_was_set_visibility_ = false; } |
749 last_call_was_set_visibility_ = false; | 749 virtual void deleteTexture(WebGLId) { last_call_was_set_visibility_ = false; } |
750 } | |
751 virtual void deleteTexture(WebGLId) { | |
752 last_call_was_set_visibility_ = false; | |
753 } | |
754 virtual void deleteFramebuffer(WebGLId) { | 750 virtual void deleteFramebuffer(WebGLId) { |
755 last_call_was_set_visibility_ = false; | 751 last_call_was_set_visibility_ = false; |
756 } | 752 } |
757 virtual void deleteQueryEXT(WebGLId) { | 753 virtual void deleteQueryEXT(WebGLId) { |
758 last_call_was_set_visibility_ = false; | 754 last_call_was_set_visibility_ = false; |
759 } | 755 } |
760 virtual void deleteRenderbuffer(WebGLId) { | 756 virtual void deleteRenderbuffer(WebGLId) { |
761 last_call_was_set_visibility_ = false; | 757 last_call_was_set_visibility_ = false; |
762 } | 758 } |
763 | 759 |
(...skipping 16 matching lines...) Expand all Loading... |
780 VisibilityChangeIsLastCallTrackingContext* context = context_owned.get(); | 776 VisibilityChangeIsLastCallTrackingContext* context = context_owned.get(); |
781 | 777 |
782 scoped_refptr<TestContextProvider> provider = TestContextProvider::Create( | 778 scoped_refptr<TestContextProvider> provider = TestContextProvider::Create( |
783 context_owned.PassAs<TestWebGraphicsContext3D>()); | 779 context_owned.PassAs<TestWebGraphicsContext3D>()); |
784 | 780 |
785 provider->support()->SetSurfaceVisibleCallback(base::Bind( | 781 provider->support()->SetSurfaceVisibleCallback(base::Bind( |
786 &VisibilityChangeIsLastCallTrackingContext::set_last_call_was_visibility, | 782 &VisibilityChangeIsLastCallTrackingContext::set_last_call_was_visibility, |
787 base::Unretained(context))); | 783 base::Unretained(context))); |
788 | 784 |
789 FakeOutputSurfaceClient output_surface_client; | 785 FakeOutputSurfaceClient output_surface_client; |
790 scoped_ptr<OutputSurface> output_surface(FakeOutputSurface::Create3d( | 786 scoped_ptr<OutputSurface> output_surface( |
791 provider)); | 787 FakeOutputSurface::Create3d(provider)); |
792 CHECK(output_surface->BindToClient(&output_surface_client)); | 788 CHECK(output_surface->BindToClient(&output_surface_client)); |
793 | 789 |
794 scoped_ptr<ResourceProvider> resource_provider( | 790 scoped_ptr<ResourceProvider> resource_provider( |
795 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); | 791 ResourceProvider::Create(output_surface.get(), NULL, 0, false, 1)); |
796 | 792 |
797 LayerTreeSettings settings; | 793 LayerTreeSettings settings; |
798 FakeRendererClient renderer_client; | 794 FakeRendererClient renderer_client; |
799 FakeRendererGL renderer(&renderer_client, | 795 FakeRendererGL renderer(&renderer_client, |
800 &settings, | 796 &settings, |
801 output_surface.get(), | 797 output_surface.get(), |
(...skipping 890 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1692 viewport_rect, | 1688 viewport_rect, |
1693 viewport_rect, | 1689 viewport_rect, |
1694 true, | 1690 true, |
1695 false); | 1691 false); |
1696 | 1692 |
1697 TestSolidColorProgramAA(); | 1693 TestSolidColorProgramAA(); |
1698 } | 1694 } |
1699 | 1695 |
1700 class OutputSurfaceMockContext : public TestWebGraphicsContext3D { | 1696 class OutputSurfaceMockContext : public TestWebGraphicsContext3D { |
1701 public: | 1697 public: |
1702 OutputSurfaceMockContext() { | 1698 OutputSurfaceMockContext() { test_capabilities_.post_sub_buffer = true; } |
1703 test_capabilities_.post_sub_buffer = true; | |
1704 } | |
1705 | 1699 |
1706 // Specifically override methods even if they are unused (used in conjunction | 1700 // Specifically override methods even if they are unused (used in conjunction |
1707 // with StrictMock). We need to make sure that GLRenderer does not issue | 1701 // with StrictMock). We need to make sure that GLRenderer does not issue |
1708 // framebuffer-related GL calls directly. Instead these are supposed to go | 1702 // framebuffer-related GL calls directly. Instead these are supposed to go |
1709 // through the OutputSurface abstraction. | 1703 // through the OutputSurface abstraction. |
1710 MOCK_METHOD2(bindFramebuffer, void(WGC3Denum target, WebGLId framebuffer)); | 1704 MOCK_METHOD2(bindFramebuffer, void(WGC3Denum target, WebGLId framebuffer)); |
1711 MOCK_METHOD3(reshapeWithScaleFactor, | 1705 MOCK_METHOD3(reshapeWithScaleFactor, |
1712 void(int width, int height, float scale_factor)); | 1706 void(int width, int height, float scale_factor)); |
1713 MOCK_METHOD4(drawElements, | 1707 MOCK_METHOD4(drawElements, |
1714 void(WGC3Denum mode, | 1708 void(WGC3Denum mode, |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1775 NULL, | 1769 NULL, |
1776 device_scale_factor, | 1770 device_scale_factor, |
1777 device_viewport_rect, | 1771 device_viewport_rect, |
1778 device_viewport_rect, | 1772 device_viewport_rect, |
1779 true, | 1773 true, |
1780 false); | 1774 false); |
1781 } | 1775 } |
1782 | 1776 |
1783 OutputSurfaceMockContext* Context() { | 1777 OutputSurfaceMockContext* Context() { |
1784 return static_cast<OutputSurfaceMockContext*>( | 1778 return static_cast<OutputSurfaceMockContext*>( |
1785 output_surface_.context_provider()->Context3d()); | 1779 static_cast<TestContextProvider*>( |
| 1780 output_surface_.context_provider().get())->TestContext3d()); |
1786 } | 1781 } |
1787 | 1782 |
1788 LayerTreeSettings settings_; | 1783 LayerTreeSettings settings_; |
1789 FakeOutputSurfaceClient output_surface_client_; | 1784 FakeOutputSurfaceClient output_surface_client_; |
1790 StrictMock<MockOutputSurface> output_surface_; | 1785 StrictMock<MockOutputSurface> output_surface_; |
1791 scoped_ptr<ResourceProvider> resource_provider_; | 1786 scoped_ptr<ResourceProvider> resource_provider_; |
1792 FakeRendererClient renderer_client_; | 1787 FakeRendererClient renderer_client_; |
1793 scoped_ptr<FakeRendererGL> renderer_; | 1788 scoped_ptr<FakeRendererGL> renderer_; |
1794 }; | 1789 }; |
1795 | 1790 |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1895 base::MessageLoop::current()->Run(); | 1890 base::MessageLoop::current()->Run(); |
1896 | 1891 |
1897 // The sync point should have happened. | 1892 // The sync point should have happened. |
1898 EXPECT_EQ(1, sync_point_callback_count); | 1893 EXPECT_EQ(1, sync_point_callback_count); |
1899 EXPECT_EQ(1, other_callback_count); | 1894 EXPECT_EQ(1, other_callback_count); |
1900 } | 1895 } |
1901 #endif // OS_ANDROID | 1896 #endif // OS_ANDROID |
1902 | 1897 |
1903 } // namespace | 1898 } // namespace |
1904 } // namespace cc | 1899 } // namespace cc |
OLD | NEW |