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/quad_sink.h" | 9 #include "cc/quad_sink.h" |
10 #include "cc/render_pass_draw_quad.h" | 10 #include "cc/render_pass_draw_quad.h" |
11 #include "cc/scoped_ptr_vector.h" | 11 #include "cc/scoped_ptr_vector.h" |
12 #include "cc/single_thread_proxy.h" | 12 #include "cc/single_thread_proxy.h" |
13 #include "cc/solid_color_draw_quad.h" | 13 #include "cc/solid_color_draw_quad.h" |
14 #include "cc/solid_color_layer_impl.h" | 14 #include "cc/solid_color_layer_impl.h" |
15 #include "cc/test/fake_proxy.h" | 15 #include "cc/test/fake_proxy.h" |
16 #include "cc/test/fake_web_compositor_output_surface.h" | 16 #include "cc/test/fake_web_compositor_output_surface.h" |
17 #include "cc/test/fake_web_graphics_context_3d.h" | 17 #include "cc/test/fake_web_graphics_context_3d.h" |
18 #include "cc/test/geometry_test_utils.h" | 18 #include "cc/test/geometry_test_utils.h" |
19 #include "cc/test/mock_quad_culler.h" | 19 #include "cc/test/mock_quad_culler.h" |
20 #include "cc/test/render_pass_test_common.h" | 20 #include "cc/test/render_pass_test_common.h" |
21 #include "testing/gtest/include/gtest/gtest.h" | 21 #include "testing/gtest/include/gtest/gtest.h" |
22 #include <public/WebTransformationMatrix.h> | 22 #include "ui/gfx/transform.h" |
23 | 23 |
24 using WebKit::FakeWebCompositorOutputSurface; | 24 using WebKit::FakeWebCompositorOutputSurface; |
25 using WebKit::FakeWebGraphicsContext3D; | 25 using WebKit::FakeWebGraphicsContext3D; |
26 using WebKit::WebTransformationMatrix; | |
27 | 26 |
28 using namespace WebKitTests; | 27 using namespace WebKitTests; |
29 | 28 |
30 namespace cc { | 29 namespace cc { |
31 namespace { | 30 namespace { |
32 | 31 |
33 class DelegatedRendererLayerImplTest : public testing::Test, public LayerTreeHos
tImplClient { | 32 class DelegatedRendererLayerImplTest : public testing::Test, public LayerTreeHos
tImplClient { |
34 public: | 33 public: |
35 DelegatedRendererLayerImplTest() | 34 DelegatedRendererLayerImplTest() |
36 : m_proxy(scoped_ptr<Thread>(NULL)) | 35 : m_proxy(scoped_ptr<Thread>(NULL)) |
(...skipping 22 matching lines...) Expand all Loading... |
59 scoped_ptr<GraphicsContext> createContext() | 58 scoped_ptr<GraphicsContext> createContext() |
60 { | 59 { |
61 return FakeWebCompositorOutputSurface::create(scoped_ptr<WebKit::WebGrap
hicsContext3D>(new FakeWebGraphicsContext3D)).PassAs<GraphicsContext>(); | 60 return FakeWebCompositorOutputSurface::create(scoped_ptr<WebKit::WebGrap
hicsContext3D>(new FakeWebGraphicsContext3D)).PassAs<GraphicsContext>(); |
62 } | 61 } |
63 | 62 |
64 FakeProxy m_proxy; | 63 FakeProxy m_proxy; |
65 DebugScopedSetImplThreadAndMainThreadBlocked m_alwaysImplThreadAndMainThread
Blocked; | 64 DebugScopedSetImplThreadAndMainThreadBlocked m_alwaysImplThreadAndMainThread
Blocked; |
66 scoped_ptr<LayerTreeHostImpl> m_hostImpl; | 65 scoped_ptr<LayerTreeHostImpl> m_hostImpl; |
67 }; | 66 }; |
68 | 67 |
69 static TestRenderPass* addRenderPass(ScopedPtrVector<RenderPass>& passList, Rend
erPass::Id id, gfx::Rect outputRect, WebTransformationMatrix rootTransform) | 68 static TestRenderPass* addRenderPass(ScopedPtrVector<RenderPass>& passList, Rend
erPass::Id id, gfx::Rect outputRect, gfx::Transform rootTransform) |
70 { | 69 { |
71 scoped_ptr<TestRenderPass> pass(TestRenderPass::Create()); | 70 scoped_ptr<TestRenderPass> pass(TestRenderPass::Create()); |
72 pass->SetNew(id, outputRect, outputRect, rootTransform); | 71 pass->SetNew(id, outputRect, outputRect, rootTransform); |
73 TestRenderPass* saved = pass.get(); | 72 TestRenderPass* saved = pass.get(); |
74 passList.append(pass.PassAs<RenderPass>()); | 73 passList.append(pass.PassAs<RenderPass>()); |
75 return saved; | 74 return saved; |
76 } | 75 } |
77 | 76 |
78 static SolidColorDrawQuad* addQuad(TestRenderPass* pass, gfx::Rect rect, SkColor
color) | 77 static SolidColorDrawQuad* addQuad(TestRenderPass* pass, gfx::Rect rect, SkColor
color) |
79 { | 78 { |
80 MockQuadCuller quadSink(pass->quad_list, pass->shared_quad_state_list); | 79 MockQuadCuller quadSink(pass->quad_list, pass->shared_quad_state_list); |
81 AppendQuadsData data(pass->id); | 80 AppendQuadsData data(pass->id); |
82 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState::
Create()); | 81 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState::
Create()); |
83 sharedState->SetAll(WebTransformationMatrix(), rect, rect, rect, false, 1); | 82 sharedState->SetAll(gfx::Transform(), rect, rect, rect, false, 1); |
84 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create(); | 83 scoped_ptr<SolidColorDrawQuad> quad = SolidColorDrawQuad::Create(); |
85 quad->SetNew(sharedState, rect, color); | 84 quad->SetNew(sharedState, rect, color); |
86 SolidColorDrawQuad* quadPtr = quad.get(); | 85 SolidColorDrawQuad* quadPtr = quad.get(); |
87 quadSink.append(quad.PassAs<DrawQuad>(), data); | 86 quadSink.append(quad.PassAs<DrawQuad>(), data); |
88 return quadPtr; | 87 return quadPtr; |
89 } | 88 } |
90 | 89 |
91 static void addRenderPassQuad(TestRenderPass* toPass, TestRenderPass* contributi
ngPass) | 90 static void addRenderPassQuad(TestRenderPass* toPass, TestRenderPass* contributi
ngPass) |
92 { | 91 { |
93 MockQuadCuller quadSink(toPass->quad_list, toPass->shared_quad_state_list); | 92 MockQuadCuller quadSink(toPass->quad_list, toPass->shared_quad_state_list); |
94 AppendQuadsData data(toPass->id); | 93 AppendQuadsData data(toPass->id); |
95 gfx::Rect outputRect = contributingPass->output_rect; | 94 gfx::Rect outputRect = contributingPass->output_rect; |
96 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState::
Create()); | 95 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadState::
Create()); |
97 sharedState->SetAll(WebTransformationMatrix(), outputRect, outputRect, outpu
tRect, false, 1); | 96 sharedState->SetAll(gfx::Transform(), outputRect, outputRect, outputRect, fa
lse, 1); |
98 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create(); | 97 scoped_ptr<RenderPassDrawQuad> quad = RenderPassDrawQuad::Create(); |
99 quad->SetNew(sharedState, outputRect, contributingPass->id, false, 0, output
Rect, 0, 0, 0, 0); | 98 quad->SetNew(sharedState, outputRect, contributingPass->id, false, 0, output
Rect, 0, 0, 0, 0); |
100 quadSink.append(quad.PassAs<DrawQuad>(), data); | 99 quadSink.append(quad.PassAs<DrawQuad>(), data); |
101 } | 100 } |
102 | 101 |
103 class DelegatedRendererLayerImplTestSimple : public DelegatedRendererLayerImplTe
st { | 102 class DelegatedRendererLayerImplTestSimple : public DelegatedRendererLayerImplTe
st { |
104 public: | 103 public: |
105 DelegatedRendererLayerImplTestSimple() | 104 DelegatedRendererLayerImplTestSimple() |
106 : DelegatedRendererLayerImplTest() | 105 : DelegatedRendererLayerImplTest() |
107 { | 106 { |
(...skipping 14 matching lines...) Expand all Loading... |
122 layerAfter->setPosition(gfx::Point(5, 5)); | 121 layerAfter->setPosition(gfx::Point(5, 5)); |
123 layerAfter->setBounds(gfx::Size(15, 15)); | 122 layerAfter->setBounds(gfx::Size(15, 15)); |
124 layerAfter->setContentBounds(gfx::Size(15, 15)); | 123 layerAfter->setContentBounds(gfx::Size(15, 15)); |
125 layerAfter->setDrawsContent(true); | 124 layerAfter->setDrawsContent(true); |
126 layerAfter->setForceRenderSurface(true); | 125 layerAfter->setForceRenderSurface(true); |
127 | 126 |
128 delegatedRendererLayer->setPosition(gfx::Point(3, 3)); | 127 delegatedRendererLayer->setPosition(gfx::Point(3, 3)); |
129 delegatedRendererLayer->setBounds(gfx::Size(10, 10)); | 128 delegatedRendererLayer->setBounds(gfx::Size(10, 10)); |
130 delegatedRendererLayer->setContentBounds(gfx::Size(10, 10)); | 129 delegatedRendererLayer->setContentBounds(gfx::Size(10, 10)); |
131 delegatedRendererLayer->setDrawsContent(true); | 130 delegatedRendererLayer->setDrawsContent(true); |
132 WebTransformationMatrix transform; | 131 gfx::Transform transform; |
133 transform.translate(1, 1); | 132 transform.Translate(1, 1); |
134 delegatedRendererLayer->setTransform(transform); | 133 delegatedRendererLayer->setTransform(transform); |
135 | 134 |
136 ScopedPtrVector<RenderPass> delegatedRenderPasses; | 135 ScopedPtrVector<RenderPass> delegatedRenderPasses; |
137 TestRenderPass* pass1 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 6), gfx::Rect(6, 6, 6, 6), WebTransformationMatrix()); | 136 TestRenderPass* pass1 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 6), gfx::Rect(6, 6, 6, 6), gfx::Transform()); |
138 addQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u); | 137 addQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u); |
139 TestRenderPass* pass2 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 7), gfx::Rect(7, 7, 7, 7), WebTransformationMatrix()); | 138 TestRenderPass* pass2 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 7), gfx::Rect(7, 7, 7, 7), gfx::Transform()); |
140 addQuad(pass2, gfx::Rect(0, 0, 7, 7), 22u); | 139 addQuad(pass2, gfx::Rect(0, 0, 7, 7), 22u); |
141 addRenderPassQuad(pass2, pass1); | 140 addRenderPassQuad(pass2, pass1); |
142 TestRenderPass* pass3 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 8), gfx::Rect(8, 8, 8, 8), WebTransformationMatrix()); | 141 TestRenderPass* pass3 = addRenderPass(delegatedRenderPasses, RenderPass:
:Id(9, 8), gfx::Rect(8, 8, 8, 8), gfx::Transform()); |
143 addRenderPassQuad(pass3, pass2); | 142 addRenderPassQuad(pass3, pass2); |
144 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses); | 143 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses); |
145 | 144 |
146 // The RenderPasses should be taken by the layer. | 145 // The RenderPasses should be taken by the layer. |
147 EXPECT_EQ(0u, delegatedRenderPasses.size()); | 146 EXPECT_EQ(0u, delegatedRenderPasses.size()); |
148 | 147 |
149 m_rootLayerPtr = rootLayer.get(); | 148 m_rootLayerPtr = rootLayer.get(); |
150 m_layerBeforePtr = layerBefore.get(); | 149 m_layerBeforePtr = layerBefore.get(); |
151 m_layerAfterPtr = layerAfter.get(); | 150 m_layerAfterPtr = layerAfter.get(); |
152 m_delegatedRendererLayerPtr = delegatedRendererLayer.get(); | 151 m_delegatedRendererLayerPtr = delegatedRendererLayer.get(); |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
253 LayerTreeHostImpl::FrameData frame; | 252 LayerTreeHostImpl::FrameData frame; |
254 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); | 253 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); |
255 m_hostImpl->drawLayers(frame); | 254 m_hostImpl->drawLayers(frame); |
256 m_hostImpl->didDrawAllLayers(frame); | 255 m_hostImpl->didDrawAllLayers(frame); |
257 | 256 |
258 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender
erLayer added two contributing passes. | 257 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender
erLayer added two contributing passes. |
259 ASSERT_EQ(5u, frame.renderPasses.size()); | 258 ASSERT_EQ(5u, frame.renderPasses.size()); |
260 | 259 |
261 // The DelegatedRendererLayer is at position 3,3 compared to its target, and
has a translation transform of 1,1. | 260 // The DelegatedRendererLayer is at position 3,3 compared to its target, and
has a translation transform of 1,1. |
262 // So its root RenderPass' quads should all be transformed by that combined
amount. | 261 // So its root RenderPass' quads should all be transformed by that combined
amount. |
263 WebTransformationMatrix transform; | 262 gfx::Transform transform; |
264 transform.translate(4, 4); | 263 transform.Translate(4, 4); |
265 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, frame.renderPasses[3]->quad_list[
0]->quadTransform()); | 264 EXPECT_TRANSFORMATION_MATRIX_EQ(transform, frame.renderPasses[3]->quad_list[
0]->quadTransform()); |
266 | 265 |
267 // Quads from non-root RenderPasses should not be shifted though. | 266 // Quads from non-root RenderPasses should not be shifted though. |
268 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); | 267 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); |
269 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[2]->quad_list[0]->quadTransform()); | 268 EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), frame.renderPasses[2]->qua
d_list[0]->quadTransform()); |
270 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[2]->quad_list[1]->quadTransform()); | 269 EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), frame.renderPasses[2]->qua
d_list[1]->quadTransform()); |
271 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); | 270 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); |
272 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[1]->quad_list[0]->quadTransform()); | 271 EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), frame.renderPasses[1]->qua
d_list[0]->quadTransform()); |
273 } | 272 } |
274 | 273 |
275 class DelegatedRendererLayerImplTestOwnSurface : public DelegatedRendererLayerIm
plTestSimple { | 274 class DelegatedRendererLayerImplTestOwnSurface : public DelegatedRendererLayerIm
plTestSimple { |
276 public: | 275 public: |
277 DelegatedRendererLayerImplTestOwnSurface() | 276 DelegatedRendererLayerImplTestOwnSurface() |
278 : DelegatedRendererLayerImplTestSimple() | 277 : DelegatedRendererLayerImplTestSimple() |
279 { | 278 { |
280 m_delegatedRendererLayerPtr->setForceRenderSurface(true); | 279 m_delegatedRendererLayerPtr->setForceRenderSurface(true); |
281 } | 280 } |
282 }; | 281 }; |
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
366 LayerTreeHostImpl::FrameData frame; | 365 LayerTreeHostImpl::FrameData frame; |
367 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); | 366 EXPECT_TRUE(m_hostImpl->prepareToDraw(frame)); |
368 m_hostImpl->drawLayers(frame); | 367 m_hostImpl->drawLayers(frame); |
369 m_hostImpl->didDrawAllLayers(frame); | 368 m_hostImpl->didDrawAllLayers(frame); |
370 | 369 |
371 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender
erLayer added two contributing passes and its owned surface added one pass. | 370 // Each non-DelegatedRendererLayer added one RenderPass. The DelegatedRender
erLayer added two contributing passes and its owned surface added one pass. |
372 ASSERT_EQ(6u, frame.renderPasses.size()); | 371 ASSERT_EQ(6u, frame.renderPasses.size()); |
373 | 372 |
374 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root Ren
derPass' quads do not need to be | 373 // Because the DelegatedRendererLayer owns a RenderSurfaceImpl, its root Ren
derPass' quads do not need to be |
375 // modified at all. | 374 // modified at all. |
376 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[3]->quad_list[0]->quadTransform()); | 375 EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), frame.renderPasses[3]->qua
d_list[0]->quadTransform()); |
377 | 376 |
378 // Quads from non-root RenderPasses should not be shifted though. | 377 // Quads from non-root RenderPasses should not be shifted though. |
379 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); | 378 ASSERT_EQ(2u, frame.renderPasses[2]->quad_list.size()); |
380 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[2]->quad_list[0]->quadTransform()); | 379 EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), frame.renderPasses[2]->qua
d_list[0]->quadTransform()); |
381 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[2]->quad_list[1]->quadTransform()); | 380 EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), frame.renderPasses[2]->qua
d_list[1]->quadTransform()); |
382 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); | 381 ASSERT_EQ(1u, frame.renderPasses[1]->quad_list.size()); |
383 EXPECT_TRANSFORMATION_MATRIX_EQ(WebTransformationMatrix(), frame.renderPasse
s[1]->quad_list[0]->quadTransform()); | 382 EXPECT_TRANSFORMATION_MATRIX_EQ(gfx::Transform(), frame.renderPasses[1]->qua
d_list[0]->quadTransform()); |
384 } | 383 } |
385 | 384 |
386 class DelegatedRendererLayerImplTestSharedData : public DelegatedRendererLayerIm
plTest { | 385 class DelegatedRendererLayerImplTestSharedData : public DelegatedRendererLayerIm
plTest { |
387 public: | 386 public: |
388 DelegatedRendererLayerImplTestSharedData() | 387 DelegatedRendererLayerImplTestSharedData() |
389 : DelegatedRendererLayerImplTest() | 388 : DelegatedRendererLayerImplTest() |
390 { | 389 { |
391 scoped_ptr<LayerImpl> rootLayer = LayerImpl::create(1); | 390 scoped_ptr<LayerImpl> rootLayer = LayerImpl::create(1); |
392 scoped_ptr<DelegatedRendererLayerImpl> delegatedRendererLayer = Delegate
dRendererLayerImpl::create(2); | 391 scoped_ptr<DelegatedRendererLayerImpl> delegatedRendererLayer = Delegate
dRendererLayerImpl::create(2); |
393 | 392 |
394 m_hostImpl->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); | 393 m_hostImpl->setViewportSize(gfx::Size(100, 100), gfx::Size(100, 100)); |
395 rootLayer->setBounds(gfx::Size(100, 100)); | 394 rootLayer->setBounds(gfx::Size(100, 100)); |
396 | 395 |
397 delegatedRendererLayer->setPosition(gfx::Point(20, 20)); | 396 delegatedRendererLayer->setPosition(gfx::Point(20, 20)); |
398 delegatedRendererLayer->setBounds(gfx::Size(20, 20)); | 397 delegatedRendererLayer->setBounds(gfx::Size(20, 20)); |
399 delegatedRendererLayer->setContentBounds(gfx::Size(20, 20)); | 398 delegatedRendererLayer->setContentBounds(gfx::Size(20, 20)); |
400 delegatedRendererLayer->setDrawsContent(true); | 399 delegatedRendererLayer->setDrawsContent(true); |
401 WebTransformationMatrix transform; | 400 gfx::Transform transform; |
402 transform.translate(10, 10); | 401 transform.Translate(10, 10); |
403 delegatedRendererLayer->setTransform(transform); | 402 delegatedRendererLayer->setTransform(transform); |
404 | 403 |
405 ScopedPtrVector<RenderPass> delegatedRenderPasses; | 404 ScopedPtrVector<RenderPass> delegatedRenderPasses; |
406 gfx::Rect passRect(0, 0, 50, 50); | 405 gfx::Rect passRect(0, 0, 50, 50); |
407 TestRenderPass* pass = addRenderPass(delegatedRenderPasses, RenderPass::
Id(9, 6), passRect, WebTransformationMatrix()); | 406 TestRenderPass* pass = addRenderPass(delegatedRenderPasses, RenderPass::
Id(9, 6), passRect, gfx::Transform()); |
408 MockQuadCuller quadSink(pass->quad_list, pass->shared_quad_state_list); | 407 MockQuadCuller quadSink(pass->quad_list, pass->shared_quad_state_list); |
409 AppendQuadsData data(pass->id); | 408 AppendQuadsData data(pass->id); |
410 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadSta
te::Create()); | 409 SharedQuadState* sharedState = quadSink.useSharedQuadState(SharedQuadSta
te::Create()); |
411 sharedState->SetAll(WebTransformationMatrix(), passRect, passRect, passR
ect, false, 1); | 410 sharedState->SetAll(gfx::Transform(), passRect, passRect, passRect, fals
e, 1); |
412 scoped_ptr<SolidColorDrawQuad> colorQuad; | 411 scoped_ptr<SolidColorDrawQuad> colorQuad; |
413 | 412 |
414 colorQuad = SolidColorDrawQuad::Create(); | 413 colorQuad = SolidColorDrawQuad::Create(); |
415 colorQuad->SetNew(sharedState, gfx::Rect(0, 0, 10, 10), 1u); | 414 colorQuad->SetNew(sharedState, gfx::Rect(0, 0, 10, 10), 1u); |
416 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); | 415 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); |
417 | 416 |
418 colorQuad = SolidColorDrawQuad::Create(); | 417 colorQuad = SolidColorDrawQuad::Create(); |
419 colorQuad->SetNew(sharedState, gfx::Rect(0, 10, 10, 10), 2u); | 418 colorQuad->SetNew(sharedState, gfx::Rect(0, 10, 10, 10), 2u); |
420 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); | 419 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); |
421 | 420 |
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
460 ASSERT_EQ(4u, quadList.size()); | 459 ASSERT_EQ(4u, quadList.size()); |
461 | 460 |
462 // All quads should share the same state. | 461 // All quads should share the same state. |
463 const SharedQuadState* sharedState = quadList[0]->shared_quad_state; | 462 const SharedQuadState* sharedState = quadList[0]->shared_quad_state; |
464 EXPECT_EQ(sharedState, quadList[1]->shared_quad_state); | 463 EXPECT_EQ(sharedState, quadList[1]->shared_quad_state); |
465 EXPECT_EQ(sharedState, quadList[2]->shared_quad_state); | 464 EXPECT_EQ(sharedState, quadList[2]->shared_quad_state); |
466 EXPECT_EQ(sharedState, quadList[3]->shared_quad_state); | 465 EXPECT_EQ(sharedState, quadList[3]->shared_quad_state); |
467 | 466 |
468 // The state should be transformed only once. | 467 // The state should be transformed only once. |
469 EXPECT_RECT_EQ(gfx::Rect(30, 30, 50, 50), sharedState->clipped_rect_in_targe
t); | 468 EXPECT_RECT_EQ(gfx::Rect(30, 30, 50, 50), sharedState->clipped_rect_in_targe
t); |
470 WebTransformationMatrix expected; | 469 gfx::Transform expected; |
471 expected.translate(30, 30); | 470 expected.Translate(30, 30); |
472 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->content_to_target_tra
nsform); | 471 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->content_to_target_tra
nsform); |
473 } | 472 } |
474 | 473 |
475 } // namespace | 474 } // namespace |
476 } // namespace cc | 475 } // namespace cc |
OLD | NEW |