| 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 |