OLD | NEW |
1 // Copyright 2012 The Chromium Authors. All rights reserved. | 1 // Copyright 2012 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/delegated_renderer_layer_impl.h" | 5 #include "cc/layers/delegated_renderer_layer_impl.h" |
6 | 6 |
7 #include "cc/base/scoped_ptr_vector.h" | 7 #include "cc/base/scoped_ptr_vector.h" |
8 #include "cc/layers/solid_color_layer_impl.h" | 8 #include "cc/layers/solid_color_layer_impl.h" |
9 #include "cc/quads/render_pass_draw_quad.h" | 9 #include "cc/quads/render_pass_draw_quad.h" |
10 #include "cc/quads/solid_color_draw_quad.h" | 10 #include "cc/quads/solid_color_draw_quad.h" |
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
65 SolidColorLayerImpl::Create(host_impl_->active_tree(), 3); | 65 SolidColorLayerImpl::Create(host_impl_->active_tree(), 3); |
66 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 66 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
67 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); | 67 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); |
68 | 68 |
69 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 69 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
70 root_layer->SetBounds(gfx::Size(100, 100)); | 70 root_layer->SetBounds(gfx::Size(100, 100)); |
71 root_layer->SetHasRenderSurface(true); | 71 root_layer->SetHasRenderSurface(true); |
72 | 72 |
73 layer_before->SetPosition(gfx::Point(20, 20)); | 73 layer_before->SetPosition(gfx::Point(20, 20)); |
74 layer_before->SetBounds(gfx::Size(14, 14)); | 74 layer_before->SetBounds(gfx::Size(14, 14)); |
75 layer_before->SetContentBounds(gfx::Size(14, 14)); | |
76 layer_before->SetDrawsContent(true); | 75 layer_before->SetDrawsContent(true); |
77 layer_before->SetHasRenderSurface(true); | 76 layer_before->SetHasRenderSurface(true); |
78 | 77 |
79 layer_after->SetPosition(gfx::Point(5, 5)); | 78 layer_after->SetPosition(gfx::Point(5, 5)); |
80 layer_after->SetBounds(gfx::Size(15, 15)); | 79 layer_after->SetBounds(gfx::Size(15, 15)); |
81 layer_after->SetContentBounds(gfx::Size(15, 15)); | |
82 layer_after->SetDrawsContent(true); | 80 layer_after->SetDrawsContent(true); |
83 layer_after->SetHasRenderSurface(true); | 81 layer_after->SetHasRenderSurface(true); |
84 | 82 |
85 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); | 83 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); |
86 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); | 84 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); |
87 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10)); | |
88 delegated_renderer_layer->SetDrawsContent(true); | 85 delegated_renderer_layer->SetDrawsContent(true); |
89 gfx::Transform transform; | 86 gfx::Transform transform; |
90 transform.Translate(1.0, 1.0); | 87 transform.Translate(1.0, 1.0); |
91 delegated_renderer_layer->SetTransform(transform); | 88 delegated_renderer_layer->SetTransform(transform); |
92 | 89 |
93 RenderPassList delegated_render_passes; | 90 RenderPassList delegated_render_passes; |
94 TestRenderPass* pass1 = AddRenderPass(&delegated_render_passes, | 91 TestRenderPass* pass1 = AddRenderPass(&delegated_render_passes, |
95 RenderPassId(9, 6), | 92 RenderPassId(9, 6), |
96 gfx::Rect(6, 6, 6, 6), | 93 gfx::Rect(6, 6, 6, 6), |
97 gfx::Transform(1, 0, 0, 1, 5, 6)); | 94 gfx::Transform(1, 0, 0, 1, 5, 6)); |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
141 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); | 138 SolidColorLayerImpl::Create(host_impl_->active_tree(), 1); |
142 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 139 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
143 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); | 140 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); |
144 | 141 |
145 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 142 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
146 root_layer->SetBounds(gfx::Size(100, 100)); | 143 root_layer->SetBounds(gfx::Size(100, 100)); |
147 root_layer->SetHasRenderSurface(true); | 144 root_layer->SetHasRenderSurface(true); |
148 | 145 |
149 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); | 146 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); |
150 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); | 147 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); |
151 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10)); | |
152 delegated_renderer_layer->SetDrawsContent(true); | 148 delegated_renderer_layer->SetDrawsContent(true); |
153 delegated_renderer_layer->SetHasRenderSurface(true); | 149 delegated_renderer_layer->SetHasRenderSurface(true); |
154 gfx::Transform transform; | 150 gfx::Transform transform; |
155 transform.Translate(1.0, 1.0); | 151 transform.Translate(1.0, 1.0); |
156 delegated_renderer_layer->SetTransform(transform); | 152 delegated_renderer_layer->SetTransform(transform); |
157 | 153 |
158 RenderPassList delegated_render_passes; | 154 RenderPassList delegated_render_passes; |
159 TestRenderPass* pass1 = | 155 TestRenderPass* pass1 = |
160 AddRenderPass(&delegated_render_passes, RenderPassId(9, 6), | 156 AddRenderPass(&delegated_render_passes, RenderPassId(9, 6), |
161 gfx::Rect(6, 6, 6, 6), gfx::Transform(1, 0, 0, 1, 5, 6)); | 157 gfx::Rect(6, 6, 6, 6), gfx::Transform(1, 0, 0, 1, 5, 6)); |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 SolidColorLayerImpl::Create(host_impl_->pending_tree(), 1); | 217 SolidColorLayerImpl::Create(host_impl_->pending_tree(), 1); |
222 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 218 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
223 FakeDelegatedRendererLayerImpl::Create(host_impl_->pending_tree(), 2); | 219 FakeDelegatedRendererLayerImpl::Create(host_impl_->pending_tree(), 2); |
224 | 220 |
225 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 221 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
226 root_layer->SetBounds(gfx::Size(100, 100)); | 222 root_layer->SetBounds(gfx::Size(100, 100)); |
227 root_layer->SetHasRenderSurface(true); | 223 root_layer->SetHasRenderSurface(true); |
228 | 224 |
229 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); | 225 delegated_renderer_layer->SetPosition(gfx::Point(3, 3)); |
230 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); | 226 delegated_renderer_layer->SetBounds(gfx::Size(10, 10)); |
231 delegated_renderer_layer->SetContentBounds(gfx::Size(10, 10)); | |
232 delegated_renderer_layer->SetDrawsContent(true); | 227 delegated_renderer_layer->SetDrawsContent(true); |
233 delegated_renderer_layer->SetHasRenderSurface(true); | 228 delegated_renderer_layer->SetHasRenderSurface(true); |
234 gfx::Transform transform; | 229 gfx::Transform transform; |
235 transform.Translate(1.0, 1.0); | 230 transform.Translate(1.0, 1.0); |
236 delegated_renderer_layer->SetTransform(transform); | 231 delegated_renderer_layer->SetTransform(transform); |
237 | 232 |
238 RenderPassList delegated_render_passes; | 233 RenderPassList delegated_render_passes; |
239 TestRenderPass* pass1 = | 234 TestRenderPass* pass1 = |
240 AddRenderPass(&delegated_render_passes, RenderPassId(9, 6), | 235 AddRenderPass(&delegated_render_passes, RenderPassId(9, 6), |
241 gfx::Rect(6, 6, 6, 6), gfx::Transform(1, 0, 0, 1, 5, 6)); | 236 gfx::Rect(6, 6, 6, 6), gfx::Transform(1, 0, 0, 1, 5, 6)); |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
626 host_impl_->active_tree(), 1); | 621 host_impl_->active_tree(), 1); |
627 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 622 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
628 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); | 623 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); |
629 | 624 |
630 host_impl_->SetViewportSize(gfx::Size(200, 200)); | 625 host_impl_->SetViewportSize(gfx::Size(200, 200)); |
631 root_layer->SetBounds(gfx::Size(100, 100)); | 626 root_layer->SetBounds(gfx::Size(100, 100)); |
632 root_layer->SetHasRenderSurface(true); | 627 root_layer->SetHasRenderSurface(true); |
633 | 628 |
634 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); | 629 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); |
635 delegated_renderer_layer->SetBounds(gfx::Size(75, 75)); | 630 delegated_renderer_layer->SetBounds(gfx::Size(75, 75)); |
636 delegated_renderer_layer->SetContentBounds(gfx::Size(75, 75)); | |
637 delegated_renderer_layer->SetDrawsContent(true); | 631 delegated_renderer_layer->SetDrawsContent(true); |
638 gfx::Transform transform; | 632 gfx::Transform transform; |
639 transform.Scale(2.0, 2.0); | 633 transform.Scale(2.0, 2.0); |
640 transform.Translate(8.0, 8.0); | 634 transform.Translate(8.0, 8.0); |
641 delegated_renderer_layer->SetTransform(transform); | 635 delegated_renderer_layer->SetTransform(transform); |
642 | 636 |
643 RenderPassList delegated_render_passes; | 637 RenderPassList delegated_render_passes; |
644 | 638 |
645 gfx::Size child_pass_bounds(7, 7); | 639 gfx::Size child_pass_bounds(7, 7); |
646 gfx::Rect child_pass_rect(20, 20, 7, 7); | 640 gfx::Rect child_pass_rect(20, 20, 7, 7); |
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1059 LayerImpl::Create(host_impl_->active_tree(), 3); | 1053 LayerImpl::Create(host_impl_->active_tree(), 3); |
1060 scoped_ptr<LayerImpl> origin_layer = | 1054 scoped_ptr<LayerImpl> origin_layer = |
1061 LayerImpl::Create(host_impl_->active_tree(), 4); | 1055 LayerImpl::Create(host_impl_->active_tree(), 4); |
1062 | 1056 |
1063 host_impl_->SetViewportSize(gfx::Size(100, 100)); | 1057 host_impl_->SetViewportSize(gfx::Size(100, 100)); |
1064 root_layer->SetBounds(gfx::Size(100, 100)); | 1058 root_layer->SetBounds(gfx::Size(100, 100)); |
1065 root_layer->SetHasRenderSurface(true); | 1059 root_layer->SetHasRenderSurface(true); |
1066 | 1060 |
1067 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); | 1061 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); |
1068 delegated_renderer_layer->SetBounds(gfx::Size(50, 50)); | 1062 delegated_renderer_layer->SetBounds(gfx::Size(50, 50)); |
1069 delegated_renderer_layer->SetContentBounds(gfx::Size(50, 50)); | |
1070 delegated_renderer_layer->SetDrawsContent(true); | 1063 delegated_renderer_layer->SetDrawsContent(true); |
1071 | 1064 |
1072 RenderPassList delegated_render_passes; | 1065 RenderPassList delegated_render_passes; |
1073 | 1066 |
1074 gfx::Size child_pass_bounds(7, 7); | 1067 gfx::Size child_pass_bounds(7, 7); |
1075 gfx::Rect child_pass_rect(20, 20, 7, 7); | 1068 gfx::Rect child_pass_rect(20, 20, 7, 7); |
1076 gfx::Transform child_pass_transform; | 1069 gfx::Transform child_pass_transform; |
1077 gfx::Rect child_pass_clip_rect(21, 21, 3, 3); | 1070 gfx::Rect child_pass_clip_rect(21, 21, 3, 3); |
1078 bool child_pass_clipped = false; | 1071 bool child_pass_clipped = false; |
1079 | 1072 |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1167 1.f, delegated_render_passes); | 1160 1.f, delegated_render_passes); |
1168 | 1161 |
1169 root_layer_ = root_layer.get(); | 1162 root_layer_ = root_layer.get(); |
1170 delegated_renderer_layer_ = delegated_renderer_layer.get(); | 1163 delegated_renderer_layer_ = delegated_renderer_layer.get(); |
1171 | 1164 |
1172 if (clip_delegated_renderer_layer_) { | 1165 if (clip_delegated_renderer_layer_) { |
1173 gfx::Rect clip_rect(21, 27, 23, 21); | 1166 gfx::Rect clip_rect(21, 27, 23, 21); |
1174 | 1167 |
1175 clip_layer->SetPosition(clip_rect.origin()); | 1168 clip_layer->SetPosition(clip_rect.origin()); |
1176 clip_layer->SetBounds(clip_rect.size()); | 1169 clip_layer->SetBounds(clip_rect.size()); |
1177 clip_layer->SetContentBounds(clip_rect.size()); | |
1178 clip_layer->SetMasksToBounds(true); | 1170 clip_layer->SetMasksToBounds(true); |
1179 | 1171 |
1180 origin_layer->SetPosition( | 1172 origin_layer->SetPosition( |
1181 gfx::PointAtOffsetFromOrigin(-clip_rect.OffsetFromOrigin())); | 1173 gfx::PointAtOffsetFromOrigin(-clip_rect.OffsetFromOrigin())); |
1182 | 1174 |
1183 origin_layer->AddChild(delegated_renderer_layer.Pass()); | 1175 origin_layer->AddChild(delegated_renderer_layer.Pass()); |
1184 clip_layer->AddChild(origin_layer.Pass()); | 1176 clip_layer->AddChild(origin_layer.Pass()); |
1185 root_layer->AddChild(clip_layer.Pass()); | 1177 root_layer->AddChild(clip_layer.Pass()); |
1186 } else { | 1178 } else { |
1187 root_layer->AddChild(delegated_renderer_layer.Pass()); | 1179 root_layer->AddChild(delegated_renderer_layer.Pass()); |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1439 gfx::Rect quad_screen_rect(211, 300, 400, 500); | 1431 gfx::Rect quad_screen_rect(211, 300, 400, 500); |
1440 | 1432 |
1441 gfx::Transform transform; | 1433 gfx::Transform transform; |
1442 transform.Translate(211.0, 300.0); | 1434 transform.Translate(211.0, 300.0); |
1443 | 1435 |
1444 LayerTestCommon::LayerImplTest impl; | 1436 LayerTestCommon::LayerImplTest impl; |
1445 | 1437 |
1446 FakeDelegatedRendererLayerImpl* delegated_renderer_layer_impl = | 1438 FakeDelegatedRendererLayerImpl* delegated_renderer_layer_impl = |
1447 impl.AddChildToRoot<FakeDelegatedRendererLayerImpl>(); | 1439 impl.AddChildToRoot<FakeDelegatedRendererLayerImpl>(); |
1448 delegated_renderer_layer_impl->SetBounds(layer_size); | 1440 delegated_renderer_layer_impl->SetBounds(layer_size); |
1449 delegated_renderer_layer_impl->SetContentBounds(layer_size); | |
1450 delegated_renderer_layer_impl->SetDrawsContent(true); | 1441 delegated_renderer_layer_impl->SetDrawsContent(true); |
1451 | 1442 |
1452 // Contributing render pass is offset by a transform and holds a quad that | 1443 // Contributing render pass is offset by a transform and holds a quad that |
1453 // covers it entirely. | 1444 // covers it entirely. |
1454 RenderPassList delegated_render_passes; | 1445 RenderPassList delegated_render_passes; |
1455 // pass2 is just the size of the quad. It contributes to |pass1| with a | 1446 // pass2 is just the size of the quad. It contributes to |pass1| with a |
1456 // translation of (211,300). | 1447 // translation of (211,300). |
1457 RenderPassId pass2_id = | 1448 RenderPassId pass2_id = |
1458 delegated_renderer_layer_impl->FirstContributingRenderPassId(); | 1449 delegated_renderer_layer_impl->FirstContributingRenderPassId(); |
1459 TestRenderPass* pass2 = AddRenderPass(&delegated_render_passes, | 1450 TestRenderPass* pass2 = AddRenderPass(&delegated_render_passes, |
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1607 gfx::Rect quad_screen_rect(211, 300, 400, 500); | 1598 gfx::Rect quad_screen_rect(211, 300, 400, 500); |
1608 | 1599 |
1609 gfx::Transform transform; | 1600 gfx::Transform transform; |
1610 transform.Translate(211.f, 300.f); | 1601 transform.Translate(211.f, 300.f); |
1611 | 1602 |
1612 LayerTestCommon::LayerImplTest impl; | 1603 LayerTestCommon::LayerImplTest impl; |
1613 | 1604 |
1614 FakeDelegatedRendererLayerImpl* delegated_renderer_layer_impl = | 1605 FakeDelegatedRendererLayerImpl* delegated_renderer_layer_impl = |
1615 impl.AddChildToRoot<FakeDelegatedRendererLayerImpl>(); | 1606 impl.AddChildToRoot<FakeDelegatedRendererLayerImpl>(); |
1616 delegated_renderer_layer_impl->SetBounds(layer_size); | 1607 delegated_renderer_layer_impl->SetBounds(layer_size); |
1617 delegated_renderer_layer_impl->SetContentBounds(layer_size); | |
1618 delegated_renderer_layer_impl->SetDrawsContent(true); | 1608 delegated_renderer_layer_impl->SetDrawsContent(true); |
1619 | 1609 |
1620 // Contributing render pass is offset by a transform and holds a quad that | 1610 // Contributing render pass is offset by a transform and holds a quad that |
1621 // covers it entirely. | 1611 // covers it entirely. |
1622 RenderPassList delegated_render_passes; | 1612 RenderPassList delegated_render_passes; |
1623 // pass2 is just the size of the quad. It contributes to |pass1| with a | 1613 // pass2 is just the size of the quad. It contributes to |pass1| with a |
1624 // translation of (211,300). | 1614 // translation of (211,300). |
1625 RenderPassId pass2_id = | 1615 RenderPassId pass2_id = |
1626 delegated_renderer_layer_impl->FirstContributingRenderPassId(); | 1616 delegated_renderer_layer_impl->FirstContributingRenderPassId(); |
1627 TestRenderPass* pass2 = | 1617 TestRenderPass* pass2 = |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1665 } | 1655 } |
1666 } | 1656 } |
1667 } | 1657 } |
1668 | 1658 |
1669 TEST_F(DelegatedRendererLayerImplTest, PushPropertiesTo) { | 1659 TEST_F(DelegatedRendererLayerImplTest, PushPropertiesTo) { |
1670 gfx::Size layer_size(1000, 1000); | 1660 gfx::Size layer_size(1000, 1000); |
1671 | 1661 |
1672 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer_impl = | 1662 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer_impl = |
1673 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 5); | 1663 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 5); |
1674 delegated_renderer_layer_impl->SetBounds(layer_size); | 1664 delegated_renderer_layer_impl->SetBounds(layer_size); |
1675 delegated_renderer_layer_impl->SetContentBounds(layer_size); | |
1676 delegated_renderer_layer_impl->SetDrawsContent(true); | 1665 delegated_renderer_layer_impl->SetDrawsContent(true); |
1677 | 1666 |
1678 RenderPassList delegated_render_passes; | 1667 RenderPassList delegated_render_passes; |
1679 // |pass1| covers the whole layer. | 1668 // |pass1| covers the whole layer. |
1680 RenderPassId pass1_id = RenderPassId(5, 0); | 1669 RenderPassId pass1_id = RenderPassId(5, 0); |
1681 AddRenderPass(&delegated_render_passes, | 1670 AddRenderPass(&delegated_render_passes, |
1682 pass1_id, | 1671 pass1_id, |
1683 gfx::Rect(layer_size), | 1672 gfx::Rect(layer_size), |
1684 gfx::Transform()); | 1673 gfx::Transform()); |
1685 delegated_renderer_layer_impl->SetFrameDataForRenderPasses( | 1674 delegated_renderer_layer_impl->SetFrameDataForRenderPasses( |
1686 2.f, delegated_render_passes); | 1675 2.f, delegated_render_passes); |
1687 EXPECT_EQ(0.5f, delegated_renderer_layer_impl->inverse_device_scale_factor()); | 1676 EXPECT_EQ(0.5f, delegated_renderer_layer_impl->inverse_device_scale_factor()); |
1688 | 1677 |
1689 scoped_ptr<DelegatedRendererLayerImpl> other_layer = | 1678 scoped_ptr<DelegatedRendererLayerImpl> other_layer = |
1690 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); | 1679 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); |
1691 | 1680 |
1692 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); | 1681 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); |
1693 | 1682 |
1694 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); | 1683 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); |
1695 } | 1684 } |
1696 | 1685 |
1697 } // namespace | 1686 } // namespace |
1698 } // namespace cc | 1687 } // namespace cc |
OLD | NEW |