OLD | NEW |
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 "cc/layers/append_quads_data.h" | 5 #include "cc/layers/append_quads_data.h" |
6 #include "cc/layers/ui_resource_layer_impl.h" | 6 #include "cc/layers/ui_resource_layer_impl.h" |
7 #include "cc/quads/draw_quad.h" | 7 #include "cc/quads/draw_quad.h" |
8 #include "cc/resources/ui_resource_bitmap.h" | 8 #include "cc/resources/ui_resource_bitmap.h" |
9 #include "cc/resources/ui_resource_client.h" | 9 #include "cc/resources/ui_resource_client.h" |
10 #include "cc/test/fake_impl_task_runner_provider.h" | 10 #include "cc/test/fake_impl_task_runner_provider.h" |
(...skipping 23 matching lines...) Expand all Loading... |
34 layer->draw_properties().visible_layer_rect = visible_layer_rect; | 34 layer->draw_properties().visible_layer_rect = visible_layer_rect; |
35 layer->SetBounds(layer_size); | 35 layer->SetBounds(layer_size); |
36 layer->SetHasRenderSurface(true); | 36 layer->SetHasRenderSurface(true); |
37 layer->draw_properties().render_target = layer.get(); | 37 layer->draw_properties().render_target = layer.get(); |
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.Pass(); | 44 return layer; |
45 } | 45 } |
46 | 46 |
47 void QuadSizeTest(scoped_ptr<UIResourceLayerImpl> layer, | 47 void QuadSizeTest(scoped_ptr<UIResourceLayerImpl> layer, |
48 size_t expected_quad_size) { | 48 size_t expected_quad_size) { |
49 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); | 49 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); |
50 | 50 |
51 AppendQuadsData data; | 51 AppendQuadsData data; |
52 layer->AppendQuads(render_pass.get(), &data); | 52 layer->AppendQuads(render_pass.get(), &data); |
53 | 53 |
54 // Verify quad rects | 54 // Verify quad rects |
(...skipping 15 matching lines...) Expand all Loading... |
70 gfx::Size bitmap_size(100, 100); | 70 gfx::Size bitmap_size(100, 100); |
71 gfx::Size layer_size(100, 100);; | 71 gfx::Size layer_size(100, 100);; |
72 size_t expected_quad_size = 1; | 72 size_t expected_quad_size = 1; |
73 bool opaque = true; | 73 bool opaque = true; |
74 UIResourceId uid = 1; | 74 UIResourceId uid = 1; |
75 scoped_ptr<UIResourceLayerImpl> layer = GenerateUIResourceLayer(&host_impl, | 75 scoped_ptr<UIResourceLayerImpl> layer = GenerateUIResourceLayer(&host_impl, |
76 bitmap_size, | 76 bitmap_size, |
77 layer_size, | 77 layer_size, |
78 opaque, | 78 opaque, |
79 uid); | 79 uid); |
80 QuadSizeTest(layer.Pass(), expected_quad_size); | 80 QuadSizeTest(std::move(layer), expected_quad_size); |
81 | 81 |
82 // Make sure we're not appending quads when there are invalid values. | 82 // Make sure we're not appending quads when there are invalid values. |
83 expected_quad_size = 0; | 83 expected_quad_size = 0; |
84 uid = 0; | 84 uid = 0; |
85 layer = GenerateUIResourceLayer(&host_impl, | 85 layer = GenerateUIResourceLayer(&host_impl, |
86 bitmap_size, | 86 bitmap_size, |
87 layer_size, | 87 layer_size, |
88 opaque, | 88 opaque, |
89 uid); | 89 uid); |
90 QuadSizeTest(layer.Pass(), expected_quad_size); | 90 QuadSizeTest(std::move(layer), expected_quad_size); |
91 } | 91 } |
92 | 92 |
93 void OpaqueBoundsTest(scoped_ptr<UIResourceLayerImpl> layer, | 93 void OpaqueBoundsTest(scoped_ptr<UIResourceLayerImpl> layer, |
94 const gfx::Rect& expected_opaque_bounds) { | 94 const gfx::Rect& expected_opaque_bounds) { |
95 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); | 95 scoped_ptr<RenderPass> render_pass = RenderPass::Create(); |
96 | 96 |
97 AppendQuadsData data; | 97 AppendQuadsData data; |
98 layer->AppendQuads(render_pass.get(), &data); | 98 layer->AppendQuads(render_pass.get(), &data); |
99 | 99 |
100 // Verify quad rects | 100 // Verify quad rects |
(...skipping 16 matching lines...) Expand all Loading... |
117 gfx::Size bitmap_size(100, 100); | 117 gfx::Size bitmap_size(100, 100); |
118 gfx::Size layer_size(100, 100);; | 118 gfx::Size layer_size(100, 100);; |
119 bool opaque = false; | 119 bool opaque = false; |
120 UIResourceId uid = 1; | 120 UIResourceId uid = 1; |
121 scoped_ptr<UIResourceLayerImpl> layer = GenerateUIResourceLayer(&host_impl, | 121 scoped_ptr<UIResourceLayerImpl> layer = GenerateUIResourceLayer(&host_impl, |
122 bitmap_size, | 122 bitmap_size, |
123 layer_size, | 123 layer_size, |
124 opaque, | 124 opaque, |
125 uid); | 125 uid); |
126 gfx::Rect expected_opaque_bounds; | 126 gfx::Rect expected_opaque_bounds; |
127 OpaqueBoundsTest(layer.Pass(), expected_opaque_bounds); | 127 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); |
128 | 128 |
129 opaque = true; | 129 opaque = true; |
130 layer = GenerateUIResourceLayer(&host_impl, | 130 layer = GenerateUIResourceLayer(&host_impl, |
131 bitmap_size, | 131 bitmap_size, |
132 layer_size, | 132 layer_size, |
133 opaque, | 133 opaque, |
134 uid); | 134 uid); |
135 expected_opaque_bounds = gfx::Rect(layer->bounds()); | 135 expected_opaque_bounds = gfx::Rect(layer->bounds()); |
136 OpaqueBoundsTest(layer.Pass(), expected_opaque_bounds); | 136 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); |
137 } | 137 } |
138 | 138 |
139 TEST(UIResourceLayerImplTest, VerifySetOpaqueOnLayer) { | 139 TEST(UIResourceLayerImplTest, VerifySetOpaqueOnLayer) { |
140 FakeImplTaskRunnerProvider task_runner_provider; | 140 FakeImplTaskRunnerProvider task_runner_provider; |
141 TestSharedBitmapManager shared_bitmap_manager; | 141 TestSharedBitmapManager shared_bitmap_manager; |
142 TestTaskGraphRunner task_graph_runner; | 142 TestTaskGraphRunner task_graph_runner; |
143 scoped_ptr<OutputSurface> output_surface = FakeOutputSurface::Create3d(); | 143 scoped_ptr<OutputSurface> output_surface = FakeOutputSurface::Create3d(); |
144 FakeUIResourceLayerTreeHostImpl host_impl( | 144 FakeUIResourceLayerTreeHostImpl host_impl( |
145 &task_runner_provider, &shared_bitmap_manager, &task_graph_runner); | 145 &task_runner_provider, &shared_bitmap_manager, &task_graph_runner); |
146 host_impl.SetVisible(true); | 146 host_impl.SetVisible(true); |
147 host_impl.InitializeRenderer(output_surface.get()); | 147 host_impl.InitializeRenderer(output_surface.get()); |
148 | 148 |
149 gfx::Size bitmap_size(100, 100); | 149 gfx::Size bitmap_size(100, 100); |
150 gfx::Size layer_size(100, 100); | 150 gfx::Size layer_size(100, 100); |
151 bool skbitmap_opaque = false; | 151 bool skbitmap_opaque = false; |
152 UIResourceId uid = 1; | 152 UIResourceId uid = 1; |
153 scoped_ptr<UIResourceLayerImpl> layer = GenerateUIResourceLayer( | 153 scoped_ptr<UIResourceLayerImpl> layer = GenerateUIResourceLayer( |
154 &host_impl, bitmap_size, layer_size, skbitmap_opaque, uid); | 154 &host_impl, bitmap_size, layer_size, skbitmap_opaque, uid); |
155 layer->SetContentsOpaque(false); | 155 layer->SetContentsOpaque(false); |
156 gfx::Rect expected_opaque_bounds; | 156 gfx::Rect expected_opaque_bounds; |
157 OpaqueBoundsTest(layer.Pass(), expected_opaque_bounds); | 157 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); |
158 | 158 |
159 layer = GenerateUIResourceLayer( | 159 layer = GenerateUIResourceLayer( |
160 &host_impl, bitmap_size, layer_size, skbitmap_opaque, uid); | 160 &host_impl, bitmap_size, layer_size, skbitmap_opaque, uid); |
161 layer->SetContentsOpaque(true); | 161 layer->SetContentsOpaque(true); |
162 expected_opaque_bounds = gfx::Rect(layer->bounds()); | 162 expected_opaque_bounds = gfx::Rect(layer->bounds()); |
163 OpaqueBoundsTest(layer.Pass(), expected_opaque_bounds); | 163 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); |
164 } | 164 } |
165 | 165 |
166 TEST(UIResourceLayerImplTest, Occlusion) { | 166 TEST(UIResourceLayerImplTest, Occlusion) { |
167 gfx::Size layer_size(1000, 1000); | 167 gfx::Size layer_size(1000, 1000); |
168 gfx::Size viewport_size(1000, 1000); | 168 gfx::Size viewport_size(1000, 1000); |
169 | 169 |
170 LayerTestCommon::LayerImplTest impl; | 170 LayerTestCommon::LayerImplTest impl; |
171 | 171 |
172 SkBitmap sk_bitmap; | 172 SkBitmap sk_bitmap; |
173 sk_bitmap.allocN32Pixels(10, 10); | 173 sk_bitmap.allocN32Pixels(10, 10); |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
212 LayerTestCommon::VerifyQuadsAreOccluded( | 212 LayerTestCommon::VerifyQuadsAreOccluded( |
213 impl.quad_list(), occluded, &partially_occluded_count); | 213 impl.quad_list(), occluded, &partially_occluded_count); |
214 // The layer outputs one quad, which is partially occluded. | 214 // The layer outputs one quad, which is partially occluded. |
215 EXPECT_EQ(1u, impl.quad_list().size()); | 215 EXPECT_EQ(1u, impl.quad_list().size()); |
216 EXPECT_EQ(1u, partially_occluded_count); | 216 EXPECT_EQ(1u, partially_occluded_count); |
217 } | 217 } |
218 } | 218 } |
219 | 219 |
220 } // namespace | 220 } // namespace |
221 } // namespace cc | 221 } // namespace cc |
OLD | NEW |