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/layers/solid_color_layer_impl.h" | 7 #include "cc/layers/solid_color_layer_impl.h" |
8 #include "cc/quads/render_pass_draw_quad.h" | 8 #include "cc/quads/render_pass_draw_quad.h" |
9 #include "cc/quads/solid_color_draw_quad.h" | 9 #include "cc/quads/solid_color_draw_quad.h" |
10 #include "cc/test/fake_delegated_renderer_layer_impl.h" | 10 #include "cc/test/fake_delegated_renderer_layer_impl.h" |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
111 delegated_renderer_layer->SetFrameDataForRenderPasses( | 111 delegated_renderer_layer->SetFrameDataForRenderPasses( |
112 1.f, delegated_render_passes); | 112 1.f, delegated_render_passes); |
113 | 113 |
114 root_layer_ = root_layer.get(); | 114 root_layer_ = root_layer.get(); |
115 layer_before_ = layer_before.get(); | 115 layer_before_ = layer_before.get(); |
116 layer_after_ = layer_after.get(); | 116 layer_after_ = layer_after.get(); |
117 delegated_renderer_layer_ = delegated_renderer_layer.get(); | 117 delegated_renderer_layer_ = delegated_renderer_layer.get(); |
118 | 118 |
119 // Force the delegated RenderPasses to come before the RenderPass from | 119 // Force the delegated RenderPasses to come before the RenderPass from |
120 // layer_after. | 120 // layer_after. |
121 layer_after->AddChild(delegated_renderer_layer.Pass()); | 121 layer_after->AddChild(std::move(delegated_renderer_layer)); |
122 root_layer->AddChild(layer_after.Pass()); | 122 root_layer->AddChild(std::move(layer_after)); |
123 | 123 |
124 // Get the RenderPass generated by layer_before to come before the delegated | 124 // Get the RenderPass generated by layer_before to come before the delegated |
125 // RenderPasses. | 125 // RenderPasses. |
126 root_layer->AddChild(layer_before.Pass()); | 126 root_layer->AddChild(std::move(layer_before)); |
127 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); | 127 host_impl_->active_tree()->SetRootLayer(std::move(root_layer)); |
128 } | 128 } |
129 | 129 |
130 protected: | 130 protected: |
131 LayerImpl* root_layer_; | 131 LayerImpl* root_layer_; |
132 LayerImpl* layer_before_; | 132 LayerImpl* layer_before_; |
133 LayerImpl* layer_after_; | 133 LayerImpl* layer_after_; |
134 DelegatedRendererLayerImpl* delegated_renderer_layer_; | 134 DelegatedRendererLayerImpl* delegated_renderer_layer_; |
135 }; | 135 }; |
136 | 136 |
137 TEST_F(DelegatedRendererLayerImplTest, | 137 TEST_F(DelegatedRendererLayerImplTest, |
(...skipping 29 matching lines...) Expand all Loading... |
167 AddRenderPassQuad(pass2, pass1); | 167 AddRenderPassQuad(pass2, pass1); |
168 RenderPass* pass3 = | 168 RenderPass* pass3 = |
169 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8), | 169 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8), |
170 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10)); | 170 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10)); |
171 AddRenderPassQuad(pass3, pass2); | 171 AddRenderPassQuad(pass3, pass2); |
172 delegated_renderer_layer->SetFrameDataForRenderPasses( | 172 delegated_renderer_layer->SetFrameDataForRenderPasses( |
173 1.f, delegated_render_passes); | 173 1.f, delegated_render_passes); |
174 | 174 |
175 fake_delegated_renderer_layer_impl = delegated_renderer_layer.get(); | 175 fake_delegated_renderer_layer_impl = delegated_renderer_layer.get(); |
176 | 176 |
177 root_layer->AddChild(delegated_renderer_layer.Pass()); | 177 root_layer->AddChild(std::move(delegated_renderer_layer)); |
178 | 178 |
179 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); | 179 host_impl_->active_tree()->SetRootLayer(std::move(root_layer)); |
180 | 180 |
181 LayerTreeHostImpl::FrameData frame; | 181 LayerTreeHostImpl::FrameData frame; |
182 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 182 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
183 | 183 |
184 // Root layer has one render pass, and delegated renderer layer has two | 184 // Root layer has one render pass, and delegated renderer layer has two |
185 // contributing render passes and its own render pass. | 185 // contributing render passes and its own render pass. |
186 ASSERT_EQ(4u, frame.render_passes.size()); | 186 ASSERT_EQ(4u, frame.render_passes.size()); |
187 | 187 |
188 host_impl_->DrawLayers(&frame); | 188 host_impl_->DrawLayers(&frame); |
189 host_impl_->DidDrawAllLayers(frame); | 189 host_impl_->DidDrawAllLayers(frame); |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
246 AddRenderPassQuad(pass2, pass1); | 246 AddRenderPassQuad(pass2, pass1); |
247 RenderPass* pass3 = | 247 RenderPass* pass3 = |
248 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8), | 248 AddRenderPass(&delegated_render_passes, RenderPassId(9, 8), |
249 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10)); | 249 gfx::Rect(0, 0, 8, 8), gfx::Transform(1, 0, 0, 1, 9, 10)); |
250 AddRenderPassQuad(pass3, pass2); | 250 AddRenderPassQuad(pass3, pass2); |
251 delegated_renderer_layer->SetFrameDataForRenderPasses( | 251 delegated_renderer_layer->SetFrameDataForRenderPasses( |
252 1.f, delegated_render_passes); | 252 1.f, delegated_render_passes); |
253 | 253 |
254 fake_delegated_renderer_layer_impl = delegated_renderer_layer.get(); | 254 fake_delegated_renderer_layer_impl = delegated_renderer_layer.get(); |
255 | 255 |
256 root_layer->AddChild(delegated_renderer_layer.Pass()); | 256 root_layer->AddChild(std::move(delegated_renderer_layer)); |
257 | 257 |
258 host_impl_->pending_tree()->SetRootLayer(root_layer.Pass()); | 258 host_impl_->pending_tree()->SetRootLayer(std::move(root_layer)); |
259 host_impl_->ActivateSyncTree(); | 259 host_impl_->ActivateSyncTree(); |
260 | 260 |
261 LayerTreeHostImpl::FrameData frame; | 261 LayerTreeHostImpl::FrameData frame; |
262 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); | 262 EXPECT_EQ(DRAW_SUCCESS, PrepareToDrawFrame(&frame)); |
263 | 263 |
264 // Root layer has one render pass, and delegated renderer layer has two | 264 // Root layer has one render pass, and delegated renderer layer has two |
265 // contributing render passes and its own render pass. | 265 // contributing render passes and its own render pass. |
266 ASSERT_EQ(4u, frame.render_passes.size()); | 266 ASSERT_EQ(4u, frame.render_passes.size()); |
267 | 267 |
268 host_impl_->DrawLayers(&frame); | 268 host_impl_->DrawLayers(&frame); |
(...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
733 gfx::Rect(10, 10, 10, 10), | 733 gfx::Rect(10, 10, 10, 10), |
734 4u, | 734 4u, |
735 false); | 735 false); |
736 | 736 |
737 delegated_renderer_layer->SetFrameDataForRenderPasses( | 737 delegated_renderer_layer->SetFrameDataForRenderPasses( |
738 delegated_device_scale_factor_, delegated_render_passes); | 738 delegated_device_scale_factor_, delegated_render_passes); |
739 | 739 |
740 root_layer_ = root_layer.get(); | 740 root_layer_ = root_layer.get(); |
741 delegated_renderer_layer_ = delegated_renderer_layer.get(); | 741 delegated_renderer_layer_ = delegated_renderer_layer.get(); |
742 | 742 |
743 root_layer->AddChild(delegated_renderer_layer.Pass()); | 743 root_layer->AddChild(std::move(delegated_renderer_layer)); |
744 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); | 744 host_impl_->active_tree()->SetRootLayer(std::move(root_layer)); |
745 } | 745 } |
746 | 746 |
747 void VerifyRenderPasses( | 747 void VerifyRenderPasses( |
748 const LayerTreeHostImpl::FrameData& frame, | 748 const LayerTreeHostImpl::FrameData& frame, |
749 size_t num_render_passes, | 749 size_t num_render_passes, |
750 const SharedQuadState** root_delegated_shared_quad_state, | 750 const SharedQuadState** root_delegated_shared_quad_state, |
751 const SharedQuadState** contrib_delegated_shared_quad_state) { | 751 const SharedQuadState** contrib_delegated_shared_quad_state) { |
752 ASSERT_EQ(num_render_passes, frame.render_passes.size()); | 752 ASSERT_EQ(num_render_passes, frame.render_passes.size()); |
753 // The contributing render pass in the DelegatedRendererLayer. | 753 // The contributing render pass in the DelegatedRendererLayer. |
754 EXPECT_EQ(2, frame.render_passes[0]->id.layer_id); | 754 EXPECT_EQ(2, frame.render_passes[0]->id.layer_id); |
(...skipping 407 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1162 gfx::PointF clip_origin(21.f, 27.f); | 1162 gfx::PointF clip_origin(21.f, 27.f); |
1163 gfx::Size clip_size(23, 21); | 1163 gfx::Size clip_size(23, 21); |
1164 | 1164 |
1165 clip_layer->SetPosition(clip_origin); | 1165 clip_layer->SetPosition(clip_origin); |
1166 clip_layer->SetBounds(clip_size); | 1166 clip_layer->SetBounds(clip_size); |
1167 clip_layer->SetMasksToBounds(true); | 1167 clip_layer->SetMasksToBounds(true); |
1168 | 1168 |
1169 origin_layer->SetPosition( | 1169 origin_layer->SetPosition( |
1170 gfx::PointF(-clip_origin.x(), -clip_origin.y())); | 1170 gfx::PointF(-clip_origin.x(), -clip_origin.y())); |
1171 | 1171 |
1172 origin_layer->AddChild(delegated_renderer_layer.Pass()); | 1172 origin_layer->AddChild(std::move(delegated_renderer_layer)); |
1173 clip_layer->AddChild(origin_layer.Pass()); | 1173 clip_layer->AddChild(std::move(origin_layer)); |
1174 root_layer->AddChild(clip_layer.Pass()); | 1174 root_layer->AddChild(std::move(clip_layer)); |
1175 } else { | 1175 } else { |
1176 root_layer->AddChild(delegated_renderer_layer.Pass()); | 1176 root_layer->AddChild(std::move(delegated_renderer_layer)); |
1177 } | 1177 } |
1178 | 1178 |
1179 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); | 1179 host_impl_->active_tree()->SetRootLayer(std::move(root_layer)); |
1180 } | 1180 } |
1181 | 1181 |
1182 protected: | 1182 protected: |
1183 LayerImpl* root_layer_; | 1183 LayerImpl* root_layer_; |
1184 DelegatedRendererLayerImpl* delegated_renderer_layer_; | 1184 DelegatedRendererLayerImpl* delegated_renderer_layer_; |
1185 bool root_delegated_render_pass_is_clipped_; | 1185 bool root_delegated_render_pass_is_clipped_; |
1186 bool clip_delegated_renderer_layer_; | 1186 bool clip_delegated_renderer_layer_; |
1187 }; | 1187 }; |
1188 | 1188 |
1189 TEST_F(DelegatedRendererLayerImplTestClip, | 1189 TEST_F(DelegatedRendererLayerImplTestClip, |
(...skipping 485 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1675 scoped_ptr<DelegatedRendererLayerImpl> other_layer = | 1675 scoped_ptr<DelegatedRendererLayerImpl> other_layer = |
1676 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); | 1676 DelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 6); |
1677 | 1677 |
1678 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); | 1678 delegated_renderer_layer_impl->PushPropertiesTo(other_layer.get()); |
1679 | 1679 |
1680 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); | 1680 EXPECT_EQ(0.5f, other_layer->inverse_device_scale_factor()); |
1681 } | 1681 } |
1682 | 1682 |
1683 } // namespace | 1683 } // namespace |
1684 } // namespace cc | 1684 } // namespace cc |
OLD | NEW |