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

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

Issue 2374183006: Remove GLFrameData from CompositorFrame. (Closed)
Patch Set: Address comments. Created 4 years, 2 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 #include <vector>
10 11
11 #include "base/location.h" 12 #include "base/location.h"
12 #include "base/memory/ptr_util.h" 13 #include "base/memory/ptr_util.h"
13 #include "base/threading/thread_task_runner_handle.h" 14 #include "base/threading/thread_task_runner_handle.h"
14 #include "cc/base/math_util.h" 15 #include "cc/base/math_util.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_resource_provider.h" 27 #include "cc/test/fake_resource_provider.h"
28 #include "cc/test/pixel_test.h" 28 #include "cc/test/pixel_test.h"
29 #include "cc/test/render_pass_test_utils.h" 29 #include "cc/test/render_pass_test_utils.h"
30 #include "cc/test/test_gles2_interface.h" 30 #include "cc/test/test_gles2_interface.h"
31 #include "cc/test/test_shared_bitmap_manager.h" 31 #include "cc/test/test_shared_bitmap_manager.h"
32 #include "cc/test/test_web_graphics_context_3d.h" 32 #include "cc/test/test_web_graphics_context_3d.h"
33 #include "gpu/GLES2/gl2extchromium.h" 33 #include "gpu/GLES2/gl2extchromium.h"
34 #include "gpu/command_buffer/client/context_support.h" 34 #include "gpu/command_buffer/client/context_support.h"
35 #include "testing/gmock/include/gmock/gmock.h" 35 #include "testing/gmock/include/gmock/gmock.h"
36 #include "testing/gtest/include/gtest/gtest.h" 36 #include "testing/gtest/include/gtest/gtest.h"
37 #include "third_party/skia/include/core/SkImageFilter.h" 37 #include "third_party/skia/include/core/SkImageFilter.h"
38 #include "third_party/skia/include/core/SkMatrix.h" 38 #include "third_party/skia/include/core/SkMatrix.h"
39 #include "third_party/skia/include/effects/SkColorFilterImageFilter.h" 39 #include "third_party/skia/include/effects/SkColorFilterImageFilter.h"
40 #include "third_party/skia/include/effects/SkColorMatrixFilter.h" 40 #include "third_party/skia/include/effects/SkColorMatrixFilter.h"
41 #include "ui/events/latency_info.h"
41 #include "ui/gfx/transform.h" 42 #include "ui/gfx/transform.h"
42 43
43 using testing::_; 44 using testing::_;
44 using testing::AnyNumber; 45 using testing::AnyNumber;
45 using testing::Args; 46 using testing::Args;
46 using testing::AtLeast; 47 using testing::AtLeast;
47 using testing::ElementsAre; 48 using testing::ElementsAre;
48 using testing::Expectation; 49 using testing::Expectation;
49 using testing::InSequence; 50 using testing::InSequence;
50 using testing::Mock; 51 using testing::Mock;
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after
351 352
352 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 353 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
353 resource_provider_ = FakeResourceProvider::Create( 354 resource_provider_ = FakeResourceProvider::Create(
354 output_surface_->context_provider(), shared_bitmap_manager_.get()); 355 output_surface_->context_provider(), shared_bitmap_manager_.get());
355 renderer_ = base::MakeUnique<FakeRendererGL>( 356 renderer_ = base::MakeUnique<FakeRendererGL>(
356 &settings_, output_surface_.get(), resource_provider_.get()); 357 &settings_, output_surface_.get(), resource_provider_.get());
357 renderer_->Initialize(); 358 renderer_->Initialize();
358 renderer_->SetVisible(true); 359 renderer_->SetVisible(true);
359 } 360 }
360 361
361 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } 362 void SwapBuffers() { renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); }
362 363
363 RendererSettings settings_; 364 RendererSettings settings_;
364 FakeOutputSurfaceClient output_surface_client_; 365 FakeOutputSurfaceClient output_surface_client_;
365 std::unique_ptr<FakeOutputSurface> output_surface_; 366 std::unique_ptr<FakeOutputSurface> output_surface_;
366 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_; 367 std::unique_ptr<SharedBitmapManager> shared_bitmap_manager_;
367 std::unique_ptr<ResourceProvider> resource_provider_; 368 std::unique_ptr<ResourceProvider> resource_provider_;
368 std::unique_ptr<FakeRendererGL> renderer_; 369 std::unique_ptr<FakeRendererGL> renderer_;
369 }; 370 };
370 371
371 // Closing the namespace here so that GLRendererShaderTest can take advantage 372 // Closing the namespace here so that GLRendererShaderTest can take advantage
(...skipping 1228 matching lines...) Expand 10 before | Expand all | Expand 10 after
1600 1601
1601 MOCK_METHOD0(EnsureBackbuffer, void()); 1602 MOCK_METHOD0(EnsureBackbuffer, void());
1602 MOCK_METHOD0(DiscardBackbuffer, void()); 1603 MOCK_METHOD0(DiscardBackbuffer, void());
1603 MOCK_METHOD4(Reshape, 1604 MOCK_METHOD4(Reshape,
1604 void(const gfx::Size& size, 1605 void(const gfx::Size& size,
1605 float scale_factor, 1606 float scale_factor,
1606 const gfx::ColorSpace& color_space, 1607 const gfx::ColorSpace& color_space,
1607 bool has_alpha)); 1608 bool has_alpha));
1608 MOCK_METHOD0(BindFramebuffer, void()); 1609 MOCK_METHOD0(BindFramebuffer, void());
1609 MOCK_METHOD0(GetFramebufferCopyTextureFormat, GLenum()); 1610 MOCK_METHOD0(GetFramebufferCopyTextureFormat, GLenum());
1610 MOCK_METHOD1(SwapBuffers_, void(CompositorFrame& frame)); // NOLINT 1611 MOCK_METHOD1(SwapBuffers_, void(OutputSurfaceFrame& frame)); // NOLINT
1611 void SwapBuffers(CompositorFrame frame) override { SwapBuffers_(frame); } 1612 void SwapBuffers(OutputSurfaceFrame frame) override { SwapBuffers_(frame); }
1612 MOCK_CONST_METHOD0(GetOverlayCandidateValidator, 1613 MOCK_CONST_METHOD0(GetOverlayCandidateValidator,
1613 OverlayCandidateValidator*()); 1614 OverlayCandidateValidator*());
1614 MOCK_CONST_METHOD0(IsDisplayedAsOverlayPlane, bool()); 1615 MOCK_CONST_METHOD0(IsDisplayedAsOverlayPlane, bool());
1615 MOCK_CONST_METHOD0(GetOverlayTextureId, unsigned()); 1616 MOCK_CONST_METHOD0(GetOverlayTextureId, unsigned());
1616 MOCK_CONST_METHOD0(SurfaceIsSuspendForRecycle, bool()); 1617 MOCK_CONST_METHOD0(SurfaceIsSuspendForRecycle, bool());
1617 MOCK_CONST_METHOD0(HasExternalStencilTest, bool()); 1618 MOCK_CONST_METHOD0(HasExternalStencilTest, bool());
1618 MOCK_METHOD0(ApplyExternalStencil, void()); 1619 MOCK_METHOD0(ApplyExternalStencil, void());
1619 }; 1620 };
1620 1621
1621 class MockOutputSurfaceTest : public GLRendererTest { 1622 class MockOutputSurfaceTest : public GLRendererTest {
1622 protected: 1623 protected:
1623 virtual void SetUp() { 1624 virtual void SetUp() {
1624 FakeOutputSurfaceClient output_surface_client_; 1625 FakeOutputSurfaceClient output_surface_client_;
1625 CHECK(output_surface_.BindToClient(&output_surface_client_)); 1626 CHECK(output_surface_.BindToClient(&output_surface_client_));
1626 1627
1627 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 1628 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
1628 resource_provider_ = FakeResourceProvider::Create( 1629 resource_provider_ = FakeResourceProvider::Create(
1629 output_surface_.context_provider(), shared_bitmap_manager_.get()); 1630 output_surface_.context_provider(), shared_bitmap_manager_.get());
1630 1631
1631 renderer_.reset(new FakeRendererGL(&settings_, &output_surface_, 1632 renderer_.reset(new FakeRendererGL(&settings_, &output_surface_,
1632 resource_provider_.get())); 1633 resource_provider_.get()));
1633 EXPECT_CALL(output_surface_, GetOverlayCandidateValidator()).Times(1); 1634 EXPECT_CALL(output_surface_, GetOverlayCandidateValidator()).Times(1);
1634 renderer_->Initialize(); 1635 renderer_->Initialize();
1635 1636
1636 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1); 1637 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1);
1637 renderer_->SetVisible(true); 1638 renderer_->SetVisible(true);
1638 Mock::VerifyAndClearExpectations(&output_surface_); 1639 Mock::VerifyAndClearExpectations(&output_surface_);
1639 } 1640 }
1640 1641
1641 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } 1642 void SwapBuffers() { renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); }
1642 1643
1643 void DrawFrame(float device_scale_factor, 1644 void DrawFrame(float device_scale_factor,
1644 const gfx::Rect& device_viewport_rect, 1645 const gfx::Rect& device_viewport_rect,
1645 bool transparent) { 1646 bool transparent) {
1646 RenderPassId render_pass_id(1, 0); 1647 RenderPassId render_pass_id(1, 0);
1647 RenderPass* render_pass = 1648 RenderPass* render_pass =
1648 AddRenderPass(&render_passes_in_draw_order_, render_pass_id, 1649 AddRenderPass(&render_passes_in_draw_order_, render_pass_id,
1649 device_viewport_rect, gfx::Transform()); 1650 device_viewport_rect, gfx::Transform());
1650 AddQuad(render_pass, device_viewport_rect, SK_ColorGREEN); 1651 AddQuad(render_pass, device_viewport_rect, SK_ColorGREEN);
1651 render_pass->has_transparent_background = transparent; 1652 render_pass->has_transparent_background = transparent;
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
2085 renderer_->SetVisible(true); 2086 renderer_->SetVisible(true);
2086 Mock::VerifyAndClearExpectations(context_support_ptr_); 2087 Mock::VerifyAndClearExpectations(context_support_ptr_);
2087 2088
2088 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); 2089 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true));
2089 renderer_->SetVisible(false); 2090 renderer_->SetVisible(false);
2090 Mock::VerifyAndClearExpectations(context_support_ptr_); 2091 Mock::VerifyAndClearExpectations(context_support_ptr_);
2091 } 2092 }
2092 2093
2093 } // namespace 2094 } // namespace
2094 } // namespace cc 2095 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698