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