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

Side by Side Diff: cc/layers/ui_resource_layer_impl_unittest.cc

Issue 2615773003: Replace LayerImpl::sorting_context_id with transform reference. (Closed)
Patch Set: Update tests. Created 3 years, 11 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 2013 The Chromium Authors. All rights reserved. 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 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 <stddef.h> 5 #include <stddef.h>
6 6
7 #include "cc/layers/append_quads_data.h" 7 #include "cc/layers/append_quads_data.h"
8 #include "cc/layers/ui_resource_layer_impl.h" 8 #include "cc/layers/ui_resource_layer_impl.h"
9 #include "cc/quads/draw_quad.h" 9 #include "cc/quads/draw_quad.h"
10 #include "cc/resources/ui_resource_bitmap.h" 10 #include "cc/resources/ui_resource_bitmap.h"
(...skipping 26 matching lines...) Expand all
37 layer->test_properties()->force_render_surface = true; 37 layer->test_properties()->force_render_surface = true;
38 38
39 UIResourceBitmap bitmap(bitmap_size, opaque); 39 UIResourceBitmap bitmap(bitmap_size, opaque);
40 40
41 host_impl->CreateUIResource(uid, bitmap); 41 host_impl->CreateUIResource(uid, bitmap);
42 layer->SetUIResourceId(uid); 42 layer->SetUIResourceId(uid);
43 43
44 return layer; 44 return layer;
45 } 45 }
46 46
47 void QuadSizeTest(std::unique_ptr<UIResourceLayerImpl> layer, 47 void QuadSizeTest(FakeUIResourceLayerTreeHostImpl* host_impl,
48 std::unique_ptr<UIResourceLayerImpl> layer,
48 size_t expected_quad_size) { 49 size_t expected_quad_size) {
50 host_impl->active_tree()->SetRootLayerForTesting(std::move(layer));
51 host_impl->active_tree()->BuildPropertyTreesForTesting();
52
49 std::unique_ptr<RenderPass> render_pass = RenderPass::Create(); 53 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
50 54
51 AppendQuadsData data; 55 AppendQuadsData data;
52 layer->AppendQuads(render_pass.get(), &data); 56 host_impl->active_tree()->root_layer_for_testing()->AppendQuads(
57 render_pass.get(), &data);
53 58
54 // Verify quad rects 59 // Verify quad rects
55 const QuadList& quads = render_pass->quad_list; 60 const QuadList& quads = render_pass->quad_list;
56 EXPECT_EQ(expected_quad_size, quads.size()); 61 EXPECT_EQ(expected_quad_size, quads.size());
62
63 host_impl->active_tree()->DetachLayers();
57 } 64 }
58 65
59 TEST(UIResourceLayerImplTest, VerifyDrawQuads) { 66 TEST(UIResourceLayerImplTest, VerifyDrawQuads) {
60 FakeImplTaskRunnerProvider task_runner_provider; 67 FakeImplTaskRunnerProvider task_runner_provider;
61 TestTaskGraphRunner task_graph_runner; 68 TestTaskGraphRunner task_graph_runner;
62 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = 69 std::unique_ptr<CompositorFrameSink> compositor_frame_sink =
63 FakeCompositorFrameSink::Create3d(); 70 FakeCompositorFrameSink::Create3d();
64 FakeUIResourceLayerTreeHostImpl host_impl(&task_runner_provider, 71 FakeUIResourceLayerTreeHostImpl host_impl(&task_runner_provider,
65 &task_graph_runner); 72 &task_graph_runner);
66 host_impl.SetVisible(true); 73 host_impl.SetVisible(true);
67 host_impl.InitializeRenderer(compositor_frame_sink.get()); 74 host_impl.InitializeRenderer(compositor_frame_sink.get());
68 75
69 // Make sure we're appending quads when there are valid values. 76 // Make sure we're appending quads when there are valid values.
70 gfx::Size bitmap_size(100, 100); 77 gfx::Size bitmap_size(100, 100);
71 gfx::Size layer_size(100, 100); 78 gfx::Size layer_size(100, 100);
72 size_t expected_quad_size = 1; 79 size_t expected_quad_size = 1;
73 bool opaque = true; 80 bool opaque = true;
74 UIResourceId uid = 1; 81 UIResourceId uid = 1;
75 std::unique_ptr<UIResourceLayerImpl> layer = 82 std::unique_ptr<UIResourceLayerImpl> layer =
76 GenerateUIResourceLayer(&host_impl, bitmap_size, layer_size, opaque, uid); 83 GenerateUIResourceLayer(&host_impl, bitmap_size, layer_size, opaque, uid);
77 QuadSizeTest(std::move(layer), expected_quad_size); 84 QuadSizeTest(&host_impl, std::move(layer), expected_quad_size);
78 85
79 // Make sure we're not appending quads when there are invalid values. 86 // Make sure we're not appending quads when there are invalid values.
80 expected_quad_size = 0; 87 expected_quad_size = 0;
81 uid = 0; 88 uid = 0;
82 layer = GenerateUIResourceLayer(&host_impl, 89 layer = GenerateUIResourceLayer(&host_impl,
83 bitmap_size, 90 bitmap_size,
84 layer_size, 91 layer_size,
85 opaque, 92 opaque,
86 uid); 93 uid);
87 QuadSizeTest(std::move(layer), expected_quad_size); 94 QuadSizeTest(&host_impl, std::move(layer), expected_quad_size);
88 } 95 }
89 96
90 void OpaqueBoundsTest(std::unique_ptr<UIResourceLayerImpl> layer, 97 void OpaqueBoundsTest(FakeUIResourceLayerTreeHostImpl* host_impl,
98 std::unique_ptr<UIResourceLayerImpl> layer,
91 const gfx::Rect& expected_opaque_bounds) { 99 const gfx::Rect& expected_opaque_bounds) {
100 host_impl->active_tree()->SetRootLayerForTesting(std::move(layer));
101 host_impl->active_tree()->BuildPropertyTreesForTesting();
102
92 std::unique_ptr<RenderPass> render_pass = RenderPass::Create(); 103 std::unique_ptr<RenderPass> render_pass = RenderPass::Create();
93 104
94 AppendQuadsData data; 105 AppendQuadsData data;
95 layer->AppendQuads(render_pass.get(), &data); 106 host_impl->active_tree()->root_layer_for_testing()->AppendQuads(
107 render_pass.get(), &data);
96 108
97 // Verify quad rects 109 // Verify quad rects
98 const QuadList& quads = render_pass->quad_list; 110 const QuadList& quads = render_pass->quad_list;
99 EXPECT_GE(quads.size(), (size_t)0); 111 EXPECT_GE(quads.size(), (size_t)0);
100 gfx::Rect opaque_rect = quads.front()->opaque_rect; 112 gfx::Rect opaque_rect = quads.front()->opaque_rect;
101 EXPECT_EQ(expected_opaque_bounds, opaque_rect); 113 EXPECT_EQ(expected_opaque_bounds, opaque_rect);
114
115 host_impl->active_tree()->DetachLayers();
102 } 116 }
103 117
104 TEST(UIResourceLayerImplTest, VerifySetOpaqueOnSkBitmap) { 118 TEST(UIResourceLayerImplTest, VerifySetOpaqueOnSkBitmap) {
105 FakeImplTaskRunnerProvider task_runner_provider; 119 FakeImplTaskRunnerProvider task_runner_provider;
106 TestTaskGraphRunner task_graph_runner; 120 TestTaskGraphRunner task_graph_runner;
107 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = 121 std::unique_ptr<CompositorFrameSink> compositor_frame_sink =
108 FakeCompositorFrameSink::Create3d(); 122 FakeCompositorFrameSink::Create3d();
109 FakeUIResourceLayerTreeHostImpl host_impl(&task_runner_provider, 123 FakeUIResourceLayerTreeHostImpl host_impl(&task_runner_provider,
110 &task_graph_runner); 124 &task_graph_runner);
111 host_impl.SetVisible(true); 125 host_impl.SetVisible(true);
112 host_impl.InitializeRenderer(compositor_frame_sink.get()); 126 host_impl.InitializeRenderer(compositor_frame_sink.get());
113 127
114 gfx::Size bitmap_size(100, 100); 128 gfx::Size bitmap_size(100, 100);
115 gfx::Size layer_size(100, 100); 129 gfx::Size layer_size(100, 100);
116 bool opaque = false; 130 bool opaque = false;
117 UIResourceId uid = 1; 131 UIResourceId uid = 1;
118 std::unique_ptr<UIResourceLayerImpl> layer = 132 std::unique_ptr<UIResourceLayerImpl> layer =
119 GenerateUIResourceLayer(&host_impl, bitmap_size, layer_size, opaque, uid); 133 GenerateUIResourceLayer(&host_impl, bitmap_size, layer_size, opaque, uid);
120 gfx::Rect expected_opaque_bounds; 134 gfx::Rect expected_opaque_bounds;
121 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); 135 OpaqueBoundsTest(&host_impl, std::move(layer), expected_opaque_bounds);
122 136
123 opaque = true; 137 opaque = true;
124 layer = GenerateUIResourceLayer(&host_impl, 138 layer = GenerateUIResourceLayer(&host_impl,
125 bitmap_size, 139 bitmap_size,
126 layer_size, 140 layer_size,
127 opaque, 141 opaque,
128 uid); 142 uid);
129 expected_opaque_bounds = gfx::Rect(layer->bounds()); 143 expected_opaque_bounds = gfx::Rect(layer->bounds());
130 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); 144 OpaqueBoundsTest(&host_impl, std::move(layer), expected_opaque_bounds);
131 } 145 }
132 146
133 TEST(UIResourceLayerImplTest, VerifySetOpaqueOnLayer) { 147 TEST(UIResourceLayerImplTest, VerifySetOpaqueOnLayer) {
134 FakeImplTaskRunnerProvider task_runner_provider; 148 FakeImplTaskRunnerProvider task_runner_provider;
135 TestTaskGraphRunner task_graph_runner; 149 TestTaskGraphRunner task_graph_runner;
136 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = 150 std::unique_ptr<CompositorFrameSink> compositor_frame_sink =
137 FakeCompositorFrameSink::Create3d(); 151 FakeCompositorFrameSink::Create3d();
138 FakeUIResourceLayerTreeHostImpl host_impl(&task_runner_provider, 152 FakeUIResourceLayerTreeHostImpl host_impl(&task_runner_provider,
139 &task_graph_runner); 153 &task_graph_runner);
140 host_impl.SetVisible(true); 154 host_impl.SetVisible(true);
141 host_impl.InitializeRenderer(compositor_frame_sink.get()); 155 host_impl.InitializeRenderer(compositor_frame_sink.get());
142 156
143 gfx::Size bitmap_size(100, 100); 157 gfx::Size bitmap_size(100, 100);
144 gfx::Size layer_size(100, 100); 158 gfx::Size layer_size(100, 100);
145 bool skbitmap_opaque = false; 159 bool skbitmap_opaque = false;
146 UIResourceId uid = 1; 160 UIResourceId uid = 1;
147 std::unique_ptr<UIResourceLayerImpl> layer = GenerateUIResourceLayer( 161 std::unique_ptr<UIResourceLayerImpl> layer = GenerateUIResourceLayer(
148 &host_impl, bitmap_size, layer_size, skbitmap_opaque, uid); 162 &host_impl, bitmap_size, layer_size, skbitmap_opaque, uid);
149 layer->SetContentsOpaque(false); 163 layer->SetContentsOpaque(false);
150 gfx::Rect expected_opaque_bounds; 164 gfx::Rect expected_opaque_bounds;
151 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); 165 OpaqueBoundsTest(&host_impl, std::move(layer), expected_opaque_bounds);
152 166
153 layer = GenerateUIResourceLayer( 167 layer = GenerateUIResourceLayer(
154 &host_impl, bitmap_size, layer_size, skbitmap_opaque, uid); 168 &host_impl, bitmap_size, layer_size, skbitmap_opaque, uid);
155 layer->SetContentsOpaque(true); 169 layer->SetContentsOpaque(true);
156 expected_opaque_bounds = gfx::Rect(layer->bounds()); 170 expected_opaque_bounds = gfx::Rect(layer->bounds());
157 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); 171 OpaqueBoundsTest(&host_impl, std::move(layer), expected_opaque_bounds);
158 } 172 }
159 173
160 TEST(UIResourceLayerImplTest, Occlusion) { 174 TEST(UIResourceLayerImplTest, Occlusion) {
161 gfx::Size layer_size(1000, 1000); 175 gfx::Size layer_size(1000, 1000);
162 gfx::Size viewport_size(1000, 1000); 176 gfx::Size viewport_size(1000, 1000);
163 177
164 LayerTestCommon::LayerImplTest impl; 178 LayerTestCommon::LayerImplTest impl;
165 179
166 SkBitmap sk_bitmap; 180 SkBitmap sk_bitmap;
167 sk_bitmap.allocN32Pixels(10, 10); 181 sk_bitmap.allocN32Pixels(10, 10);
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
206 LayerTestCommon::VerifyQuadsAreOccluded( 220 LayerTestCommon::VerifyQuadsAreOccluded(
207 impl.quad_list(), occluded, &partially_occluded_count); 221 impl.quad_list(), occluded, &partially_occluded_count);
208 // The layer outputs one quad, which is partially occluded. 222 // The layer outputs one quad, which is partially occluded.
209 EXPECT_EQ(1u, impl.quad_list().size()); 223 EXPECT_EQ(1u, impl.quad_list().size());
210 EXPECT_EQ(1u, partially_occluded_count); 224 EXPECT_EQ(1u, partially_occluded_count);
211 } 225 }
212 } 226 }
213 227
214 } // namespace 228 } // namespace
215 } // namespace cc 229 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698