| 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/delegated_renderer_layer_impl.h" | 5 #include "cc/delegated_renderer_layer_impl.h" |
| 6 | 6 |
| 7 #include "cc/append_quads_data.h" | 7 #include "cc/append_quads_data.h" |
| 8 #include "cc/layer_tree_host_impl.h" | 8 #include "cc/layer_tree_host_impl.h" |
| 9 #include "cc/layer_tree_impl.h" | 9 #include "cc/layer_tree_impl.h" |
| 10 #include "cc/quad_sink.h" | 10 #include "cc/quad_sink.h" |
| (...skipping 19 matching lines...) Expand all Loading... |
| 30 namespace { | 30 namespace { |
| 31 | 31 |
| 32 class DelegatedRendererLayerImplTest : public testing::Test { | 32 class DelegatedRendererLayerImplTest : public testing::Test { |
| 33 public: | 33 public: |
| 34 DelegatedRendererLayerImplTest() | 34 DelegatedRendererLayerImplTest() |
| 35 : proxy_(scoped_ptr<Thread>(NULL)) | 35 : proxy_(scoped_ptr<Thread>(NULL)) |
| 36 , always_impl_thread_and_main_thread_blocked_(&proxy_) { | 36 , always_impl_thread_and_main_thread_blocked_(&proxy_) { |
| 37 LayerTreeSettings settings; | 37 LayerTreeSettings settings; |
| 38 settings.minimumOcclusionTrackingSize = gfx::Size(); | 38 settings.minimumOcclusionTrackingSize = gfx::Size(); |
| 39 | 39 |
| 40 host_impl_ = LayerTreeHostImpl::create(settings, &client_, &proxy_); | 40 host_impl_ = LayerTreeHostImpl::Create(settings, &client_, &proxy_); |
| 41 host_impl_->initializeRenderer(createFakeOutputSurface()); | 41 host_impl_->InitializeRenderer(createFakeOutputSurface()); |
| 42 host_impl_->setViewportSize(gfx::Size(10, 10), gfx::Size(10, 10)); | 42 host_impl_->SetViewportSize(gfx::Size(10, 10), gfx::Size(10, 10)); |
| 43 } | 43 } |
| 44 | 44 |
| 45 protected: | 45 protected: |
| 46 FakeProxy proxy_; | 46 FakeProxy proxy_; |
| 47 FakeLayerTreeHostImplClient client_; | 47 FakeLayerTreeHostImplClient client_; |
| 48 DebugScopedSetImplThreadAndMainThreadBlocked | 48 DebugScopedSetImplThreadAndMainThreadBlocked |
| 49 always_impl_thread_and_main_thread_blocked_; | 49 always_impl_thread_and_main_thread_blocked_; |
| 50 scoped_ptr<LayerTreeHostImpl> host_impl_; | 50 scoped_ptr<LayerTreeHostImpl> host_impl_; |
| 51 }; | 51 }; |
| 52 | 52 |
| 53 class DelegatedRendererLayerImplTestSimple | 53 class DelegatedRendererLayerImplTestSimple |
| 54 : public DelegatedRendererLayerImplTest { | 54 : public DelegatedRendererLayerImplTest { |
| 55 public: | 55 public: |
| 56 DelegatedRendererLayerImplTestSimple() | 56 DelegatedRendererLayerImplTestSimple() |
| 57 : DelegatedRendererLayerImplTest() { | 57 : DelegatedRendererLayerImplTest() { |
| 58 scoped_ptr<LayerImpl> root_layer = SolidColorLayerImpl::Create( | 58 scoped_ptr<LayerImpl> root_layer = SolidColorLayerImpl::Create( |
| 59 host_impl_->activeTree(), 1).PassAs<LayerImpl>(); | 59 host_impl_->active_tree(), 1).PassAs<LayerImpl>(); |
| 60 scoped_ptr<LayerImpl> layer_before = SolidColorLayerImpl::Create( | 60 scoped_ptr<LayerImpl> layer_before = SolidColorLayerImpl::Create( |
| 61 host_impl_->activeTree(), 2).PassAs<LayerImpl>(); | 61 host_impl_->active_tree(), 2).PassAs<LayerImpl>(); |
| 62 scoped_ptr<LayerImpl> layer_after = SolidColorLayerImpl::Create( | 62 scoped_ptr<LayerImpl> layer_after = SolidColorLayerImpl::Create( |
| 63 host_impl_->activeTree(), 3).PassAs<LayerImpl>(); | 63 host_impl_->active_tree(), 3).PassAs<LayerImpl>(); |
| 64 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 64 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
| 65 FakeDelegatedRendererLayerImpl::Create(host_impl_->activeTree(), 4); | 65 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 4); |
| 66 | 66 |
| 67 host_impl_->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); | 67 host_impl_->SetViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); |
| 68 root_layer->SetBounds(gfx::Size(100, 100)); | 68 root_layer->SetBounds(gfx::Size(100, 100)); |
| 69 | 69 |
| 70 layer_before->SetPosition(gfx::Point(20, 20)); | 70 layer_before->SetPosition(gfx::Point(20, 20)); |
| 71 layer_before->SetBounds(gfx::Size(14, 14)); | 71 layer_before->SetBounds(gfx::Size(14, 14)); |
| 72 layer_before->SetContentBounds(gfx::Size(14, 14)); | 72 layer_before->SetContentBounds(gfx::Size(14, 14)); |
| 73 layer_before->SetDrawsContent(true); | 73 layer_before->SetDrawsContent(true); |
| 74 layer_before->SetForceRenderSurface(true); | 74 layer_before->SetForceRenderSurface(true); |
| 75 | 75 |
| 76 layer_after->SetPosition(gfx::Point(5, 5)); | 76 layer_after->SetPosition(gfx::Point(5, 5)); |
| 77 layer_after->SetBounds(gfx::Size(15, 15)); | 77 layer_after->SetBounds(gfx::Size(15, 15)); |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 119 delegated_renderer_layer_ = delegated_renderer_layer.get(); | 119 delegated_renderer_layer_ = delegated_renderer_layer.get(); |
| 120 | 120 |
| 121 // Force the delegated RenderPasses to come before the RenderPass from | 121 // Force the delegated RenderPasses to come before the RenderPass from |
| 122 // layer_after. | 122 // layer_after. |
| 123 layer_after->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); | 123 layer_after->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); |
| 124 root_layer->AddChild(layer_after.Pass()); | 124 root_layer->AddChild(layer_after.Pass()); |
| 125 | 125 |
| 126 // Get the RenderPass generated by layer_before to come before the delegated | 126 // Get the RenderPass generated by layer_before to come before the delegated |
| 127 // RenderPasses. | 127 // RenderPasses. |
| 128 root_layer->AddChild(layer_before.Pass()); | 128 root_layer->AddChild(layer_before.Pass()); |
| 129 host_impl_->activeTree()->SetRootLayer(root_layer.Pass()); | 129 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); |
| 130 } | 130 } |
| 131 | 131 |
| 132 protected: | 132 protected: |
| 133 LayerImpl* root_layer_; | 133 LayerImpl* root_layer_; |
| 134 LayerImpl* layer_before_; | 134 LayerImpl* layer_before_; |
| 135 LayerImpl* layer_after_; | 135 LayerImpl* layer_after_; |
| 136 DelegatedRendererLayerImpl* delegated_renderer_layer_; | 136 DelegatedRendererLayerImpl* delegated_renderer_layer_; |
| 137 }; | 137 }; |
| 138 | 138 |
| 139 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { | 139 TEST_F(DelegatedRendererLayerImplTestSimple, AddsContributingRenderPasses) { |
| 140 LayerTreeHostImpl::FrameData frame; | 140 LayerTreeHostImpl::FrameData frame; |
| 141 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 141 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 142 | 142 |
| 143 // Each non-DelegatedRendererLayer added one RenderPass. The | 143 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 144 // DelegatedRendererLayer added two contributing passes. | 144 // DelegatedRendererLayer added two contributing passes. |
| 145 ASSERT_EQ(5u, frame.renderPasses.size()); | 145 ASSERT_EQ(5u, frame.render_passes.size()); |
| 146 | 146 |
| 147 // The DelegatedRendererLayer should have added its contributing RenderPasses | 147 // The DelegatedRendererLayer should have added its contributing RenderPasses |
| 148 // to the frame. | 148 // to the frame. |
| 149 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id); | 149 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); |
| 150 EXPECT_EQ(1, frame.renderPasses[1]->id.index); | 150 EXPECT_EQ(1, frame.render_passes[1]->id.index); |
| 151 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id); | 151 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); |
| 152 EXPECT_EQ(2, frame.renderPasses[2]->id.index); | 152 EXPECT_EQ(2, frame.render_passes[2]->id.index); |
| 153 // And all other RenderPasses should be non-delegated. | 153 // And all other RenderPasses should be non-delegated. |
| 154 EXPECT_NE(4, frame.renderPasses[0]->id.layer_id); | 154 EXPECT_NE(4, frame.render_passes[0]->id.layer_id); |
| 155 EXPECT_EQ(0, frame.renderPasses[0]->id.index); | 155 EXPECT_EQ(0, frame.render_passes[0]->id.index); |
| 156 EXPECT_NE(4, frame.renderPasses[3]->id.layer_id); | 156 EXPECT_NE(4, frame.render_passes[3]->id.layer_id); |
| 157 EXPECT_EQ(0, frame.renderPasses[3]->id.index); | 157 EXPECT_EQ(0, frame.render_passes[3]->id.index); |
| 158 EXPECT_NE(4, frame.renderPasses[4]->id.layer_id); | 158 EXPECT_NE(4, frame.render_passes[4]->id.layer_id); |
| 159 EXPECT_EQ(0, frame.renderPasses[4]->id.index); | 159 EXPECT_EQ(0, frame.render_passes[4]->id.index); |
| 160 | 160 |
| 161 // The DelegatedRendererLayer should have added its RenderPasses to the frame | 161 // The DelegatedRendererLayer should have added its RenderPasses to the frame |
| 162 // in order. | 162 // in order. |
| 163 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), | 163 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), |
| 164 frame.renderPasses[1]->output_rect.ToString()); | 164 frame.render_passes[1]->output_rect.ToString()); |
| 165 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), | 165 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), |
| 166 frame.renderPasses[2]->output_rect.ToString()); | 166 frame.render_passes[2]->output_rect.ToString()); |
| 167 | 167 |
| 168 host_impl_->drawLayers(frame); | 168 host_impl_->DrawLayers(&frame); |
| 169 host_impl_->didDrawAllLayers(frame); | 169 host_impl_->DidDrawAllLayers(frame); |
| 170 } | 170 } |
| 171 | 171 |
| 172 TEST_F(DelegatedRendererLayerImplTestSimple, | 172 TEST_F(DelegatedRendererLayerImplTestSimple, |
| 173 AddsQuadsToContributingRenderPasses) { | 173 AddsQuadsToContributingRenderPasses) { |
| 174 LayerTreeHostImpl::FrameData frame; | 174 LayerTreeHostImpl::FrameData frame; |
| 175 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 175 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 176 | 176 |
| 177 // Each non-DelegatedRendererLayer added one RenderPass. The | 177 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 178 // DelegatedRendererLayer added two contributing passes. | 178 // DelegatedRendererLayer added two contributing passes. |
| 179 ASSERT_EQ(5u, frame.renderPasses.size()); | 179 ASSERT_EQ(5u, frame.render_passes.size()); |
| 180 | 180 |
| 181 // The DelegatedRendererLayer should have added its contributing RenderPasses | 181 // The DelegatedRendererLayer should have added its contributing RenderPasses |
| 182 // to the frame. | 182 // to the frame. |
| 183 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id); | 183 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); |
| 184 EXPECT_EQ(1, frame.renderPasses[1]->id.index); | 184 EXPECT_EQ(1, frame.render_passes[1]->id.index); |
| 185 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id); | 185 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); |
| 186 EXPECT_EQ(2, frame.renderPasses[2]->id.index); | 186 EXPECT_EQ(2, frame.render_passes[2]->id.index); |
| 187 | 187 |
| 188 // The DelegatedRendererLayer should have added copies of its quads to | 188 // The DelegatedRendererLayer should have added copies of its quads to |
| 189 // contributing RenderPasses. | 189 // contributing RenderPasses. |
| 190 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); | 190 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); |
| 191 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), | 191 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), |
| 192 frame.renderPasses[1]->quad_list[0]->rect.ToString()); | 192 frame.render_passes[1]->quad_list[0]->rect.ToString()); |
| 193 | 193 |
| 194 // Verify it added the right quads. | 194 // Verify it added the right quads. |
| 195 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); | 195 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); |
| 196 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), | 196 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), |
| 197 frame.renderPasses[2]->quad_list[0]->rect.ToString()); | 197 frame.render_passes[2]->quad_list[0]->rect.ToString()); |
| 198 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), | 198 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), |
| 199 frame.renderPasses[2]->quad_list[1]->rect.ToString()); | 199 frame.render_passes[2]->quad_list[1]->rect.ToString()); |
| 200 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); | 200 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); |
| 201 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), | 201 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), |
| 202 frame.renderPasses[1]->quad_list[0]->rect.ToString()); | 202 frame.render_passes[1]->quad_list[0]->rect.ToString()); |
| 203 | 203 |
| 204 host_impl_->drawLayers(frame); | 204 host_impl_->DrawLayers(&frame); |
| 205 host_impl_->didDrawAllLayers(frame); | 205 host_impl_->DidDrawAllLayers(frame); |
| 206 } | 206 } |
| 207 | 207 |
| 208 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { | 208 TEST_F(DelegatedRendererLayerImplTestSimple, AddsQuadsToTargetRenderPass) { |
| 209 LayerTreeHostImpl::FrameData frame; | 209 LayerTreeHostImpl::FrameData frame; |
| 210 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 210 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 211 | 211 |
| 212 // Each non-DelegatedRendererLayer added one RenderPass. The | 212 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 213 // DelegatedRendererLayer added two contributing passes. | 213 // DelegatedRendererLayer added two contributing passes. |
| 214 ASSERT_EQ(5u, frame.renderPasses.size()); | 214 ASSERT_EQ(5u, frame.render_passes.size()); |
| 215 | 215 |
| 216 // The layer's target is the RenderPass from m_layer_after. | 216 // The layer's target is the RenderPass from m_layer_after. |
| 217 EXPECT_EQ(RenderPass::Id(3, 0), frame.renderPasses[3]->id); | 217 EXPECT_EQ(RenderPass::Id(3, 0), frame.render_passes[3]->id); |
| 218 | 218 |
| 219 // The DelegatedRendererLayer should have added copies of quads in its root | 219 // The DelegatedRendererLayer should have added copies of quads in its root |
| 220 // RenderPass to its target RenderPass. The m_layer_after also adds one quad. | 220 // RenderPass to its target RenderPass. The m_layer_after also adds one quad. |
| 221 ASSERT_EQ(2u, frame.renderPasses[3]->quad_list.size()); | 221 ASSERT_EQ(2u, frame.render_passes[3]->quad_list.size()); |
| 222 | 222 |
| 223 // Verify it added the right quads. | 223 // Verify it added the right quads. |
| 224 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), | 224 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), |
| 225 frame.renderPasses[3]->quad_list[0]->rect.ToString()); | 225 frame.render_passes[3]->quad_list[0]->rect.ToString()); |
| 226 | 226 |
| 227 // Its target layer should have a quad as well. | 227 // Its target layer should have a quad as well. |
| 228 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), | 228 EXPECT_EQ(gfx::Rect(0, 0, 15, 15).ToString(), |
| 229 frame.renderPasses[3]->quad_list[1]->rect.ToString()); | 229 frame.render_passes[3]->quad_list[1]->rect.ToString()); |
| 230 | 230 |
| 231 host_impl_->drawLayers(frame); | 231 host_impl_->DrawLayers(&frame); |
| 232 host_impl_->didDrawAllLayers(frame); | 232 host_impl_->DidDrawAllLayers(frame); |
| 233 } | 233 } |
| 234 | 234 |
| 235 TEST_F(DelegatedRendererLayerImplTestSimple, | 235 TEST_F(DelegatedRendererLayerImplTestSimple, |
| 236 QuadsFromRootRenderPassAreModifiedForTheTarget) { | 236 QuadsFromRootRenderPassAreModifiedForTheTarget) { |
| 237 LayerTreeHostImpl::FrameData frame; | 237 LayerTreeHostImpl::FrameData frame; |
| 238 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 238 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 239 | 239 |
| 240 // Each non-DelegatedRendererLayer added one RenderPass. The | 240 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 241 // DelegatedRendererLayer added two contributing passes. | 241 // DelegatedRendererLayer added two contributing passes. |
| 242 ASSERT_EQ(5u, frame.renderPasses.size()); | 242 ASSERT_EQ(5u, frame.render_passes.size()); |
| 243 | 243 |
| 244 // The DelegatedRendererLayer is at position 3,3 compared to its target, and | 244 // The DelegatedRendererLayer is at position 3,3 compared to its target, and |
| 245 // has a translation transform of 1,1. So its root RenderPass' quads should | 245 // has a translation transform of 1,1. So its root RenderPass' quads should |
| 246 // all be transformed by that combined amount. | 246 // all be transformed by that combined amount. |
| 247 // The DelegatedRendererLayer has a size of 10x10, but the root delegated | 247 // The DelegatedRendererLayer has a size of 10x10, but the root delegated |
| 248 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8. | 248 // RenderPass has a size of 8x8, so any quads should be scaled by 10/8. |
| 249 gfx::Transform transform; | 249 gfx::Transform transform; |
| 250 transform.Translate(4.0, 4.0); | 250 transform.Translate(4.0, 4.0); |
| 251 transform.Scale(10.0 / 8.0, 10.0 / 8.0); | 251 transform.Scale(10.0 / 8.0, 10.0 / 8.0); |
| 252 EXPECT_TRANSFORMATION_MATRIX_EQ( | 252 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 253 transform, frame.renderPasses[3]->quad_list[0]->quadTransform()); | 253 transform, frame.render_passes[3]->quad_list[0]->quadTransform()); |
| 254 | 254 |
| 255 // Quads from non-root RenderPasses should not be shifted though. | 255 // Quads from non-root RenderPasses should not be shifted though. |
| 256 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); | 256 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); |
| 257 EXPECT_TRANSFORMATION_MATRIX_EQ( | 257 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 258 gfx::Transform(), frame.renderPasses[2]->quad_list[0]->quadTransform()); | 258 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform()); |
| 259 EXPECT_TRANSFORMATION_MATRIX_EQ( | 259 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 260 gfx::Transform(), frame.renderPasses[2]->quad_list[1]->quadTransform()); | 260 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform()); |
| 261 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); | 261 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); |
| 262 EXPECT_TRANSFORMATION_MATRIX_EQ( | 262 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 263 gfx::Transform(), frame.renderPasses[1]->quad_list[0]->quadTransform()); | 263 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); |
| 264 | 264 |
| 265 host_impl_->drawLayers(frame); | 265 host_impl_->DrawLayers(&frame); |
| 266 host_impl_->didDrawAllLayers(frame); | 266 host_impl_->DidDrawAllLayers(frame); |
| 267 } | 267 } |
| 268 | 268 |
| 269 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { | 269 TEST_F(DelegatedRendererLayerImplTestSimple, DoesNotOwnARenderSurface) { |
| 270 LayerTreeHostImpl::FrameData frame; | 270 LayerTreeHostImpl::FrameData frame; |
| 271 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 271 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 272 | 272 |
| 273 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it | 273 // If the DelegatedRendererLayer is axis aligned and has opacity 1, then it |
| 274 // has no need to be a renderSurface for the quads it carries. | 274 // has no need to be a renderSurface for the quads it carries. |
| 275 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); | 275 EXPECT_FALSE(delegated_renderer_layer_->render_surface()); |
| 276 | 276 |
| 277 host_impl_->drawLayers(frame); | 277 host_impl_->DrawLayers(&frame); |
| 278 host_impl_->didDrawAllLayers(frame); | 278 host_impl_->DidDrawAllLayers(frame); |
| 279 } | 279 } |
| 280 | 280 |
| 281 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { | 281 TEST_F(DelegatedRendererLayerImplTestSimple, DoesOwnARenderSurfaceForOpacity) { |
| 282 delegated_renderer_layer_->SetOpacity(0.5f); | 282 delegated_renderer_layer_->SetOpacity(0.5f); |
| 283 | 283 |
| 284 LayerTreeHostImpl::FrameData frame; | 284 LayerTreeHostImpl::FrameData frame; |
| 285 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 285 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 286 | 286 |
| 287 // This test case has quads from multiple layers in the delegated renderer, so | 287 // This test case has quads from multiple layers in the delegated renderer, so |
| 288 // if the DelegatedRendererLayer has opacity < 1, it should end up with a | 288 // if the DelegatedRendererLayer has opacity < 1, it should end up with a |
| 289 // render surface. | 289 // render surface. |
| 290 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); | 290 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); |
| 291 | 291 |
| 292 host_impl_->drawLayers(frame); | 292 host_impl_->DrawLayers(&frame); |
| 293 host_impl_->didDrawAllLayers(frame); | 293 host_impl_->DidDrawAllLayers(frame); |
| 294 } | 294 } |
| 295 | 295 |
| 296 TEST_F(DelegatedRendererLayerImplTestSimple, | 296 TEST_F(DelegatedRendererLayerImplTestSimple, |
| 297 DoesOwnARenderSurfaceForTransform) { | 297 DoesOwnARenderSurfaceForTransform) { |
| 298 gfx::Transform rotation; | 298 gfx::Transform rotation; |
| 299 rotation.RotateAboutZAxis(30.0); | 299 rotation.RotateAboutZAxis(30.0); |
| 300 delegated_renderer_layer_->SetTransform(rotation); | 300 delegated_renderer_layer_->SetTransform(rotation); |
| 301 | 301 |
| 302 LayerTreeHostImpl::FrameData frame; | 302 LayerTreeHostImpl::FrameData frame; |
| 303 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 303 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 304 | 304 |
| 305 // This test case has quads from multiple layers in the delegated renderer, so | 305 // This test case has quads from multiple layers in the delegated renderer, so |
| 306 // if the DelegatedRendererLayer has opacity < 1, it should end up with a | 306 // if the DelegatedRendererLayer has opacity < 1, it should end up with a |
| 307 // render surface. | 307 // render surface. |
| 308 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); | 308 EXPECT_TRUE(delegated_renderer_layer_->render_surface()); |
| 309 | 309 |
| 310 host_impl_->drawLayers(frame); | 310 host_impl_->DrawLayers(&frame); |
| 311 host_impl_->didDrawAllLayers(frame); | 311 host_impl_->DidDrawAllLayers(frame); |
| 312 } | 312 } |
| 313 | 313 |
| 314 class DelegatedRendererLayerImplTestOwnSurface | 314 class DelegatedRendererLayerImplTestOwnSurface |
| 315 : public DelegatedRendererLayerImplTestSimple { | 315 : public DelegatedRendererLayerImplTestSimple { |
| 316 public: | 316 public: |
| 317 DelegatedRendererLayerImplTestOwnSurface() | 317 DelegatedRendererLayerImplTestOwnSurface() |
| 318 : DelegatedRendererLayerImplTestSimple() { | 318 : DelegatedRendererLayerImplTestSimple() { |
| 319 delegated_renderer_layer_->SetForceRenderSurface(true); | 319 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 320 } | 320 } |
| 321 }; | 321 }; |
| 322 | 322 |
| 323 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { | 323 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsRenderPasses) { |
| 324 LayerTreeHostImpl::FrameData frame; | 324 LayerTreeHostImpl::FrameData frame; |
| 325 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 325 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 326 | 326 |
| 327 // Each non-DelegatedRendererLayer added one RenderPass. The | 327 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 328 // DelegatedRendererLayer added two contributing passes and its owned surface | 328 // DelegatedRendererLayer added two contributing passes and its owned surface |
| 329 // added one pass. | 329 // added one pass. |
| 330 ASSERT_EQ(6u, frame.renderPasses.size()); | 330 ASSERT_EQ(6u, frame.render_passes.size()); |
| 331 | 331 |
| 332 // The DelegatedRendererLayer should have added its contributing RenderPasses | 332 // The DelegatedRendererLayer should have added its contributing RenderPasses |
| 333 // to the frame. | 333 // to the frame. |
| 334 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id); | 334 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); |
| 335 EXPECT_EQ(1, frame.renderPasses[1]->id.index); | 335 EXPECT_EQ(1, frame.render_passes[1]->id.index); |
| 336 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id); | 336 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); |
| 337 EXPECT_EQ(2, frame.renderPasses[2]->id.index); | 337 EXPECT_EQ(2, frame.render_passes[2]->id.index); |
| 338 // The DelegatedRendererLayer should have added a RenderPass for its surface | 338 // The DelegatedRendererLayer should have added a RenderPass for its surface |
| 339 // to the frame. | 339 // to the frame. |
| 340 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id); | 340 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); |
| 341 EXPECT_EQ(0, frame.renderPasses[3]->id.index); | 341 EXPECT_EQ(0, frame.render_passes[3]->id.index); |
| 342 // And all other RenderPasses should be non-delegated. | 342 // And all other RenderPasses should be non-delegated. |
| 343 EXPECT_NE(4, frame.renderPasses[0]->id.layer_id); | 343 EXPECT_NE(4, frame.render_passes[0]->id.layer_id); |
| 344 EXPECT_EQ(0, frame.renderPasses[0]->id.index); | 344 EXPECT_EQ(0, frame.render_passes[0]->id.index); |
| 345 EXPECT_NE(4, frame.renderPasses[4]->id.layer_id); | 345 EXPECT_NE(4, frame.render_passes[4]->id.layer_id); |
| 346 EXPECT_EQ(0, frame.renderPasses[4]->id.index); | 346 EXPECT_EQ(0, frame.render_passes[4]->id.index); |
| 347 EXPECT_NE(4, frame.renderPasses[5]->id.layer_id); | 347 EXPECT_NE(4, frame.render_passes[5]->id.layer_id); |
| 348 EXPECT_EQ(0, frame.renderPasses[5]->id.index); | 348 EXPECT_EQ(0, frame.render_passes[5]->id.index); |
| 349 | 349 |
| 350 // The DelegatedRendererLayer should have added its RenderPasses to the frame | 350 // The DelegatedRendererLayer should have added its RenderPasses to the frame |
| 351 // in order. | 351 // in order. |
| 352 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), | 352 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), |
| 353 frame.renderPasses[1]->output_rect.ToString()); | 353 frame.render_passes[1]->output_rect.ToString()); |
| 354 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), | 354 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), |
| 355 frame.renderPasses[2]->output_rect.ToString()); | 355 frame.render_passes[2]->output_rect.ToString()); |
| 356 | 356 |
| 357 host_impl_->drawLayers(frame); | 357 host_impl_->DrawLayers(&frame); |
| 358 host_impl_->didDrawAllLayers(frame); | 358 host_impl_->DidDrawAllLayers(frame); |
| 359 } | 359 } |
| 360 | 360 |
| 361 TEST_F(DelegatedRendererLayerImplTestOwnSurface, | 361 TEST_F(DelegatedRendererLayerImplTestOwnSurface, |
| 362 AddsQuadsToContributingRenderPasses) { | 362 AddsQuadsToContributingRenderPasses) { |
| 363 LayerTreeHostImpl::FrameData frame; | 363 LayerTreeHostImpl::FrameData frame; |
| 364 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 364 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 365 | 365 |
| 366 // Each non-DelegatedRendererLayer added one RenderPass. The | 366 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 367 // DelegatedRendererLayer added two contributing passes and its owned surface | 367 // DelegatedRendererLayer added two contributing passes and its owned surface |
| 368 // added one pass. | 368 // added one pass. |
| 369 ASSERT_EQ(6u, frame.renderPasses.size()); | 369 ASSERT_EQ(6u, frame.render_passes.size()); |
| 370 | 370 |
| 371 // The DelegatedRendererLayer should have added its contributing RenderPasses | 371 // The DelegatedRendererLayer should have added its contributing RenderPasses |
| 372 // to the frame. | 372 // to the frame. |
| 373 EXPECT_EQ(4, frame.renderPasses[1]->id.layer_id); | 373 EXPECT_EQ(4, frame.render_passes[1]->id.layer_id); |
| 374 EXPECT_EQ(1, frame.renderPasses[1]->id.index); | 374 EXPECT_EQ(1, frame.render_passes[1]->id.index); |
| 375 EXPECT_EQ(4, frame.renderPasses[2]->id.layer_id); | 375 EXPECT_EQ(4, frame.render_passes[2]->id.layer_id); |
| 376 EXPECT_EQ(2, frame.renderPasses[2]->id.index); | 376 EXPECT_EQ(2, frame.render_passes[2]->id.index); |
| 377 | 377 |
| 378 // The DelegatedRendererLayer should have added copies of its quads to | 378 // The DelegatedRendererLayer should have added copies of its quads to |
| 379 // contributing RenderPasses. | 379 // contributing RenderPasses. |
| 380 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); | 380 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); |
| 381 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), | 381 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), |
| 382 frame.renderPasses[1]->quad_list[0]->rect.ToString()); | 382 frame.render_passes[1]->quad_list[0]->rect.ToString()); |
| 383 | 383 |
| 384 // Verify it added the right quads. | 384 // Verify it added the right quads. |
| 385 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); | 385 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); |
| 386 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), | 386 EXPECT_EQ(gfx::Rect(0, 0, 7, 7).ToString(), |
| 387 frame.renderPasses[2]->quad_list[0]->rect.ToString()); | 387 frame.render_passes[2]->quad_list[0]->rect.ToString()); |
| 388 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), | 388 EXPECT_EQ(gfx::Rect(6, 6, 6, 6).ToString(), |
| 389 frame.renderPasses[2]->quad_list[1]->rect.ToString()); | 389 frame.render_passes[2]->quad_list[1]->rect.ToString()); |
| 390 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); | 390 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); |
| 391 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), | 391 EXPECT_EQ(gfx::Rect(0, 0, 6, 6).ToString(), |
| 392 frame.renderPasses[1]->quad_list[0]->rect.ToString()); | 392 frame.render_passes[1]->quad_list[0]->rect.ToString()); |
| 393 | 393 |
| 394 host_impl_->drawLayers(frame); | 394 host_impl_->DrawLayers(&frame); |
| 395 host_impl_->didDrawAllLayers(frame); | 395 host_impl_->DidDrawAllLayers(frame); |
| 396 } | 396 } |
| 397 | 397 |
| 398 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { | 398 TEST_F(DelegatedRendererLayerImplTestOwnSurface, AddsQuadsToTargetRenderPass) { |
| 399 LayerTreeHostImpl::FrameData frame; | 399 LayerTreeHostImpl::FrameData frame; |
| 400 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 400 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 401 | 401 |
| 402 // Each non-DelegatedRendererLayer added one RenderPass. The | 402 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 403 // DelegatedRendererLayer added two contributing passes and its owned surface | 403 // DelegatedRendererLayer added two contributing passes and its owned surface |
| 404 // added one pass. | 404 // added one pass. |
| 405 ASSERT_EQ(6u, frame.renderPasses.size()); | 405 ASSERT_EQ(6u, frame.render_passes.size()); |
| 406 | 406 |
| 407 // The layer's target is the RenderPass owned by itself. | 407 // The layer's target is the RenderPass owned by itself. |
| 408 EXPECT_EQ(RenderPass::Id(4, 0), frame.renderPasses[3]->id); | 408 EXPECT_EQ(RenderPass::Id(4, 0), frame.render_passes[3]->id); |
| 409 | 409 |
| 410 // The DelegatedRendererLayer should have added copies of quads in its root | 410 // The DelegatedRendererLayer should have added copies of quads in its root |
| 411 // RenderPass to its target RenderPass. | 411 // RenderPass to its target RenderPass. |
| 412 // The m_layer_after also adds one quad. | 412 // The m_layer_after also adds one quad. |
| 413 ASSERT_EQ(1u, frame.renderPasses[3]->quad_list.size()); | 413 ASSERT_EQ(1u, frame.render_passes[3]->quad_list.size()); |
| 414 | 414 |
| 415 // Verify it added the right quads. | 415 // Verify it added the right quads. |
| 416 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), | 416 EXPECT_EQ(gfx::Rect(7, 7, 7, 7).ToString(), |
| 417 frame.renderPasses[3]->quad_list[0]->rect.ToString()); | 417 frame.render_passes[3]->quad_list[0]->rect.ToString()); |
| 418 | 418 |
| 419 host_impl_->drawLayers(frame); | 419 host_impl_->DrawLayers(&frame); |
| 420 host_impl_->didDrawAllLayers(frame); | 420 host_impl_->DidDrawAllLayers(frame); |
| 421 } | 421 } |
| 422 | 422 |
| 423 TEST_F(DelegatedRendererLayerImplTestOwnSurface, | 423 TEST_F(DelegatedRendererLayerImplTestOwnSurface, |
| 424 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { | 424 QuadsFromRootRenderPassAreNotModifiedForTheTarget) { |
| 425 LayerTreeHostImpl::FrameData frame; | 425 LayerTreeHostImpl::FrameData frame; |
| 426 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 426 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 427 | 427 |
| 428 // Each non-DelegatedRendererLayer added one RenderPass. The | 428 // Each non-DelegatedRendererLayer added one RenderPass. The |
| 429 // DelegatedRendererLayer added two contributing passes and its owned surface | 429 // DelegatedRendererLayer added two contributing passes and its owned surface |
| 430 // added one pass. | 430 // added one pass. |
| 431 ASSERT_EQ(6u, frame.renderPasses.size()); | 431 ASSERT_EQ(6u, frame.render_passes.size()); |
| 432 | 432 |
| 433 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root | 433 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root |
| 434 // RenderPass' quads do not need to be translated at all. However, they are | 434 // RenderPass' quads do not need to be translated at all. However, they are |
| 435 // scaled from the frame's size (8x8) to the layer's bounds (10x10). | 435 // scaled from the frame's size (8x8) to the layer's bounds (10x10). |
| 436 gfx::Transform transform; | 436 gfx::Transform transform; |
| 437 transform.Scale(10.0 / 8.0, 10.0 / 8.0); | 437 transform.Scale(10.0 / 8.0, 10.0 / 8.0); |
| 438 EXPECT_TRANSFORMATION_MATRIX_EQ( | 438 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 439 transform, frame.renderPasses[3]->quad_list[0]->quadTransform()); | 439 transform, frame.render_passes[3]->quad_list[0]->quadTransform()); |
| 440 | 440 |
| 441 // Quads from non-root RenderPasses should not be shifted either. | 441 // Quads from non-root RenderPasses should not be shifted either. |
| 442 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); | 442 ASSERT_EQ(2u, frame.render_passes[2]->quad_list.size()); |
| 443 EXPECT_TRANSFORMATION_MATRIX_EQ( | 443 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 444 gfx::Transform(), frame.renderPasses[2]->quad_list[0]->quadTransform()); | 444 gfx::Transform(), frame.render_passes[2]->quad_list[0]->quadTransform()); |
| 445 EXPECT_TRANSFORMATION_MATRIX_EQ( | 445 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 446 gfx::Transform(), frame.renderPasses[2]->quad_list[1]->quadTransform()); | 446 gfx::Transform(), frame.render_passes[2]->quad_list[1]->quadTransform()); |
| 447 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); | 447 ASSERT_EQ(1u, frame.render_passes[1]->quad_list.size()); |
| 448 EXPECT_TRANSFORMATION_MATRIX_EQ( | 448 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 449 gfx::Transform(), frame.renderPasses[1]->quad_list[0]->quadTransform()); | 449 gfx::Transform(), frame.render_passes[1]->quad_list[0]->quadTransform()); |
| 450 | 450 |
| 451 host_impl_->drawLayers(frame); | 451 host_impl_->DrawLayers(&frame); |
| 452 host_impl_->didDrawAllLayers(frame); | 452 host_impl_->DidDrawAllLayers(frame); |
| 453 } | 453 } |
| 454 | 454 |
| 455 class DelegatedRendererLayerImplTestTransform | 455 class DelegatedRendererLayerImplTestTransform |
| 456 : public DelegatedRendererLayerImplTest { | 456 : public DelegatedRendererLayerImplTest { |
| 457 public: | 457 public: |
| 458 void SetUpTest() { | 458 void SetUpTest() { |
| 459 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( | 459 scoped_ptr<LayerImpl> root_layer = LayerImpl::Create( |
| 460 host_impl_->activeTree(), 1); | 460 host_impl_->active_tree(), 1); |
| 461 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 461 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
| 462 FakeDelegatedRendererLayerImpl::Create(host_impl_->activeTree(), 2); | 462 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); |
| 463 | 463 |
| 464 host_impl_->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); | 464 host_impl_->SetViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); |
| 465 root_layer->SetBounds(gfx::Size(100, 100)); | 465 root_layer->SetBounds(gfx::Size(100, 100)); |
| 466 | 466 |
| 467 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); | 467 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); |
| 468 delegated_renderer_layer->SetBounds(gfx::Size(30, 30)); | 468 delegated_renderer_layer->SetBounds(gfx::Size(30, 30)); |
| 469 delegated_renderer_layer->SetContentBounds(gfx::Size(30, 30)); | 469 delegated_renderer_layer->SetContentBounds(gfx::Size(30, 30)); |
| 470 delegated_renderer_layer->SetDrawsContent(true); | 470 delegated_renderer_layer->SetDrawsContent(true); |
| 471 gfx::Transform transform; | 471 gfx::Transform transform; |
| 472 transform.Scale(2.0, 2.0); | 472 transform.Scale(2.0, 2.0); |
| 473 transform.Translate(8.0, 8.0); | 473 transform.Translate(8.0, 8.0); |
| 474 delegated_renderer_layer->SetTransform(transform); | 474 delegated_renderer_layer->SetTransform(transform); |
| (...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 519 gfx::Rect root_pass_clip_rect(10, 10, 35, 35); | 519 gfx::Rect root_pass_clip_rect(10, 10, 35, 35); |
| 520 bool root_pass_clipped = root_delegated_render_pass_is_clipped_; | 520 bool root_pass_clipped = root_delegated_render_pass_is_clipped_; |
| 521 | 521 |
| 522 TestRenderPass* pass = addRenderPass( | 522 TestRenderPass* pass = addRenderPass( |
| 523 delegated_render_passes, | 523 delegated_render_passes, |
| 524 RenderPass::Id(9, 6), | 524 RenderPass::Id(9, 6), |
| 525 root_pass_rect, | 525 root_pass_rect, |
| 526 gfx::Transform()); | 526 gfx::Transform()); |
| 527 MockQuadCuller quad_sink(pass->quad_list, pass->shared_quad_state_list); | 527 MockQuadCuller quad_sink(pass->quad_list, pass->shared_quad_state_list); |
| 528 AppendQuadsData data(pass->id); | 528 AppendQuadsData data(pass->id); |
| 529 SharedQuadState* shared_quad_state = quad_sink.useSharedQuadState(SharedQuad
State::Create()); | 529 SharedQuadState* shared_quad_state = |
| 530 quad_sink.useSharedQuadState(SharedQuadState::Create()); |
| 530 shared_quad_state->SetAll( | 531 shared_quad_state->SetAll( |
| 531 root_pass_transform, | 532 root_pass_transform, |
| 532 root_pass_content_bounds, | 533 root_pass_content_bounds, |
| 533 root_pass_rect, | 534 root_pass_rect, |
| 534 root_pass_clip_rect, | 535 root_pass_clip_rect, |
| 535 root_pass_clipped, | 536 root_pass_clipped, |
| 536 1.f); | 537 1.f); |
| 537 | 538 |
| 538 scoped_ptr<RenderPassDrawQuad> render_pass_quad = | 539 scoped_ptr<RenderPassDrawQuad> render_pass_quad = |
| 539 RenderPassDrawQuad::Create(); | 540 RenderPassDrawQuad::Create(); |
| (...skipping 30 matching lines...) Expand all Loading... |
| 570 delegated_renderer_layer->SetFrameDataForRenderPasses( | 571 delegated_renderer_layer->SetFrameDataForRenderPasses( |
| 571 &delegated_render_passes); | 572 &delegated_render_passes); |
| 572 | 573 |
| 573 // The RenderPasses should be taken by the layer. | 574 // The RenderPasses should be taken by the layer. |
| 574 EXPECT_EQ(0u, delegated_render_passes.size()); | 575 EXPECT_EQ(0u, delegated_render_passes.size()); |
| 575 | 576 |
| 576 root_layer_ = root_layer.get(); | 577 root_layer_ = root_layer.get(); |
| 577 delegated_renderer_layer_ = delegated_renderer_layer.get(); | 578 delegated_renderer_layer_ = delegated_renderer_layer.get(); |
| 578 | 579 |
| 579 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); | 580 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); |
| 580 host_impl_->activeTree()->SetRootLayer(root_layer.Pass()); | 581 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); |
| 581 } | 582 } |
| 582 | 583 |
| 583 void VerifyRenderPasses( | 584 void VerifyRenderPasses( |
| 584 const LayerTreeHostImpl::FrameData& frame, | 585 const LayerTreeHostImpl::FrameData& frame, |
| 585 size_t num_render_passes, | 586 size_t num_render_passes, |
| 586 const SharedQuadState** root_delegated_shared_quad_state, | 587 const SharedQuadState** root_delegated_shared_quad_state, |
| 587 const SharedQuadState** contrib_delegated_shared_quad_state) { | 588 const SharedQuadState** contrib_delegated_shared_quad_state) { |
| 588 ASSERT_EQ(num_render_passes, frame.renderPasses.size()); | 589 ASSERT_EQ(num_render_passes, frame.render_passes.size()); |
| 589 // The contributing render pass in the DelegatedRendererLayer. | 590 // The contributing render pass in the DelegatedRendererLayer. |
| 590 EXPECT_EQ(2, frame.renderPasses[0]->id.layer_id); | 591 EXPECT_EQ(2, frame.render_passes[0]->id.layer_id); |
| 591 EXPECT_EQ(1, frame.renderPasses[0]->id.index); | 592 EXPECT_EQ(1, frame.render_passes[0]->id.index); |
| 592 // The root render pass. | 593 // The root render pass. |
| 593 EXPECT_EQ(1, frame.renderPasses.back()->id.layer_id); | 594 EXPECT_EQ(1, frame.render_passes.back()->id.layer_id); |
| 594 EXPECT_EQ(0, frame.renderPasses.back()->id.index); | 595 EXPECT_EQ(0, frame.render_passes.back()->id.index); |
| 595 | 596 |
| 596 const QuadList& contrib_delegated_quad_list = | 597 const QuadList& contrib_delegated_quad_list = |
| 597 frame.renderPasses[0]->quad_list; | 598 frame.render_passes[0]->quad_list; |
| 598 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 599 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 599 | 600 |
| 600 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; | 601 const QuadList& root_delegated_quad_list = |
| 602 frame.render_passes[1]->quad_list; |
| 601 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 603 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 602 | 604 |
| 603 // All quads in a render pass should share the same state. | 605 // All quads in a render pass should share the same state. |
| 604 *contrib_delegated_shared_quad_state = | 606 *contrib_delegated_shared_quad_state = |
| 605 contrib_delegated_quad_list[0]->shared_quad_state; | 607 contrib_delegated_quad_list[0]->shared_quad_state; |
| 606 EXPECT_EQ(*contrib_delegated_shared_quad_state, | 608 EXPECT_EQ(*contrib_delegated_shared_quad_state, |
| 607 contrib_delegated_quad_list[1]->shared_quad_state); | 609 contrib_delegated_quad_list[1]->shared_quad_state); |
| 608 | 610 |
| 609 *root_delegated_shared_quad_state = | 611 *root_delegated_shared_quad_state = |
| 610 root_delegated_quad_list[0]->shared_quad_state; | 612 root_delegated_quad_list[0]->shared_quad_state; |
| (...skipping 14 matching lines...) Expand all Loading... |
| 625 LayerImpl* root_layer_; | 627 LayerImpl* root_layer_; |
| 626 DelegatedRendererLayerImpl* delegated_renderer_layer_; | 628 DelegatedRendererLayerImpl* delegated_renderer_layer_; |
| 627 bool root_delegated_render_pass_is_clipped_; | 629 bool root_delegated_render_pass_is_clipped_; |
| 628 }; | 630 }; |
| 629 | 631 |
| 630 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) { | 632 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_NoSurface) { |
| 631 root_delegated_render_pass_is_clipped_ = false; | 633 root_delegated_render_pass_is_clipped_ = false; |
| 632 SetUpTest(); | 634 SetUpTest(); |
| 633 | 635 |
| 634 LayerTreeHostImpl::FrameData frame; | 636 LayerTreeHostImpl::FrameData frame; |
| 635 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 637 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 636 | 638 |
| 637 const SharedQuadState* root_delegated_shared_quad_state = NULL; | 639 const SharedQuadState* root_delegated_shared_quad_state = NULL; |
| 638 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; | 640 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; |
| 639 VerifyRenderPasses( | 641 VerifyRenderPasses( |
| 640 frame, | 642 frame, |
| 641 2, | 643 2, |
| 642 &root_delegated_shared_quad_state, | 644 &root_delegated_shared_quad_state, |
| 643 &contrib_delegated_shared_quad_state); | 645 &contrib_delegated_shared_quad_state); |
| 644 | 646 |
| 645 // When the quads don't have a clip of their own, the clip rect is set to | 647 // When the quads don't have a clip of their own, the clip rect is set to |
| (...skipping 24 matching lines...) Expand all Loading... |
| 670 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), | 672 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), |
| 671 contrib_delegated_shared_quad_state->clip_rect.ToString()); | 673 contrib_delegated_shared_quad_state->clip_rect.ToString()); |
| 672 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); | 674 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); |
| 673 expected.MakeIdentity(); | 675 expected.MakeIdentity(); |
| 674 expected.Scale(0.8, 0.8); | 676 expected.Scale(0.8, 0.8); |
| 675 expected.Translate(9.0, 9.0); | 677 expected.Translate(9.0, 9.0); |
| 676 EXPECT_TRANSFORMATION_MATRIX_EQ( | 678 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 677 expected, | 679 expected, |
| 678 contrib_delegated_shared_quad_state->content_to_target_transform); | 680 contrib_delegated_shared_quad_state->content_to_target_transform); |
| 679 | 681 |
| 680 host_impl_->drawLayers(frame); | 682 host_impl_->DrawLayers(&frame); |
| 681 host_impl_->didDrawAllLayers(frame); | 683 host_impl_->DidDrawAllLayers(frame); |
| 682 } | 684 } |
| 683 | 685 |
| 684 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { | 686 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_NoSurface) { |
| 685 root_delegated_render_pass_is_clipped_ = true; | 687 root_delegated_render_pass_is_clipped_ = true; |
| 686 SetUpTest(); | 688 SetUpTest(); |
| 687 | 689 |
| 688 LayerTreeHostImpl::FrameData frame; | 690 LayerTreeHostImpl::FrameData frame; |
| 689 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 691 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 690 | 692 |
| 691 const SharedQuadState* root_delegated_shared_quad_state = NULL; | 693 const SharedQuadState* root_delegated_shared_quad_state = NULL; |
| 692 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; | 694 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; |
| 693 VerifyRenderPasses( | 695 VerifyRenderPasses( |
| 694 frame, | 696 frame, |
| 695 2, | 697 2, |
| 696 &root_delegated_shared_quad_state, | 698 &root_delegated_shared_quad_state, |
| 697 &contrib_delegated_shared_quad_state); | 699 &contrib_delegated_shared_quad_state); |
| 698 | 700 |
| 699 // Since the quads have a clip_rect it should be modified by delegated | 701 // Since the quads have a clip_rect it should be modified by delegated |
| (...skipping 29 matching lines...) Expand all Loading... |
| 729 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), | 731 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), |
| 730 contrib_delegated_shared_quad_state->clip_rect.ToString()); | 732 contrib_delegated_shared_quad_state->clip_rect.ToString()); |
| 731 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); | 733 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); |
| 732 expected.MakeIdentity(); | 734 expected.MakeIdentity(); |
| 733 expected.Scale(0.8, 0.8); | 735 expected.Scale(0.8, 0.8); |
| 734 expected.Translate(9.0, 9.0); | 736 expected.Translate(9.0, 9.0); |
| 735 EXPECT_TRANSFORMATION_MATRIX_EQ( | 737 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 736 expected, | 738 expected, |
| 737 contrib_delegated_shared_quad_state->content_to_target_transform); | 739 contrib_delegated_shared_quad_state->content_to_target_transform); |
| 738 | 740 |
| 739 host_impl_->drawLayers(frame); | 741 host_impl_->DrawLayers(&frame); |
| 740 host_impl_->didDrawAllLayers(frame); | 742 host_impl_->DidDrawAllLayers(frame); |
| 741 } | 743 } |
| 742 | 744 |
| 743 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { | 745 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsUnclipped_Surface) { |
| 744 root_delegated_render_pass_is_clipped_ = false; | 746 root_delegated_render_pass_is_clipped_ = false; |
| 745 SetUpTest(); | 747 SetUpTest(); |
| 746 | 748 |
| 747 delegated_renderer_layer_->SetForceRenderSurface(true); | 749 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 748 | 750 |
| 749 LayerTreeHostImpl::FrameData frame; | 751 LayerTreeHostImpl::FrameData frame; |
| 750 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 752 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 751 | 753 |
| 752 const SharedQuadState* root_delegated_shared_quad_state = NULL; | 754 const SharedQuadState* root_delegated_shared_quad_state = NULL; |
| 753 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; | 755 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; |
| 754 VerifyRenderPasses( | 756 VerifyRenderPasses( |
| 755 frame, | 757 frame, |
| 756 3, | 758 3, |
| 757 &root_delegated_shared_quad_state, | 759 &root_delegated_shared_quad_state, |
| 758 &contrib_delegated_shared_quad_state); | 760 &contrib_delegated_shared_quad_state); |
| 759 | 761 |
| 760 // When the layer owns a surface, then its position and translation are not | 762 // When the layer owns a surface, then its position and translation are not |
| (...skipping 23 matching lines...) Expand all Loading... |
| 784 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), | 786 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), |
| 785 contrib_delegated_shared_quad_state->clip_rect.ToString()); | 787 contrib_delegated_shared_quad_state->clip_rect.ToString()); |
| 786 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); | 788 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); |
| 787 expected.MakeIdentity(); | 789 expected.MakeIdentity(); |
| 788 expected.Scale(0.8, 0.8); | 790 expected.Scale(0.8, 0.8); |
| 789 expected.Translate(9.0, 9.0); | 791 expected.Translate(9.0, 9.0); |
| 790 EXPECT_TRANSFORMATION_MATRIX_EQ( | 792 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 791 expected, | 793 expected, |
| 792 contrib_delegated_shared_quad_state->content_to_target_transform); | 794 contrib_delegated_shared_quad_state->content_to_target_transform); |
| 793 | 795 |
| 794 host_impl_->drawLayers(frame); | 796 host_impl_->DrawLayers(&frame); |
| 795 host_impl_->didDrawAllLayers(frame); | 797 host_impl_->DidDrawAllLayers(frame); |
| 796 } | 798 } |
| 797 | 799 |
| 798 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { | 800 TEST_F(DelegatedRendererLayerImplTestTransform, QuadsClipped_Surface) { |
| 799 root_delegated_render_pass_is_clipped_ = true; | 801 root_delegated_render_pass_is_clipped_ = true; |
| 800 SetUpTest(); | 802 SetUpTest(); |
| 801 | 803 |
| 802 delegated_renderer_layer_->SetForceRenderSurface(true); | 804 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 803 | 805 |
| 804 LayerTreeHostImpl::FrameData frame; | 806 LayerTreeHostImpl::FrameData frame; |
| 805 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 807 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 806 | 808 |
| 807 const SharedQuadState* root_delegated_shared_quad_state = NULL; | 809 const SharedQuadState* root_delegated_shared_quad_state = NULL; |
| 808 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; | 810 const SharedQuadState* contrib_delegated_shared_quad_state = NULL; |
| 809 VerifyRenderPasses( | 811 VerifyRenderPasses( |
| 810 frame, | 812 frame, |
| 811 3, | 813 3, |
| 812 &root_delegated_shared_quad_state, | 814 &root_delegated_shared_quad_state, |
| 813 &contrib_delegated_shared_quad_state); | 815 &contrib_delegated_shared_quad_state); |
| 814 | 816 |
| 815 // When the layer owns a surface, then its position and translation are not | 817 // When the layer owns a surface, then its position and translation are not |
| (...skipping 22 matching lines...) Expand all Loading... |
| 838 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), | 840 EXPECT_EQ(gfx::Rect(21, 21, 3, 3).ToString(), |
| 839 contrib_delegated_shared_quad_state->clip_rect.ToString()); | 841 contrib_delegated_shared_quad_state->clip_rect.ToString()); |
| 840 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); | 842 EXPECT_FALSE(contrib_delegated_shared_quad_state->is_clipped); |
| 841 expected.MakeIdentity(); | 843 expected.MakeIdentity(); |
| 842 expected.Scale(0.8, 0.8); | 844 expected.Scale(0.8, 0.8); |
| 843 expected.Translate(9.0, 9.0); | 845 expected.Translate(9.0, 9.0); |
| 844 EXPECT_TRANSFORMATION_MATRIX_EQ( | 846 EXPECT_TRANSFORMATION_MATRIX_EQ( |
| 845 expected, | 847 expected, |
| 846 contrib_delegated_shared_quad_state->content_to_target_transform); | 848 contrib_delegated_shared_quad_state->content_to_target_transform); |
| 847 | 849 |
| 848 host_impl_->drawLayers(frame); | 850 host_impl_->DrawLayers(&frame); |
| 849 host_impl_->didDrawAllLayers(frame); | 851 host_impl_->DidDrawAllLayers(frame); |
| 850 } | 852 } |
| 851 | 853 |
| 852 class DelegatedRendererLayerImplTestClip | 854 class DelegatedRendererLayerImplTestClip |
| 853 : public DelegatedRendererLayerImplTest { | 855 : public DelegatedRendererLayerImplTest { |
| 854 public: | 856 public: |
| 855 void SetUpTest() { | 857 void SetUpTest() { |
| 856 scoped_ptr<LayerImpl> root_layer = | 858 scoped_ptr<LayerImpl> root_layer = |
| 857 LayerImpl::Create(host_impl_->activeTree(), 1); | 859 LayerImpl::Create(host_impl_->active_tree(), 1); |
| 858 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = | 860 scoped_ptr<FakeDelegatedRendererLayerImpl> delegated_renderer_layer = |
| 859 FakeDelegatedRendererLayerImpl::Create(host_impl_->activeTree(), 2); | 861 FakeDelegatedRendererLayerImpl::Create(host_impl_->active_tree(), 2); |
| 860 scoped_ptr<LayerImpl> clip_layer = | 862 scoped_ptr<LayerImpl> clip_layer = |
| 861 LayerImpl::Create(host_impl_->activeTree(), 3); | 863 LayerImpl::Create(host_impl_->active_tree(), 3); |
| 862 scoped_ptr<LayerImpl> origin_layer = | 864 scoped_ptr<LayerImpl> origin_layer = |
| 863 LayerImpl::Create(host_impl_->activeTree(), 4); | 865 LayerImpl::Create(host_impl_->active_tree(), 4); |
| 864 | 866 |
| 865 host_impl_->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); | 867 host_impl_->SetViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); |
| 866 root_layer->SetBounds(gfx::Size(100, 100)); | 868 root_layer->SetBounds(gfx::Size(100, 100)); |
| 867 | 869 |
| 868 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); | 870 delegated_renderer_layer->SetPosition(gfx::Point(20, 20)); |
| 869 delegated_renderer_layer->SetBounds(gfx::Size(50, 50)); | 871 delegated_renderer_layer->SetBounds(gfx::Size(50, 50)); |
| 870 delegated_renderer_layer->SetContentBounds(gfx::Size(50, 50)); | 872 delegated_renderer_layer->SetContentBounds(gfx::Size(50, 50)); |
| 871 delegated_renderer_layer->SetDrawsContent(true); | 873 delegated_renderer_layer->SetDrawsContent(true); |
| 872 | 874 |
| 873 ScopedPtrVector<RenderPass> delegated_render_passes; | 875 ScopedPtrVector<RenderPass> delegated_render_passes; |
| 874 | 876 |
| 875 gfx::Size child_pass_content_bounds(7, 7); | 877 gfx::Size child_pass_content_bounds(7, 7); |
| (...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 980 origin_layer->SetPosition( | 982 origin_layer->SetPosition( |
| 981 gfx::PointAtOffsetFromOrigin(-clip_rect.OffsetFromOrigin())); | 983 gfx::PointAtOffsetFromOrigin(-clip_rect.OffsetFromOrigin())); |
| 982 | 984 |
| 983 origin_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); | 985 origin_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); |
| 984 clip_layer->AddChild(origin_layer.Pass()); | 986 clip_layer->AddChild(origin_layer.Pass()); |
| 985 root_layer->AddChild(clip_layer.Pass()); | 987 root_layer->AddChild(clip_layer.Pass()); |
| 986 } else { | 988 } else { |
| 987 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); | 989 root_layer->AddChild(delegated_renderer_layer.PassAs<LayerImpl>()); |
| 988 } | 990 } |
| 989 | 991 |
| 990 host_impl_->activeTree()->SetRootLayer(root_layer.Pass()); | 992 host_impl_->active_tree()->SetRootLayer(root_layer.Pass()); |
| 991 } | 993 } |
| 992 | 994 |
| 993 protected: | 995 protected: |
| 994 LayerImpl* root_layer_; | 996 LayerImpl* root_layer_; |
| 995 DelegatedRendererLayerImpl* delegated_renderer_layer_; | 997 DelegatedRendererLayerImpl* delegated_renderer_layer_; |
| 996 bool root_delegated_render_pass_is_clipped_; | 998 bool root_delegated_render_pass_is_clipped_; |
| 997 bool clip_delegated_renderer_layer_; | 999 bool clip_delegated_renderer_layer_; |
| 998 }; | 1000 }; |
| 999 | 1001 |
| 1000 TEST_F(DelegatedRendererLayerImplTestClip, | 1002 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1001 QuadsUnclipped_LayerUnclipped_NoSurface) { | 1003 QuadsUnclipped_LayerUnclipped_NoSurface) { |
| 1002 root_delegated_render_pass_is_clipped_ = false; | 1004 root_delegated_render_pass_is_clipped_ = false; |
| 1003 clip_delegated_renderer_layer_ = false; | 1005 clip_delegated_renderer_layer_ = false; |
| 1004 SetUpTest(); | 1006 SetUpTest(); |
| 1005 | 1007 |
| 1006 LayerTreeHostImpl::FrameData frame; | 1008 LayerTreeHostImpl::FrameData frame; |
| 1007 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 1009 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 1008 | 1010 |
| 1009 ASSERT_EQ(2u, frame.renderPasses.size()); | 1011 ASSERT_EQ(2u, frame.render_passes.size()); |
| 1010 const QuadList& contrib_delegated_quad_list = | 1012 const QuadList& contrib_delegated_quad_list = |
| 1011 frame.renderPasses[0]->quad_list; | 1013 frame.render_passes[0]->quad_list; |
| 1012 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1014 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1013 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; | 1015 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1014 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1016 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1015 const SharedQuadState* root_delegated_shared_quad_state = | 1017 const SharedQuadState* root_delegated_shared_quad_state = |
| 1016 root_delegated_quad_list[0]->shared_quad_state; | 1018 root_delegated_quad_list[0]->shared_quad_state; |
| 1017 const SharedQuadState* contrib_delegated_shared_quad_state = | 1019 const SharedQuadState* contrib_delegated_shared_quad_state = |
| 1018 contrib_delegated_quad_list[0]->shared_quad_state; | 1020 contrib_delegated_quad_list[0]->shared_quad_state; |
| 1019 | 1021 |
| 1020 // When the quads don't have a clip of their own, the clip rect is set to | 1022 // When the quads don't have a clip of their own, the clip rect is set to |
| 1021 // the drawableContentRect of the delegated renderer layer. | 1023 // the drawableContentRect of the delegated renderer layer. |
| 1022 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), | 1024 EXPECT_EQ(gfx::Rect(20, 20, 50, 50).ToString(), |
| 1023 root_delegated_shared_quad_state->clip_rect.ToString()); | 1025 root_delegated_shared_quad_state->clip_rect.ToString()); |
| 1024 // Quads are clipped to the delegated renderer layer. | 1026 // Quads are clipped to the delegated renderer layer. |
| 1025 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1027 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
| 1026 | 1028 |
| 1027 host_impl_->drawLayers(frame); | 1029 host_impl_->DrawLayers(&frame); |
| 1028 host_impl_->didDrawAllLayers(frame); | 1030 host_impl_->DidDrawAllLayers(frame); |
| 1029 } | 1031 } |
| 1030 | 1032 |
| 1031 TEST_F(DelegatedRendererLayerImplTestClip, | 1033 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1032 QuadsClipped_LayerUnclipped_NoSurface) { | 1034 QuadsClipped_LayerUnclipped_NoSurface) { |
| 1033 root_delegated_render_pass_is_clipped_ = true; | 1035 root_delegated_render_pass_is_clipped_ = true; |
| 1034 clip_delegated_renderer_layer_ = false; | 1036 clip_delegated_renderer_layer_ = false; |
| 1035 SetUpTest(); | 1037 SetUpTest(); |
| 1036 | 1038 |
| 1037 LayerTreeHostImpl::FrameData frame; | 1039 LayerTreeHostImpl::FrameData frame; |
| 1038 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 1040 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 1039 | 1041 |
| 1040 ASSERT_EQ(2u, frame.renderPasses.size()); | 1042 ASSERT_EQ(2u, frame.render_passes.size()); |
| 1041 const QuadList& contrib_delegated_quad_list = | 1043 const QuadList& contrib_delegated_quad_list = |
| 1042 frame.renderPasses[0]->quad_list; | 1044 frame.render_passes[0]->quad_list; |
| 1043 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1045 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1044 const QuadList& root_delegated_quad_list = | 1046 const QuadList& root_delegated_quad_list = |
| 1045 frame.renderPasses[1]->quad_list; | 1047 frame.render_passes[1]->quad_list; |
| 1046 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1048 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1047 const SharedQuadState* root_delegated_shared_quad_state = | 1049 const SharedQuadState* root_delegated_shared_quad_state = |
| 1048 root_delegated_quad_list[0]->shared_quad_state; | 1050 root_delegated_quad_list[0]->shared_quad_state; |
| 1049 const SharedQuadState* contrib_delegated_shared_quad_state = | 1051 const SharedQuadState* contrib_delegated_shared_quad_state = |
| 1050 contrib_delegated_quad_list[0]->shared_quad_state; | 1052 contrib_delegated_quad_list[0]->shared_quad_state; |
| 1051 | 1053 |
| 1052 // When the quads have a clip of their own, it is used. | 1054 // When the quads have a clip of their own, it is used. |
| 1053 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), | 1055 EXPECT_EQ(gfx::Rect(25, 25, 40, 40).ToString(), |
| 1054 root_delegated_shared_quad_state->clip_rect.ToString()); | 1056 root_delegated_shared_quad_state->clip_rect.ToString()); |
| 1055 // Quads came with a clip rect. | 1057 // Quads came with a clip rect. |
| 1056 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1058 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
| 1057 | 1059 |
| 1058 host_impl_->drawLayers(frame); | 1060 host_impl_->DrawLayers(&frame); |
| 1059 host_impl_->didDrawAllLayers(frame); | 1061 host_impl_->DidDrawAllLayers(frame); |
| 1060 } | 1062 } |
| 1061 | 1063 |
| 1062 TEST_F(DelegatedRendererLayerImplTestClip, | 1064 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1063 QuadsUnclipped_LayerClipped_NoSurface) { | 1065 QuadsUnclipped_LayerClipped_NoSurface) { |
| 1064 root_delegated_render_pass_is_clipped_ = false; | 1066 root_delegated_render_pass_is_clipped_ = false; |
| 1065 clip_delegated_renderer_layer_ = true; | 1067 clip_delegated_renderer_layer_ = true; |
| 1066 SetUpTest(); | 1068 SetUpTest(); |
| 1067 | 1069 |
| 1068 LayerTreeHostImpl::FrameData frame; | 1070 LayerTreeHostImpl::FrameData frame; |
| 1069 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 1071 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 1070 | 1072 |
| 1071 ASSERT_EQ(2u, frame.renderPasses.size()); | 1073 ASSERT_EQ(2u, frame.render_passes.size()); |
| 1072 const QuadList& contrib_delegated_quad_list = | 1074 const QuadList& contrib_delegated_quad_list = |
| 1073 frame.renderPasses[0]->quad_list; | 1075 frame.render_passes[0]->quad_list; |
| 1074 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1076 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1075 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; | 1077 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1076 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1078 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1077 const SharedQuadState* root_delegated_shared_quad_state = | 1079 const SharedQuadState* root_delegated_shared_quad_state = |
| 1078 root_delegated_quad_list[0]->shared_quad_state; | 1080 root_delegated_quad_list[0]->shared_quad_state; |
| 1079 const SharedQuadState* contrib_delegated_shared_quad_state = | 1081 const SharedQuadState* contrib_delegated_shared_quad_state = |
| 1080 contrib_delegated_quad_list[0]->shared_quad_state; | 1082 contrib_delegated_quad_list[0]->shared_quad_state; |
| 1081 | 1083 |
| 1082 // When the quads don't have a clip of their own, the clip rect is set to | 1084 // When the quads don't have a clip of their own, the clip rect is set to |
| 1083 // the drawableContentRect of the delegated renderer layer. When the layer | 1085 // the drawableContentRect of the delegated renderer layer. When the layer |
| 1084 // is clipped, that should be seen in the quads' clip_rect. | 1086 // is clipped, that should be seen in the quads' clip_rect. |
| 1085 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), | 1087 EXPECT_EQ(gfx::Rect(21, 27, 23, 21).ToString(), |
| 1086 root_delegated_shared_quad_state->clip_rect.ToString()); | 1088 root_delegated_shared_quad_state->clip_rect.ToString()); |
| 1087 // Quads are clipped to the delegated renderer layer. | 1089 // Quads are clipped to the delegated renderer layer. |
| 1088 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1090 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
| 1089 | 1091 |
| 1090 host_impl_->drawLayers(frame); | 1092 host_impl_->DrawLayers(&frame); |
| 1091 host_impl_->didDrawAllLayers(frame); | 1093 host_impl_->DidDrawAllLayers(frame); |
| 1092 } | 1094 } |
| 1093 | 1095 |
| 1094 TEST_F(DelegatedRendererLayerImplTestClip, | 1096 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1095 QuadsClipped_LayerClipped_NoSurface) { | 1097 QuadsClipped_LayerClipped_NoSurface) { |
| 1096 root_delegated_render_pass_is_clipped_ = true; | 1098 root_delegated_render_pass_is_clipped_ = true; |
| 1097 clip_delegated_renderer_layer_ = true; | 1099 clip_delegated_renderer_layer_ = true; |
| 1098 SetUpTest(); | 1100 SetUpTest(); |
| 1099 | 1101 |
| 1100 LayerTreeHostImpl::FrameData frame; | 1102 LayerTreeHostImpl::FrameData frame; |
| 1101 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 1103 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 1102 | 1104 |
| 1103 ASSERT_EQ(2u, frame.renderPasses.size()); | 1105 ASSERT_EQ(2u, frame.render_passes.size()); |
| 1104 const QuadList& contrib_delegated_quad_list = | 1106 const QuadList& contrib_delegated_quad_list = |
| 1105 frame.renderPasses[0]->quad_list; | 1107 frame.render_passes[0]->quad_list; |
| 1106 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1108 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1107 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; | 1109 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1108 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1110 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1109 const SharedQuadState* root_delegated_shared_quad_state = | 1111 const SharedQuadState* root_delegated_shared_quad_state = |
| 1110 root_delegated_quad_list[0]->shared_quad_state; | 1112 root_delegated_quad_list[0]->shared_quad_state; |
| 1111 const SharedQuadState* contrib_delegated_shared_quad_state = | 1113 const SharedQuadState* contrib_delegated_shared_quad_state = |
| 1112 contrib_delegated_quad_list[0]->shared_quad_state; | 1114 contrib_delegated_quad_list[0]->shared_quad_state; |
| 1113 | 1115 |
| 1114 // When the quads have a clip of their own, it is used, but it is | 1116 // When the quads have a clip of their own, it is used, but it is |
| 1115 // combined with the clip rect of the delegated renderer layer. | 1117 // combined with the clip rect of the delegated renderer layer. |
| 1116 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(), | 1118 EXPECT_EQ(gfx::Rect(25, 27, 19, 21).ToString(), |
| 1117 root_delegated_shared_quad_state->clip_rect.ToString()); | 1119 root_delegated_shared_quad_state->clip_rect.ToString()); |
| 1118 // Quads came with a clip rect. | 1120 // Quads came with a clip rect. |
| 1119 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1121 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
| 1120 | 1122 |
| 1121 host_impl_->drawLayers(frame); | 1123 host_impl_->DrawLayers(&frame); |
| 1122 host_impl_->didDrawAllLayers(frame); | 1124 host_impl_->DidDrawAllLayers(frame); |
| 1123 } | 1125 } |
| 1124 | 1126 |
| 1125 TEST_F(DelegatedRendererLayerImplTestClip, | 1127 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1126 QuadsUnclipped_LayerUnclipped_Surface) { | 1128 QuadsUnclipped_LayerUnclipped_Surface) { |
| 1127 root_delegated_render_pass_is_clipped_ = false; | 1129 root_delegated_render_pass_is_clipped_ = false; |
| 1128 clip_delegated_renderer_layer_ = false; | 1130 clip_delegated_renderer_layer_ = false; |
| 1129 SetUpTest(); | 1131 SetUpTest(); |
| 1130 | 1132 |
| 1131 delegated_renderer_layer_->SetForceRenderSurface(true); | 1133 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1132 | 1134 |
| 1133 LayerTreeHostImpl::FrameData frame; | 1135 LayerTreeHostImpl::FrameData frame; |
| 1134 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 1136 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 1135 | 1137 |
| 1136 ASSERT_EQ(3u, frame.renderPasses.size()); | 1138 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1137 const QuadList& contrib_delegated_quad_list = | 1139 const QuadList& contrib_delegated_quad_list = |
| 1138 frame.renderPasses[0]->quad_list; | 1140 frame.render_passes[0]->quad_list; |
| 1139 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1141 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1140 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; | 1142 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1141 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1143 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1142 const SharedQuadState* root_delegated_shared_quad_state = | 1144 const SharedQuadState* root_delegated_shared_quad_state = |
| 1143 root_delegated_quad_list[0]->shared_quad_state; | 1145 root_delegated_quad_list[0]->shared_quad_state; |
| 1144 const SharedQuadState* contrib_delegated_shared_quad_state = | 1146 const SharedQuadState* contrib_delegated_shared_quad_state = |
| 1145 contrib_delegated_quad_list[0]->shared_quad_state; | 1147 contrib_delegated_quad_list[0]->shared_quad_state; |
| 1146 | 1148 |
| 1147 // When the layer owns a surface, the quads don't need to be clipped | 1149 // When the layer owns a surface, the quads don't need to be clipped |
| 1148 // further than they already specify. If they aren't clipped, then their | 1150 // further than they already specify. If they aren't clipped, then their |
| 1149 // clip rect is ignored, and they are not set as clipped. | 1151 // clip rect is ignored, and they are not set as clipped. |
| 1150 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); | 1152 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); |
| 1151 | 1153 |
| 1152 host_impl_->drawLayers(frame); | 1154 host_impl_->DrawLayers(&frame); |
| 1153 host_impl_->didDrawAllLayers(frame); | 1155 host_impl_->DidDrawAllLayers(frame); |
| 1154 } | 1156 } |
| 1155 | 1157 |
| 1156 TEST_F(DelegatedRendererLayerImplTestClip, | 1158 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1157 QuadsClipped_LayerUnclipped_Surface) { | 1159 QuadsClipped_LayerUnclipped_Surface) { |
| 1158 root_delegated_render_pass_is_clipped_ = true; | 1160 root_delegated_render_pass_is_clipped_ = true; |
| 1159 clip_delegated_renderer_layer_ = false; | 1161 clip_delegated_renderer_layer_ = false; |
| 1160 SetUpTest(); | 1162 SetUpTest(); |
| 1161 | 1163 |
| 1162 delegated_renderer_layer_->SetForceRenderSurface(true); | 1164 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1163 | 1165 |
| 1164 LayerTreeHostImpl::FrameData frame; | 1166 LayerTreeHostImpl::FrameData frame; |
| 1165 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 1167 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 1166 | 1168 |
| 1167 ASSERT_EQ(3u, frame.renderPasses.size()); | 1169 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1168 const QuadList& contrib_delegated_quad_list = frame.renderPasses[0]->quad_list
; | 1170 const QuadList& contrib_delegated_quad_list = |
| 1171 frame.render_passes[0]->quad_list; |
| 1169 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1172 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1170 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; | 1173 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1171 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1174 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1172 const SharedQuadState* root_delegated_shared_quad_state = root_delegated_quad_
list[0]->shared_quad_state; | 1175 const SharedQuadState* root_delegated_shared_quad_state = |
| 1176 root_delegated_quad_list[0]->shared_quad_state; |
| 1173 const SharedQuadState* contrib_delegated_shared_quad_state = | 1177 const SharedQuadState* contrib_delegated_shared_quad_state = |
| 1174 contrib_delegated_quad_list[0]->shared_quad_state; | 1178 contrib_delegated_quad_list[0]->shared_quad_state; |
| 1175 | 1179 |
| 1176 // When the quads have a clip of their own, it is used. | 1180 // When the quads have a clip of their own, it is used. |
| 1177 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), | 1181 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), |
| 1178 root_delegated_shared_quad_state->clip_rect.ToString()); | 1182 root_delegated_shared_quad_state->clip_rect.ToString()); |
| 1179 // Quads came with a clip rect. | 1183 // Quads came with a clip rect. |
| 1180 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1184 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
| 1181 | 1185 |
| 1182 host_impl_->drawLayers(frame); | 1186 host_impl_->DrawLayers(&frame); |
| 1183 host_impl_->didDrawAllLayers(frame); | 1187 host_impl_->DidDrawAllLayers(frame); |
| 1184 } | 1188 } |
| 1185 | 1189 |
| 1186 TEST_F(DelegatedRendererLayerImplTestClip, | 1190 TEST_F(DelegatedRendererLayerImplTestClip, |
| 1187 QuadsUnclipped_LayerClipped_Surface) { | 1191 QuadsUnclipped_LayerClipped_Surface) { |
| 1188 root_delegated_render_pass_is_clipped_ = false; | 1192 root_delegated_render_pass_is_clipped_ = false; |
| 1189 clip_delegated_renderer_layer_ = true; | 1193 clip_delegated_renderer_layer_ = true; |
| 1190 SetUpTest(); | 1194 SetUpTest(); |
| 1191 | 1195 |
| 1192 delegated_renderer_layer_->SetForceRenderSurface(true); | 1196 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1193 | 1197 |
| 1194 LayerTreeHostImpl::FrameData frame; | 1198 LayerTreeHostImpl::FrameData frame; |
| 1195 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 1199 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 1196 | 1200 |
| 1197 ASSERT_EQ(3u, frame.renderPasses.size()); | 1201 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1198 const QuadList& contrib_delegated_quad_list = | 1202 const QuadList& contrib_delegated_quad_list = |
| 1199 frame.renderPasses[0]->quad_list; | 1203 frame.render_passes[0]->quad_list; |
| 1200 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1204 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1201 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; | 1205 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1202 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1206 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1203 const SharedQuadState* root_delegated_shared_quad_state = | 1207 const SharedQuadState* root_delegated_shared_quad_state = |
| 1204 root_delegated_quad_list[0]->shared_quad_state; | 1208 root_delegated_quad_list[0]->shared_quad_state; |
| 1205 const SharedQuadState* contrib_delegated_shared_quad_state = | 1209 const SharedQuadState* contrib_delegated_shared_quad_state = |
| 1206 contrib_delegated_quad_list[0]->shared_quad_state; | 1210 contrib_delegated_quad_list[0]->shared_quad_state; |
| 1207 | 1211 |
| 1208 // When the layer owns a surface, the quads don't need to be clipped | 1212 // When the layer owns a surface, the quads don't need to be clipped |
| 1209 // further than they already specify. If they aren't clipped, then their | 1213 // further than they already specify. If they aren't clipped, then their |
| 1210 // clip rect is ignored, and they are not set as clipped. | 1214 // clip rect is ignored, and they are not set as clipped. |
| 1211 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); | 1215 EXPECT_FALSE(root_delegated_shared_quad_state->is_clipped); |
| 1212 | 1216 |
| 1213 host_impl_->drawLayers(frame); | 1217 host_impl_->DrawLayers(&frame); |
| 1214 host_impl_->didDrawAllLayers(frame); | 1218 host_impl_->DidDrawAllLayers(frame); |
| 1215 } | 1219 } |
| 1216 | 1220 |
| 1217 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { | 1221 TEST_F(DelegatedRendererLayerImplTestClip, QuadsClipped_LayerClipped_Surface) { |
| 1218 root_delegated_render_pass_is_clipped_ = true; | 1222 root_delegated_render_pass_is_clipped_ = true; |
| 1219 clip_delegated_renderer_layer_ = true; | 1223 clip_delegated_renderer_layer_ = true; |
| 1220 SetUpTest(); | 1224 SetUpTest(); |
| 1221 | 1225 |
| 1222 delegated_renderer_layer_->SetForceRenderSurface(true); | 1226 delegated_renderer_layer_->SetForceRenderSurface(true); |
| 1223 | 1227 |
| 1224 LayerTreeHostImpl::FrameData frame; | 1228 LayerTreeHostImpl::FrameData frame; |
| 1225 EXPECT_TRUE(host_impl_->prepareToDraw(frame)); | 1229 EXPECT_TRUE(host_impl_->PrepareToDraw(&frame)); |
| 1226 | 1230 |
| 1227 ASSERT_EQ(3u, frame.renderPasses.size()); | 1231 ASSERT_EQ(3u, frame.render_passes.size()); |
| 1228 const QuadList& contrib_delegated_quad_list = | 1232 const QuadList& contrib_delegated_quad_list = |
| 1229 frame.renderPasses[0]->quad_list; | 1233 frame.render_passes[0]->quad_list; |
| 1230 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); | 1234 ASSERT_EQ(2u, contrib_delegated_quad_list.size()); |
| 1231 const QuadList& root_delegated_quad_list = frame.renderPasses[1]->quad_list; | 1235 const QuadList& root_delegated_quad_list = frame.render_passes[1]->quad_list; |
| 1232 ASSERT_EQ(5u, root_delegated_quad_list.size()); | 1236 ASSERT_EQ(5u, root_delegated_quad_list.size()); |
| 1233 const SharedQuadState* root_delegated_shared_quad_state = | 1237 const SharedQuadState* root_delegated_shared_quad_state = |
| 1234 root_delegated_quad_list[0]->shared_quad_state; | 1238 root_delegated_quad_list[0]->shared_quad_state; |
| 1235 const SharedQuadState* contrib_delegated_shared_quad_state = | 1239 const SharedQuadState* contrib_delegated_shared_quad_state = |
| 1236 contrib_delegated_quad_list[0]->shared_quad_state; | 1240 contrib_delegated_quad_list[0]->shared_quad_state; |
| 1237 | 1241 |
| 1238 // When the quads have a clip of their own, it is used, but it is | 1242 // When the quads have a clip of their own, it is used, but it is |
| 1239 // combined with the clip rect of the delegated renderer layer. If the | 1243 // combined with the clip rect of the delegated renderer layer. If the |
| 1240 // layer owns a surface, then it does not have a clip rect of its own. | 1244 // layer owns a surface, then it does not have a clip rect of its own. |
| 1241 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), | 1245 EXPECT_EQ(gfx::Rect(5, 5, 40, 40).ToString(), |
| 1242 root_delegated_shared_quad_state->clip_rect.ToString()); | 1246 root_delegated_shared_quad_state->clip_rect.ToString()); |
| 1243 // Quads came with a clip rect. | 1247 // Quads came with a clip rect. |
| 1244 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); | 1248 EXPECT_TRUE(root_delegated_shared_quad_state->is_clipped); |
| 1245 | 1249 |
| 1246 host_impl_->drawLayers(frame); | 1250 host_impl_->DrawLayers(&frame); |
| 1247 host_impl_->didDrawAllLayers(frame); | 1251 host_impl_->DidDrawAllLayers(frame); |
| 1248 } | 1252 } |
| 1249 | 1253 |
| 1250 } // namespace | 1254 } // namespace |
| 1251 } // namespace cc | 1255 } // namespace cc |
| OLD | NEW |