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

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

Issue 2323583002: cc: Remove DelegatingRenderer. (Closed)
Patch Set: Created 4 years, 3 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/delegating_renderer.cc ('k') | cc/trees/layer_tree_host_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "cc/output/delegating_renderer.h"
6
7 #include <stdint.h>
8
9 #include "cc/test/fake_output_surface.h"
10 #include "cc/test/layer_tree_test.h"
11 #include "cc/test/render_pass_test_utils.h"
12 #include "testing/gtest/include/gtest/gtest.h"
13
14 namespace cc {
15
16 class DelegatingRendererTest : public LayerTreeTest {};
17
18 class DelegatingRendererTestDraw : public DelegatingRendererTest {
19 public:
20 void BeginTest() override {
21 layer_tree()->SetPageScaleFactorAndLimits(1.f, 0.5f, 4.f);
22 PostSetNeedsCommitToMainThread();
23 }
24
25 void AfterTest() override {}
26
27 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
28 LayerTreeHostImpl::FrameData* frame_data,
29 DrawResult draw_result) override {
30 EXPECT_EQ(DRAW_SUCCESS, draw_result);
31 EXPECT_EQ(0, num_swaps_);
32 drawn_viewport_ = host_impl->DeviceViewport();
33 return draw_result;
34 }
35
36 void DisplayReceivedCompositorFrameOnThread(
37 const CompositorFrame& frame) override {
38 EXPECT_EQ(1, ++num_swaps_);
39
40 DelegatedFrameData* last_frame_data = frame.delegated_frame_data.get();
41 ASSERT_TRUE(frame.delegated_frame_data);
42 EXPECT_FALSE(frame.gl_frame_data);
43 EXPECT_EQ(drawn_viewport_,
44 last_frame_data->render_pass_list.back()->output_rect);
45 EXPECT_EQ(0.5f, frame.metadata.min_page_scale_factor);
46 EXPECT_EQ(4.f, frame.metadata.max_page_scale_factor);
47
48 EXPECT_EQ(0u, frame.delegated_frame_data->resource_list.size());
49 EXPECT_EQ(1u, frame.delegated_frame_data->render_pass_list.size());
50
51 EndTest();
52 }
53
54 int num_swaps_ = 0;
55 gfx::Rect drawn_viewport_;
56 };
57
58 SINGLE_AND_MULTI_THREAD_TEST_F(DelegatingRendererTestDraw);
59
60 class DelegatingRendererTestResources : public DelegatingRendererTest {
61 public:
62 void BeginTest() override { PostSetNeedsCommitToMainThread(); }
63
64 void AfterTest() override {}
65
66 DrawResult PrepareToDrawOnThread(LayerTreeHostImpl* host_impl,
67 LayerTreeHostImpl::FrameData* frame,
68 DrawResult draw_result) override {
69 frame->render_passes.clear();
70
71 RenderPass* child_pass =
72 AddRenderPass(&frame->render_passes, RenderPassId(2, 1),
73 gfx::Rect(3, 3, 10, 10), gfx::Transform());
74 gpu::SyncToken mailbox_sync_token;
75 AddOneOfEveryQuadType(child_pass, host_impl->resource_provider(),
76 RenderPassId(0, 0), &mailbox_sync_token);
77
78 RenderPass* pass = AddRenderPass(&frame->render_passes, RenderPassId(1, 1),
79 gfx::Rect(3, 3, 10, 10), gfx::Transform());
80 AddOneOfEveryQuadType(pass, host_impl->resource_provider(), child_pass->id,
81 &mailbox_sync_token);
82 return draw_result;
83 }
84
85 void DisplayReceivedCompositorFrameOnThread(
86 const CompositorFrame& frame) override {
87 ASSERT_TRUE(frame.delegated_frame_data);
88
89 EXPECT_EQ(2u, frame.delegated_frame_data->render_pass_list.size());
90 // Each render pass has 10 resources in it. And the root render pass has a
91 // mask resource used when drawing the child render pass, as well as its
92 // replica (it's added twice). The number 10 may change if
93 // AppendOneOfEveryQuadType() is updated, and the value here should be
94 // updated accordingly.
95 EXPECT_EQ(22u, frame.delegated_frame_data->resource_list.size());
96
97 EndTest();
98 }
99 };
100
101 SINGLE_AND_MULTI_THREAD_TEST_F(DelegatingRendererTestResources);
102
103 } // namespace cc
OLDNEW
« no previous file with comments | « cc/output/delegating_renderer.cc ('k') | cc/trees/layer_tree_host_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698