| 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 <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" |
| 11 #include "cc/resources/ui_resource_client.h" | 11 #include "cc/resources/ui_resource_client.h" |
| 12 #include "cc/test/fake_compositor_frame_sink.h" | 12 #include "cc/test/fake_compositor_frame_sink.h" |
| 13 #include "cc/test/fake_impl_task_runner_provider.h" | 13 #include "cc/test/fake_impl_task_runner_provider.h" |
| 14 #include "cc/test/fake_layer_tree_host_impl.h" | 14 #include "cc/test/fake_layer_tree_host_impl.h" |
| 15 #include "cc/test/fake_ui_resource_layer_tree_host_impl.h" | 15 #include "cc/test/fake_ui_resource_layer_tree_host_impl.h" |
| 16 #include "cc/test/layer_test_common.h" | 16 #include "cc/test/layer_test_common.h" |
| 17 #include "cc/test/test_shared_bitmap_manager.h" | |
| 18 #include "cc/test/test_task_graph_runner.h" | 17 #include "cc/test/test_task_graph_runner.h" |
| 19 #include "cc/trees/single_thread_proxy.h" | 18 #include "cc/trees/single_thread_proxy.h" |
| 20 #include "testing/gmock/include/gmock/gmock.h" | 19 #include "testing/gmock/include/gmock/gmock.h" |
| 21 #include "testing/gtest/include/gtest/gtest.h" | 20 #include "testing/gtest/include/gtest/gtest.h" |
| 22 #include "ui/gfx/transform.h" | 21 #include "ui/gfx/transform.h" |
| 23 | 22 |
| 24 namespace cc { | 23 namespace cc { |
| 25 namespace { | 24 namespace { |
| 26 | 25 |
| 27 std::unique_ptr<UIResourceLayerImpl> GenerateUIResourceLayer( | 26 std::unique_ptr<UIResourceLayerImpl> GenerateUIResourceLayer( |
| (...skipping 24 matching lines...) Expand all Loading... |
| 52 AppendQuadsData data; | 51 AppendQuadsData data; |
| 53 layer->AppendQuads(render_pass.get(), &data); | 52 layer->AppendQuads(render_pass.get(), &data); |
| 54 | 53 |
| 55 // Verify quad rects | 54 // Verify quad rects |
| 56 const QuadList& quads = render_pass->quad_list; | 55 const QuadList& quads = render_pass->quad_list; |
| 57 EXPECT_EQ(expected_quad_size, quads.size()); | 56 EXPECT_EQ(expected_quad_size, quads.size()); |
| 58 } | 57 } |
| 59 | 58 |
| 60 TEST(UIResourceLayerImplTest, VerifyDrawQuads) { | 59 TEST(UIResourceLayerImplTest, VerifyDrawQuads) { |
| 61 FakeImplTaskRunnerProvider task_runner_provider; | 60 FakeImplTaskRunnerProvider task_runner_provider; |
| 62 TestSharedBitmapManager shared_bitmap_manager; | |
| 63 TestTaskGraphRunner task_graph_runner; | 61 TestTaskGraphRunner task_graph_runner; |
| 64 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = | 62 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = |
| 65 FakeCompositorFrameSink::Create3d(); | 63 FakeCompositorFrameSink::Create3d(); |
| 66 FakeUIResourceLayerTreeHostImpl host_impl( | 64 FakeUIResourceLayerTreeHostImpl host_impl(&task_runner_provider, |
| 67 &task_runner_provider, &shared_bitmap_manager, &task_graph_runner); | 65 &task_graph_runner); |
| 68 host_impl.SetVisible(true); | 66 host_impl.SetVisible(true); |
| 69 host_impl.InitializeRenderer(compositor_frame_sink.get()); | 67 host_impl.InitializeRenderer(compositor_frame_sink.get()); |
| 70 | 68 |
| 71 // Make sure we're appending quads when there are valid values. | 69 // Make sure we're appending quads when there are valid values. |
| 72 gfx::Size bitmap_size(100, 100); | 70 gfx::Size bitmap_size(100, 100); |
| 73 gfx::Size layer_size(100, 100); | 71 gfx::Size layer_size(100, 100); |
| 74 size_t expected_quad_size = 1; | 72 size_t expected_quad_size = 1; |
| 75 bool opaque = true; | 73 bool opaque = true; |
| 76 UIResourceId uid = 1; | 74 UIResourceId uid = 1; |
| 77 std::unique_ptr<UIResourceLayerImpl> layer = | 75 std::unique_ptr<UIResourceLayerImpl> layer = |
| (...skipping 20 matching lines...) Expand all Loading... |
| 98 | 96 |
| 99 // Verify quad rects | 97 // Verify quad rects |
| 100 const QuadList& quads = render_pass->quad_list; | 98 const QuadList& quads = render_pass->quad_list; |
| 101 EXPECT_GE(quads.size(), (size_t)0); | 99 EXPECT_GE(quads.size(), (size_t)0); |
| 102 gfx::Rect opaque_rect = quads.front()->opaque_rect; | 100 gfx::Rect opaque_rect = quads.front()->opaque_rect; |
| 103 EXPECT_EQ(expected_opaque_bounds, opaque_rect); | 101 EXPECT_EQ(expected_opaque_bounds, opaque_rect); |
| 104 } | 102 } |
| 105 | 103 |
| 106 TEST(UIResourceLayerImplTest, VerifySetOpaqueOnSkBitmap) { | 104 TEST(UIResourceLayerImplTest, VerifySetOpaqueOnSkBitmap) { |
| 107 FakeImplTaskRunnerProvider task_runner_provider; | 105 FakeImplTaskRunnerProvider task_runner_provider; |
| 108 TestSharedBitmapManager shared_bitmap_manager; | |
| 109 TestTaskGraphRunner task_graph_runner; | 106 TestTaskGraphRunner task_graph_runner; |
| 110 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = | 107 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = |
| 111 FakeCompositorFrameSink::Create3d(); | 108 FakeCompositorFrameSink::Create3d(); |
| 112 FakeUIResourceLayerTreeHostImpl host_impl( | 109 FakeUIResourceLayerTreeHostImpl host_impl(&task_runner_provider, |
| 113 &task_runner_provider, &shared_bitmap_manager, &task_graph_runner); | 110 &task_graph_runner); |
| 114 host_impl.SetVisible(true); | 111 host_impl.SetVisible(true); |
| 115 host_impl.InitializeRenderer(compositor_frame_sink.get()); | 112 host_impl.InitializeRenderer(compositor_frame_sink.get()); |
| 116 | 113 |
| 117 gfx::Size bitmap_size(100, 100); | 114 gfx::Size bitmap_size(100, 100); |
| 118 gfx::Size layer_size(100, 100); | 115 gfx::Size layer_size(100, 100); |
| 119 bool opaque = false; | 116 bool opaque = false; |
| 120 UIResourceId uid = 1; | 117 UIResourceId uid = 1; |
| 121 std::unique_ptr<UIResourceLayerImpl> layer = | 118 std::unique_ptr<UIResourceLayerImpl> layer = |
| 122 GenerateUIResourceLayer(&host_impl, bitmap_size, layer_size, opaque, uid); | 119 GenerateUIResourceLayer(&host_impl, bitmap_size, layer_size, opaque, uid); |
| 123 gfx::Rect expected_opaque_bounds; | 120 gfx::Rect expected_opaque_bounds; |
| 124 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); | 121 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); |
| 125 | 122 |
| 126 opaque = true; | 123 opaque = true; |
| 127 layer = GenerateUIResourceLayer(&host_impl, | 124 layer = GenerateUIResourceLayer(&host_impl, |
| 128 bitmap_size, | 125 bitmap_size, |
| 129 layer_size, | 126 layer_size, |
| 130 opaque, | 127 opaque, |
| 131 uid); | 128 uid); |
| 132 expected_opaque_bounds = gfx::Rect(layer->bounds()); | 129 expected_opaque_bounds = gfx::Rect(layer->bounds()); |
| 133 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); | 130 OpaqueBoundsTest(std::move(layer), expected_opaque_bounds); |
| 134 } | 131 } |
| 135 | 132 |
| 136 TEST(UIResourceLayerImplTest, VerifySetOpaqueOnLayer) { | 133 TEST(UIResourceLayerImplTest, VerifySetOpaqueOnLayer) { |
| 137 FakeImplTaskRunnerProvider task_runner_provider; | 134 FakeImplTaskRunnerProvider task_runner_provider; |
| 138 TestSharedBitmapManager shared_bitmap_manager; | |
| 139 TestTaskGraphRunner task_graph_runner; | 135 TestTaskGraphRunner task_graph_runner; |
| 140 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = | 136 std::unique_ptr<CompositorFrameSink> compositor_frame_sink = |
| 141 FakeCompositorFrameSink::Create3d(); | 137 FakeCompositorFrameSink::Create3d(); |
| 142 FakeUIResourceLayerTreeHostImpl host_impl( | 138 FakeUIResourceLayerTreeHostImpl host_impl(&task_runner_provider, |
| 143 &task_runner_provider, &shared_bitmap_manager, &task_graph_runner); | 139 &task_graph_runner); |
| 144 host_impl.SetVisible(true); | 140 host_impl.SetVisible(true); |
| 145 host_impl.InitializeRenderer(compositor_frame_sink.get()); | 141 host_impl.InitializeRenderer(compositor_frame_sink.get()); |
| 146 | 142 |
| 147 gfx::Size bitmap_size(100, 100); | 143 gfx::Size bitmap_size(100, 100); |
| 148 gfx::Size layer_size(100, 100); | 144 gfx::Size layer_size(100, 100); |
| 149 bool skbitmap_opaque = false; | 145 bool skbitmap_opaque = false; |
| 150 UIResourceId uid = 1; | 146 UIResourceId uid = 1; |
| 151 std::unique_ptr<UIResourceLayerImpl> layer = GenerateUIResourceLayer( | 147 std::unique_ptr<UIResourceLayerImpl> layer = GenerateUIResourceLayer( |
| 152 &host_impl, bitmap_size, layer_size, skbitmap_opaque, uid); | 148 &host_impl, bitmap_size, layer_size, skbitmap_opaque, uid); |
| 153 layer->SetContentsOpaque(false); | 149 layer->SetContentsOpaque(false); |
| (...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 LayerTestCommon::VerifyQuadsAreOccluded( | 206 LayerTestCommon::VerifyQuadsAreOccluded( |
| 211 impl.quad_list(), occluded, &partially_occluded_count); | 207 impl.quad_list(), occluded, &partially_occluded_count); |
| 212 // The layer outputs one quad, which is partially occluded. | 208 // The layer outputs one quad, which is partially occluded. |
| 213 EXPECT_EQ(1u, impl.quad_list().size()); | 209 EXPECT_EQ(1u, impl.quad_list().size()); |
| 214 EXPECT_EQ(1u, partially_occluded_count); | 210 EXPECT_EQ(1u, partially_occluded_count); |
| 215 } | 211 } |
| 216 } | 212 } |
| 217 | 213 |
| 218 } // namespace | 214 } // namespace |
| 219 } // namespace cc | 215 } // namespace cc |
| OLD | NEW |