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

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

Issue 2374183006: Remove GLFrameData from CompositorFrame. (Closed)
Patch Set: Rebase. 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
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/output_surface.h » ('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 <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 1137 matching lines...) Expand 10 before | Expand all | Expand 10 after
1509 1510
1510 MOCK_METHOD0(EnsureBackbuffer, void()); 1511 MOCK_METHOD0(EnsureBackbuffer, void());
1511 MOCK_METHOD0(DiscardBackbuffer, void()); 1512 MOCK_METHOD0(DiscardBackbuffer, void());
1512 MOCK_METHOD4(Reshape, 1513 MOCK_METHOD4(Reshape,
1513 void(const gfx::Size& size, 1514 void(const gfx::Size& size,
1514 float scale_factor, 1515 float scale_factor,
1515 const gfx::ColorSpace& color_space, 1516 const gfx::ColorSpace& color_space,
1516 bool has_alpha)); 1517 bool has_alpha));
1517 MOCK_METHOD0(BindFramebuffer, void()); 1518 MOCK_METHOD0(BindFramebuffer, void());
1518 MOCK_METHOD0(GetFramebufferCopyTextureFormat, GLenum()); 1519 MOCK_METHOD0(GetFramebufferCopyTextureFormat, GLenum());
1519 MOCK_METHOD1(SwapBuffers_, void(CompositorFrame& frame)); // NOLINT 1520 MOCK_METHOD1(SwapBuffers_, void(OutputSurfaceFrame& frame)); // NOLINT
1520 void SwapBuffers(CompositorFrame frame) override { SwapBuffers_(frame); } 1521 void SwapBuffers(OutputSurfaceFrame frame) override { SwapBuffers_(frame); }
1521 MOCK_CONST_METHOD0(GetOverlayCandidateValidator, 1522 MOCK_CONST_METHOD0(GetOverlayCandidateValidator,
1522 OverlayCandidateValidator*()); 1523 OverlayCandidateValidator*());
1523 MOCK_CONST_METHOD0(IsDisplayedAsOverlayPlane, bool()); 1524 MOCK_CONST_METHOD0(IsDisplayedAsOverlayPlane, bool());
1524 MOCK_CONST_METHOD0(GetOverlayTextureId, unsigned()); 1525 MOCK_CONST_METHOD0(GetOverlayTextureId, unsigned());
1525 MOCK_CONST_METHOD0(SurfaceIsSuspendForRecycle, bool()); 1526 MOCK_CONST_METHOD0(SurfaceIsSuspendForRecycle, bool());
1526 MOCK_CONST_METHOD0(HasExternalStencilTest, bool()); 1527 MOCK_CONST_METHOD0(HasExternalStencilTest, bool());
1527 MOCK_METHOD0(ApplyExternalStencil, void()); 1528 MOCK_METHOD0(ApplyExternalStencil, void());
1528 }; 1529 };
1529 1530
1530 class MockOutputSurfaceTest : public GLRendererTest { 1531 class MockOutputSurfaceTest : public GLRendererTest {
1531 protected: 1532 protected:
1532 virtual void SetUp() { 1533 virtual void SetUp() {
1533 FakeOutputSurfaceClient output_surface_client_; 1534 FakeOutputSurfaceClient output_surface_client_;
1534 CHECK(output_surface_.BindToClient(&output_surface_client_)); 1535 CHECK(output_surface_.BindToClient(&output_surface_client_));
1535 1536
1536 shared_bitmap_manager_.reset(new TestSharedBitmapManager()); 1537 shared_bitmap_manager_.reset(new TestSharedBitmapManager());
1537 resource_provider_ = FakeResourceProvider::Create( 1538 resource_provider_ = FakeResourceProvider::Create(
1538 output_surface_.context_provider(), shared_bitmap_manager_.get()); 1539 output_surface_.context_provider(), shared_bitmap_manager_.get());
1539 1540
1540 renderer_.reset(new FakeRendererGL(&settings_, &output_surface_, 1541 renderer_.reset(new FakeRendererGL(&settings_, &output_surface_,
1541 resource_provider_.get())); 1542 resource_provider_.get()));
1542 EXPECT_CALL(output_surface_, GetOverlayCandidateValidator()).Times(1); 1543 EXPECT_CALL(output_surface_, GetOverlayCandidateValidator()).Times(1);
1543 renderer_->Initialize(); 1544 renderer_->Initialize();
1544 1545
1545 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1); 1546 EXPECT_CALL(output_surface_, EnsureBackbuffer()).Times(1);
1546 renderer_->SetVisible(true); 1547 renderer_->SetVisible(true);
1547 Mock::VerifyAndClearExpectations(&output_surface_); 1548 Mock::VerifyAndClearExpectations(&output_surface_);
1548 } 1549 }
1549 1550
1550 void SwapBuffers() { renderer_->SwapBuffers(CompositorFrameMetadata()); } 1551 void SwapBuffers() { renderer_->SwapBuffers(std::vector<ui::LatencyInfo>()); }
1551 1552
1552 void DrawFrame(float device_scale_factor, 1553 void DrawFrame(float device_scale_factor,
1553 const gfx::Rect& device_viewport_rect, 1554 const gfx::Rect& device_viewport_rect,
1554 bool transparent) { 1555 bool transparent) {
1555 RenderPassId render_pass_id(1, 0); 1556 RenderPassId render_pass_id(1, 0);
1556 RenderPass* render_pass = 1557 RenderPass* render_pass =
1557 AddRenderPass(&render_passes_in_draw_order_, render_pass_id, 1558 AddRenderPass(&render_passes_in_draw_order_, render_pass_id,
1558 device_viewport_rect, gfx::Transform()); 1559 device_viewport_rect, gfx::Transform());
1559 AddQuad(render_pass, device_viewport_rect, SK_ColorGREEN); 1560 AddQuad(render_pass, device_viewport_rect, SK_ColorGREEN);
1560 render_pass->has_transparent_background = transparent; 1561 render_pass->has_transparent_background = transparent;
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after
1994 renderer_->SetVisible(true); 1995 renderer_->SetVisible(true);
1995 Mock::VerifyAndClearExpectations(context_support_ptr_); 1996 Mock::VerifyAndClearExpectations(context_support_ptr_);
1996 1997
1997 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true)); 1998 EXPECT_CALL(*context_support_ptr_, SetAggressivelyFreeResources(true));
1998 renderer_->SetVisible(false); 1999 renderer_->SetVisible(false);
1999 Mock::VerifyAndClearExpectations(context_support_ptr_); 2000 Mock::VerifyAndClearExpectations(context_support_ptr_);
2000 } 2001 }
2001 2002
2002 } // namespace 2003 } // namespace
2003 } // namespace cc 2004 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/gl_renderer.cc ('k') | cc/output/output_surface.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698