| 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 |