Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(36)

Side by Side Diff: cc/delegated_renderer_layer_impl_unittest.cc

Issue 11821015: cc: Use the size of the source frame along with the source frame's renderpasses (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 delegatedRendererLayer->setTransform(transform); 83 delegatedRendererLayer->setTransform(transform);
84 84
85 ScopedPtrVector<RenderPass> delegatedRenderPasses; 85 ScopedPtrVector<RenderPass> delegatedRenderPasses;
86 TestRenderPass* pass1 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 6), gfx::Rect(6, 6, 6, 6), gfx::Transform()); 86 TestRenderPass* pass1 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 6), gfx::Rect(6, 6, 6, 6), gfx::Transform());
87 addQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u); 87 addQuad(pass1, gfx::Rect(0, 0, 6, 6), 33u);
88 TestRenderPass* pass2 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 7), gfx::Rect(7, 7, 7, 7), gfx::Transform()); 88 TestRenderPass* pass2 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 7), gfx::Rect(7, 7, 7, 7), gfx::Transform());
89 addQuad(pass2, gfx::Rect(0, 0, 7, 7), 22u); 89 addQuad(pass2, gfx::Rect(0, 0, 7, 7), 22u);
90 addRenderPassQuad(pass2, pass1); 90 addRenderPassQuad(pass2, pass1);
91 TestRenderPass* pass3 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 8), gfx::Rect(8, 8, 8, 8), gfx::Transform()); 91 TestRenderPass* pass3 = addRenderPass(delegatedRenderPasses, RenderPass: :Id(9, 8), gfx::Rect(8, 8, 8, 8), gfx::Transform());
92 addRenderPassQuad(pass3, pass2); 92 addRenderPassQuad(pass3, pass2);
93 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses); 93 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses, gfx::Size (10, 10));
94 94
95 // The RenderPasses should be taken by the layer. 95 // The RenderPasses should be taken by the layer.
96 EXPECT_EQ(0u, delegatedRenderPasses.size()); 96 EXPECT_EQ(0u, delegatedRenderPasses.size());
97 97
98 m_rootLayerPtr = rootLayer.get(); 98 m_rootLayerPtr = rootLayer.get();
99 m_layerBeforePtr = layerBefore.get(); 99 m_layerBeforePtr = layerBefore.get();
100 m_layerAfterPtr = layerAfter.get(); 100 m_layerAfterPtr = layerAfter.get();
101 m_delegatedRendererLayerPtr = delegatedRendererLayer.get(); 101 m_delegatedRendererLayerPtr = delegatedRendererLayer.get();
102 102
103 // Force the delegated RenderPasses to come before the RenderPass from l ayerAfter. 103 // Force the delegated RenderPasses to come before the RenderPass from l ayerAfter.
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); 411 quadSink.append(colorQuad.PassAs<DrawQuad>(), data);
412 412
413 colorQuad = SolidColorDrawQuad::Create(); 413 colorQuad = SolidColorDrawQuad::Create();
414 colorQuad->SetNew(sharedState, gfx::Rect(10, 0, 10, 10), 3u); 414 colorQuad->SetNew(sharedState, gfx::Rect(10, 0, 10, 10), 3u);
415 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); 415 quadSink.append(colorQuad.PassAs<DrawQuad>(), data);
416 416
417 colorQuad = SolidColorDrawQuad::Create(); 417 colorQuad = SolidColorDrawQuad::Create();
418 colorQuad->SetNew(sharedState, gfx::Rect(10, 10, 10, 10), 4u); 418 colorQuad->SetNew(sharedState, gfx::Rect(10, 10, 10, 10), 4u);
419 quadSink.append(colorQuad.PassAs<DrawQuad>(), data); 419 quadSink.append(colorQuad.PassAs<DrawQuad>(), data);
420 420
421 delegatedRendererLayer->setRenderPasses(delegatedRenderPasses); 421 delegatedRendererLayer->setRenderPasses(
422 delegatedRenderPasses, gfx::Size(20, 20));
422 423
423 // The RenderPasses should be taken by the layer. 424 // The RenderPasses should be taken by the layer.
424 EXPECT_EQ(0u, delegatedRenderPasses.size()); 425 EXPECT_EQ(0u, delegatedRenderPasses.size());
425 426
426 m_rootLayerPtr = rootLayer.get(); 427 m_rootLayerPtr = rootLayer.get();
427 m_delegatedRendererLayerPtr = delegatedRendererLayer.get(); 428 m_delegatedRendererLayerPtr = delegatedRendererLayer.get();
428 429
429 rootLayer->addChild(delegatedRendererLayer.PassAs<LayerImpl>()); 430 rootLayer->addChild(delegatedRendererLayer.PassAs<LayerImpl>());
430 431
431 m_hostImpl->activeTree()->SetRootLayer(rootLayer.Pass()); 432 m_hostImpl->activeTree()->SetRootLayer(rootLayer.Pass());
(...skipping 21 matching lines...) Expand all
453 EXPECT_EQ(sharedState, quadList[1]->shared_quad_state); 454 EXPECT_EQ(sharedState, quadList[1]->shared_quad_state);
454 EXPECT_EQ(sharedState, quadList[2]->shared_quad_state); 455 EXPECT_EQ(sharedState, quadList[2]->shared_quad_state);
455 EXPECT_EQ(sharedState, quadList[3]->shared_quad_state); 456 EXPECT_EQ(sharedState, quadList[3]->shared_quad_state);
456 457
457 // The state should be transformed only once. 458 // The state should be transformed only once.
458 // The x/y values are: position (20) + transform (8 * 2) = 36 459 // The x/y values are: position (20) + transform (8 * 2) = 36
459 // 36 - (width / 2) = 36 - 30 / 2 = 21 460 // 36 - (width / 2) = 36 - 30 / 2 = 21
460 EXPECT_RECT_EQ(gfx::Rect(21, 21, 100, 100), sharedState->clipped_rect_in_tar get); 461 EXPECT_RECT_EQ(gfx::Rect(21, 21, 100, 100), sharedState->clipped_rect_in_tar get);
461 EXPECT_RECT_EQ(gfx::Rect(21, 21, 100, 100), sharedState->clip_rect); 462 EXPECT_RECT_EQ(gfx::Rect(21, 21, 100, 100), sharedState->clip_rect);
462 gfx::Transform expected; 463 gfx::Transform expected;
464 // This is the transform from the layer's space to its target.
463 // The position (20) - the width / scale (30 / 2) = 20 - 15 = 5 465 // The position (20) - the width / scale (30 / 2) = 20 - 15 = 5
464 expected.Translate(5.0, 5.0); 466 expected.Translate(5.0, 5.0);
465 expected.Scale(2.0, 2.0); 467 expected.Scale(2.0, 2.0);
466 expected.Translate(8.0, 8.0); 468 expected.Translate(8.0, 8.0);
469 // The frame has size 20x20 but the layer's bounds are 30x30.
470 expected.Scale(20.0 / 30.0, 20.0 / 30.0);
471 // This is the transform within the source frame.
467 expected.Scale(1.5, 1.5); 472 expected.Scale(1.5, 1.5);
468 expected.Translate(7.0, 7.0); 473 expected.Translate(7.0, 7.0);
469 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->content_to_target_tra nsform); 474 EXPECT_TRANSFORMATION_MATRIX_EQ(expected, sharedState->content_to_target_tra nsform);
470 475
471 m_hostImpl->drawLayers(frame); 476 m_hostImpl->drawLayers(frame);
472 m_hostImpl->didDrawAllLayers(frame); 477 m_hostImpl->didDrawAllLayers(frame);
473 } 478 }
474 479
475 } // namespace 480 } // namespace
476 } // namespace cc 481 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698