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

Side by Side Diff: cc/CCLayerTreeHostCommon.cpp

Issue 10915313: cc: Apply the layer's initial CSS scale to the contentsScale to render text at the right resolution. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 8 years, 2 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
« no previous file with comments | « cc/CCLayerTreeHostCommon.h ('k') | cc/CCLayerTreeHostCommonTest.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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 5
6 #include "config.h" 6 #include "config.h"
7 7
8 #include "CCLayerTreeHostCommon.h" 8 #include "CCLayerTreeHostCommon.h"
9 9
10 #include "CCLayerImpl.h" 10 #include "CCLayerImpl.h"
(...skipping 315 matching lines...) Expand 10 before | Expand all | Expand 10 after
326 // The adjustment allows us to continue using the scrollCompensation on the next surface. 326 // The adjustment allows us to continue using the scrollCompensation on the next surface.
327 // Step 1 (right-most in the math): transform from the new surface to the o riginal ancestor surface 327 // Step 1 (right-most in the math): transform from the new surface to the o riginal ancestor surface
328 // Step 2: apply the scroll compensation 328 // Step 2: apply the scroll compensation
329 // Step 3: transform back to the new surface. 329 // Step 3: transform back to the new surface.
330 if (layer->renderSurface() && !nextScrollCompensationMatrix.isIdentity()) 330 if (layer->renderSurface() && !nextScrollCompensationMatrix.isIdentity())
331 nextScrollCompensationMatrix = layer->renderSurface()->drawTransform().i nverse() * nextScrollCompensationMatrix * layer->renderSurface()->drawTransform( ); 331 nextScrollCompensationMatrix = layer->renderSurface()->drawTransform().i nverse() * nextScrollCompensationMatrix * layer->renderSurface()->drawTransform( );
332 332
333 return nextScrollCompensationMatrix; 333 return nextScrollCompensationMatrix;
334 } 334 }
335 335
336 // There is no contentsScale on impl thread.
337 static inline void updateLayerContentsScale(CCLayerImpl*, const WebTransformatio nMatrix&, float, float) { }
338
339 static inline void updateLayerContentsScale(LayerChromium* layer, const WebTrans formationMatrix& combinedTransform, float deviceScaleFactor, float pageScaleFact or)
340 {
341 float cssScale = layer->initialCssScale();
342 if (!cssScale) {
343 FloatPoint transformScale = CCMathUtil::computeTransform2dScaleComponent s(combinedTransform);
344 float combinedScale = fmaxf(transformScale.x(), transformScale.y());
345 cssScale = combinedScale / deviceScaleFactor;
346 if (!layer->boundsContainPageScale())
347 cssScale /= pageScaleFactor;
348 layer->setInitialCssScale(cssScale);
349 }
350
351 float contentsScale = cssScale * deviceScaleFactor;
352 if (!layer->boundsContainPageScale())
353 contentsScale *= pageScaleFactor;
354 layer->setContentsScale(contentsScale);
355
356 LayerChromium* maskLayer = layer->maskLayer();
357 if (maskLayer)
358 maskLayer->setContentsScale(contentsScale);
359
360 LayerChromium* replicaMaskLayer = layer->replicaLayer() ? layer->replicaLaye r()->maskLayer() : 0;
361 if (replicaMaskLayer)
362 replicaMaskLayer->setContentsScale(contentsScale);
363 }
364
336 // Should be called just before the recursive calculateDrawTransformsInternal(). 365 // Should be called just before the recursive calculateDrawTransformsInternal().
337 template<typename LayerType, typename LayerList> 366 template<typename LayerType, typename LayerList>
338 void setupRootLayerAndSurfaceForRecursion(LayerType* rootLayer, LayerList& rende rSurfaceLayerList, const IntSize& deviceViewportSize) 367 void setupRootLayerAndSurfaceForRecursion(LayerType* rootLayer, LayerList& rende rSurfaceLayerList, const IntSize& deviceViewportSize)
339 { 368 {
340 if (!rootLayer->renderSurface()) 369 if (!rootLayer->renderSurface())
341 rootLayer->createRenderSurface(); 370 rootLayer->createRenderSurface();
342 371
343 rootLayer->renderSurface()->setContentRect(IntRect(IntPoint::zero(), deviceV iewportSize)); 372 rootLayer->renderSurface()->setContentRect(IntRect(IntPoint::zero(), deviceV iewportSize));
344 rootLayer->renderSurface()->clearLayerLists(); 373 rootLayer->renderSurface()->clearLayerLists();
345 374
346 ASSERT(renderSurfaceLayerList.isEmpty()); 375 ASSERT(renderSurfaceLayerList.isEmpty());
347 renderSurfaceLayerList.append(rootLayer); 376 renderSurfaceLayerList.append(rootLayer);
348 } 377 }
349 378
350 // Recursively walks the layer tree starting at the given node and computes all the 379 // Recursively walks the layer tree starting at the given node and computes all the
351 // necessary transformations, clipRects, render surfaces, etc. 380 // necessary transformations, clipRects, render surfaces, etc.
352 template<typename LayerType, typename LayerList, typename RenderSurfaceType, typ ename LayerSorter> 381 template<typename LayerType, typename LayerList, typename RenderSurfaceType, typ ename LayerSorter>
353 static void calculateDrawTransformsInternal(LayerType* layer, LayerType* rootLay er, const WebTransformationMatrix& parentMatrix, 382 static void calculateDrawTransformsInternal(LayerType* layer, LayerType* rootLay er, const WebTransformationMatrix& parentMatrix,
354 const WebTransformationMatrix& fullHierarchyMatrix, const WebTransformationM atrix& currentScrollCompensationMatrix, 383 const WebTransformationMatrix& fullHierarchyMatrix, const WebTransformationM atrix& currentScrollCompensationMatrix,
355 const IntRect& clipRectFromAncestor, bool ancestorClipsSubtree, 384 const IntRect& clipRectFromAncestor, bool ancestorClipsSubtree,
356 RenderSurfaceType* nearestAncestorThatMovesPixels, LayerList& renderSurfaceL ayerList, LayerList& layerList, 385 RenderSurfaceType* nearestAncestorThatMovesPixels, LayerList& renderSurfaceL ayerList, LayerList& layerList,
357 LayerSorter* layerSorter, int maxTextureSize, float deviceScaleFactor, IntRe ct& drawableContentRectOfSubtree) 386 LayerSorter* layerSorter, int maxTextureSize, float deviceScaleFactor, float pageScaleFactor, IntRect& drawableContentRectOfSubtree)
358 { 387 {
359 // This function computes the new matrix transformations recursively for thi s 388 // This function computes the new matrix transformations recursively for thi s
360 // layer and all its descendants. It also computes the appropriate render su rfaces. 389 // layer and all its descendants. It also computes the appropriate render su rfaces.
361 // Some important points to remember: 390 // Some important points to remember:
362 // 391 //
363 // 0. Here, transforms are notated in Matrix x Vector order, and in words we describe what 392 // 0. Here, transforms are notated in Matrix x Vector order, and in words we describe what
364 // the transform does from left to right. 393 // the transform does from left to right.
365 // 394 //
366 // 1. In our terminology, the "layer origin" refers to the top-left corner o f a layer, and the 395 // 1. In our terminology, the "layer origin" refers to the top-left corner o f a layer, and the
367 // positive Y-axis points downwards. This interpretation is valid because the orthographic 396 // positive Y-axis points downwards. This interpretation is valid because the orthographic
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after
480 WebTransformationMatrix combinedTransform = parentMatrix; 509 WebTransformationMatrix combinedTransform = parentMatrix;
481 combinedTransform.multiply(layerLocalTransform); 510 combinedTransform.multiply(layerLocalTransform);
482 511
483 if (layer->fixedToContainerLayer()) { 512 if (layer->fixedToContainerLayer()) {
484 // Special case: this layer is a composited fixed-position layer; we nee d to 513 // Special case: this layer is a composited fixed-position layer; we nee d to
485 // explicitly compensate for all ancestors' nonzero scrollDeltas to keep this layer 514 // explicitly compensate for all ancestors' nonzero scrollDeltas to keep this layer
486 // fixed correctly. 515 // fixed correctly.
487 combinedTransform = currentScrollCompensationMatrix * combinedTransform; 516 combinedTransform = currentScrollCompensationMatrix * combinedTransform;
488 } 517 }
489 518
519 // The layer's contentsSize is determined from the combinedTransform, which then informs the
520 // layer's drawTransform.
521 updateLayerContentsScale(layer, combinedTransform, deviceScaleFactor, pageSc aleFactor);
522
490 // The drawTransform that gets computed below is effectively the layer's dra wTransform, unless 523 // The drawTransform that gets computed below is effectively the layer's dra wTransform, unless
491 // the layer itself creates a renderSurface. In that case, the renderSurface re-parents the transforms. 524 // the layer itself creates a renderSurface. In that case, the renderSurface re-parents the transforms.
492 WebTransformationMatrix drawTransform = combinedTransform; 525 WebTransformationMatrix drawTransform = combinedTransform;
493 // M[draw] = M[parent] * LT * Tr[anchor2center] * Tr[center2origin] 526 // M[draw] = M[parent] * LT * Tr[anchor2center] * Tr[center2origin]
494 drawTransform.translate(-layer->bounds().width() / 2.0, -layer->bounds().hei ght() / 2.0); 527 drawTransform.translate(-layer->bounds().width() / 2.0, -layer->bounds().hei ght() / 2.0);
495 if (!layer->contentBounds().isEmpty() && !layer->bounds().isEmpty()) { 528 if (!layer->contentBounds().isEmpty() && !layer->bounds().isEmpty()) {
496 // M[draw] = M[parent] * LT * Tr[anchor2origin] * S[layer2content] 529 // M[draw] = M[parent] * LT * Tr[anchor2origin] * S[layer2content]
497 drawTransform.scaleNonUniform(layer->bounds().width() / static_cast<doub le>(layer->contentBounds().width()), 530 drawTransform.scaleNonUniform(layer->bounds().width() / static_cast<doub le>(layer->contentBounds().width()),
498 layer->bounds().height() / static_cast<dou ble>(layer->contentBounds().height())); 531 layer->bounds().height() / static_cast<dou ble>(layer->contentBounds().height()));
499 } 532 }
(...skipping 23 matching lines...) Expand all
523 // Check back-face visibility before continuing with this surface and it s subtree 556 // Check back-face visibility before continuing with this surface and it s subtree
524 if (!layer->doubleSided() && transformToParentIsKnown(layer) && isSurfac eBackFaceVisible(layer, combinedTransform)) 557 if (!layer->doubleSided() && transformToParentIsKnown(layer) && isSurfac eBackFaceVisible(layer, combinedTransform))
525 return; 558 return;
526 559
527 if (!layer->renderSurface()) 560 if (!layer->renderSurface())
528 layer->createRenderSurface(); 561 layer->createRenderSurface();
529 562
530 RenderSurfaceType* renderSurface = layer->renderSurface(); 563 RenderSurfaceType* renderSurface = layer->renderSurface();
531 renderSurface->clearLayerLists(); 564 renderSurface->clearLayerLists();
532 565
533 // The origin of the new surface is the upper left corner of the layer. 566 // The origin of the new surface is the upper left corner of the layer. The contents of the
567 // the render surface match the scale of the owning layer.
534 renderSurface->setDrawTransform(drawTransform); 568 renderSurface->setDrawTransform(drawTransform);
535 WebTransformationMatrix layerDrawTransform; 569 WebTransformationMatrix layerDrawTransform;
536 layerDrawTransform.scale(deviceScaleFactor);
enne (OOO) 2012/10/03 19:52:38 This block of code is highly intentional. The "co
537 if (!layer->contentBounds().isEmpty() && !layer->bounds().isEmpty()) {
538 layerDrawTransform.scaleNonUniform(layer->bounds().width() / static_ cast<double>(layer->contentBounds().width()),
539 layer->bounds().height() / static _cast<double>(layer->contentBounds().height()));
540 }
541 layer->setDrawTransform(layerDrawTransform); 570 layer->setDrawTransform(layerDrawTransform);
542 571
572 // Inside the surface's subtree, we scale everything to the owning layer 's scale.
543 // The sublayer matrix transforms centered layer rects into target 573 // The sublayer matrix transforms centered layer rects into target
544 // surface content space. 574 // surface content space.
545 sublayerMatrix.makeIdentity(); 575 sublayerMatrix.makeIdentity();
546 sublayerMatrix.scale(deviceScaleFactor); 576 if (!layer->contentBounds().isEmpty() && !layer->bounds().isEmpty()) {
577 sublayerMatrix.scaleNonUniform(layer->contentBounds().width() / stat ic_cast<double>(layer->bounds().width()),
578 layer->contentBounds().height() / sta tic_cast<double>(layer->bounds().height()));
579 }
547 sublayerMatrix.translate(0.5 * bounds.width(), 0.5 * bounds.height()); 580 sublayerMatrix.translate(0.5 * bounds.width(), 0.5 * bounds.height());
548 581
549 // The opacity value is moved from the layer to its surface, so that the entire subtree properly inherits opacity. 582 // The opacity value is moved from the layer to its surface, so that the entire subtree properly inherits opacity.
550 renderSurface->setDrawOpacity(drawOpacity); 583 renderSurface->setDrawOpacity(drawOpacity);
551 renderSurface->setDrawOpacityIsAnimating(drawOpacityIsAnimating); 584 renderSurface->setDrawOpacityIsAnimating(drawOpacityIsAnimating);
552 layer->setDrawOpacity(1); 585 layer->setDrawOpacity(1);
553 layer->setDrawOpacityIsAnimating(false); 586 layer->setDrawOpacityIsAnimating(false);
554 587
555 renderSurface->setTargetSurfaceTransformsAreAnimating(animatingTransform ToTarget); 588 renderSurface->setTargetSurfaceTransformsAreAnimating(animatingTransform ToTarget);
556 renderSurface->setScreenSpaceTransformsAreAnimating(animatingTransformTo Screen); 589 renderSurface->setScreenSpaceTransformsAreAnimating(animatingTransformTo Screen);
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
640 descendants.append(layer); 673 descendants.append(layer);
641 674
642 WebTransformationMatrix nextScrollCompensationMatrix = computeScrollCompensa tionMatrixForChildren(layer, parentMatrix, currentScrollCompensationMatrix);; 675 WebTransformationMatrix nextScrollCompensationMatrix = computeScrollCompensa tionMatrixForChildren(layer, parentMatrix, currentScrollCompensationMatrix);;
643 676
644 IntRect accumulatedDrawableContentRectOfChildren; 677 IntRect accumulatedDrawableContentRectOfChildren;
645 for (size_t i = 0; i < layer->children().size(); ++i) { 678 for (size_t i = 0; i < layer->children().size(); ++i) {
646 LayerType* child = CCLayerTreeHostCommon::getChildAsRawPtr(layer->childr en(), i); 679 LayerType* child = CCLayerTreeHostCommon::getChildAsRawPtr(layer->childr en(), i);
647 IntRect drawableContentRectOfChildSubtree; 680 IntRect drawableContentRectOfChildSubtree;
648 calculateDrawTransformsInternal<LayerType, LayerList, RenderSurfaceType, LayerSorter>(child, rootLayer, sublayerMatrix, nextHierarchyMatrix, nextScrollC ompensationMatrix, 681 calculateDrawTransformsInternal<LayerType, LayerList, RenderSurfaceType, LayerSorter>(child, rootLayer, sublayerMatrix, nextHierarchyMatrix, nextScrollC ompensationMatrix,
649 clipRectForSubtree, subtreeShouldBeClipped, nearestAncestorThatMov esPixels, 682 clipRectForSubtree, subtreeShouldBeClipped, nearestAncestorThatMov esPixels,
650 renderSurfaceLayerList, descendants, layerSorter, maxTextureSize, deviceScaleFactor, drawableContentRectOfChildSubtree); 683 renderSurfaceLayerList, descendants, layerSorter, maxTextureSize, deviceScaleFactor, pageScaleFactor, drawableContentRectOfChildSubtree);
651 if (!drawableContentRectOfChildSubtree.isEmpty()) { 684 if (!drawableContentRectOfChildSubtree.isEmpty()) {
652 accumulatedDrawableContentRectOfChildren.unite(drawableContentRectOf ChildSubtree); 685 accumulatedDrawableContentRectOfChildren.unite(drawableContentRectOf ChildSubtree);
653 if (child->renderSurface()) 686 if (child->renderSurface())
654 descendants.append(child); 687 descendants.append(child);
655 } 688 }
656 } 689 }
657 690
658 // Compute the total drawableContentRect for this subtree (the rect is in ta rgetSurface space) 691 // Compute the total drawableContentRect for this subtree (the rect is in ta rgetSurface space)
659 IntRect localDrawableContentRectOfSubtree = accumulatedDrawableContentRectOf Children; 692 IntRect localDrawableContentRectOfSubtree = accumulatedDrawableContentRectOf Children;
660 if (layer->drawsContent()) 693 if (layer->drawsContent())
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
697 clippedContentRect.setHeight(std::min(clippedContentRect.height(), maxTe xtureSize)); 730 clippedContentRect.setHeight(std::min(clippedContentRect.height(), maxTe xtureSize));
698 731
699 if (clippedContentRect.isEmpty()) 732 if (clippedContentRect.isEmpty())
700 renderSurface->clearLayerLists(); 733 renderSurface->clearLayerLists();
701 734
702 renderSurface->setContentRect(clippedContentRect); 735 renderSurface->setContentRect(clippedContentRect);
703 renderSurface->setScreenSpaceTransform(layer->screenSpaceTransform()); 736 renderSurface->setScreenSpaceTransform(layer->screenSpaceTransform());
704 737
705 if (layer->replicaLayer()) { 738 if (layer->replicaLayer()) {
706 WebTransformationMatrix surfaceOriginToReplicaOriginTransform; 739 WebTransformationMatrix surfaceOriginToReplicaOriginTransform;
707 surfaceOriginToReplicaOriginTransform.scale(deviceScaleFactor); 740 if (!layer->contentBounds().isEmpty() && !layer->bounds().isEmpty()) {
741 surfaceOriginToReplicaOriginTransform.scaleNonUniform(layer->con tentBounds().width() / static_cast<double>(layer->bounds().width()),
742 layer->con tentBounds().height() / static_cast<double>(layer->bounds().height()));
743 }
744
708 surfaceOriginToReplicaOriginTransform.translate(layer->replicaLayer( )->position().x() + layer->replicaLayer()->anchorPoint().x() * bounds.width(), 745 surfaceOriginToReplicaOriginTransform.translate(layer->replicaLayer( )->position().x() + layer->replicaLayer()->anchorPoint().x() * bounds.width(),
709 layer->replicaLayer( )->position().y() + layer->replicaLayer()->anchorPoint().y() * bounds.height()); 746 layer->replicaLayer( )->position().y() + layer->replicaLayer()->anchorPoint().y() * bounds.height());
710 surfaceOriginToReplicaOriginTransform.multiply(layer->replicaLayer() ->transform()); 747 surfaceOriginToReplicaOriginTransform.multiply(layer->replicaLayer() ->transform());
711 surfaceOriginToReplicaOriginTransform.translate(-layer->replicaLayer ()->anchorPoint().x() * bounds.width(), -layer->replicaLayer()->anchorPoint().y( ) * bounds.height()); 748 surfaceOriginToReplicaOriginTransform.translate(-layer->replicaLayer ()->anchorPoint().x() * bounds.width(), -layer->replicaLayer()->anchorPoint().y( ) * bounds.height());
712 surfaceOriginToReplicaOriginTransform.scale(1 / deviceScaleFactor); 749
750 if (!layer->contentBounds().isEmpty() && !layer->bounds().isEmpty()) {
751 surfaceOriginToReplicaOriginTransform.scaleNonUniform(layer->bou nds().width() / static_cast<double>(layer->contentBounds().width()),
752 layer->bou nds().height() / static_cast<double>(layer->contentBounds().height()));
753 }
713 754
714 // Compute the replica's "originTransform" that maps from the replic a's origin space to the target surface origin space. 755 // Compute the replica's "originTransform" that maps from the replic a's origin space to the target surface origin space.
715 WebTransformationMatrix replicaOriginTransform = layer->renderSurfac e()->drawTransform() * surfaceOriginToReplicaOriginTransform; 756 WebTransformationMatrix replicaOriginTransform = layer->renderSurfac e()->drawTransform() * surfaceOriginToReplicaOriginTransform;
716 renderSurface->setReplicaDrawTransform(replicaOriginTransform); 757 renderSurface->setReplicaDrawTransform(replicaOriginTransform);
717 758
718 // Compute the replica's "screenSpaceTransform" that maps from the r eplica's origin space to the screen's origin space. 759 // Compute the replica's "screenSpaceTransform" that maps from the r eplica's origin space to the screen's origin space.
719 WebTransformationMatrix replicaScreenSpaceTransform = layer->renderS urface()->screenSpaceTransform() * surfaceOriginToReplicaOriginTransform; 760 WebTransformationMatrix replicaScreenSpaceTransform = layer->renderS urface()->screenSpaceTransform() * surfaceOriginToReplicaOriginTransform;
720 renderSurface->setReplicaScreenSpaceTransform(replicaScreenSpaceTran sform); 761 renderSurface->setReplicaScreenSpaceTransform(replicaScreenSpaceTran sform);
721 } 762 }
722 763
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
775 LayerType* replicaMaskLayer = it->replicaLayer() ? it->replicaLayer( )->maskLayer() : 0; 816 LayerType* replicaMaskLayer = it->replicaLayer() ? it->replicaLayer( )->maskLayer() : 0;
776 if (replicaMaskLayer) 817 if (replicaMaskLayer)
777 replicaMaskLayer->setVisibleContentRect(IntRect(IntPoint(), it-> contentBounds())); 818 replicaMaskLayer->setVisibleContentRect(IntRect(IntPoint(), it-> contentBounds()));
778 } else if (it.representsItself()) { 819 } else if (it.representsItself()) {
779 IntRect visibleContentRect = calculateVisibleContentRect(*it); 820 IntRect visibleContentRect = calculateVisibleContentRect(*it);
780 it->setVisibleContentRect(visibleContentRect); 821 it->setVisibleContentRect(visibleContentRect);
781 } 822 }
782 } 823 }
783 } 824 }
784 825
785 void CCLayerTreeHostCommon::calculateDrawTransforms(LayerChromium* rootLayer, co nst IntSize& deviceViewportSize, float deviceScaleFactor, int maxTextureSize, Ve ctor<RefPtr<LayerChromium> >& renderSurfaceLayerList) 826 void CCLayerTreeHostCommon::calculateDrawTransforms(LayerChromium* rootLayer, co nst IntSize& deviceViewportSize, float deviceScaleFactor, float pageScaleFactor, int maxTextureSize, Vector<RefPtr<LayerChromium> >& renderSurfaceLayerList)
786 { 827 {
787 IntRect totalDrawableContentRect; 828 IntRect totalDrawableContentRect;
788 WebTransformationMatrix identityMatrix; 829 WebTransformationMatrix identityMatrix;
789 WebTransformationMatrix deviceScaleTransform; 830 WebTransformationMatrix deviceScaleTransform;
790 deviceScaleTransform.scale(deviceScaleFactor); 831 deviceScaleTransform.scale(deviceScaleFactor);
791 832
792 setupRootLayerAndSurfaceForRecursion<LayerChromium, Vector<RefPtr<LayerChrom ium> > >(rootLayer, renderSurfaceLayerList, deviceViewportSize); 833 setupRootLayerAndSurfaceForRecursion<LayerChromium, Vector<RefPtr<LayerChrom ium> > >(rootLayer, renderSurfaceLayerList, deviceViewportSize);
793 834
794 cc::calculateDrawTransformsInternal<LayerChromium, Vector<RefPtr<LayerChromi um> >, RenderSurfaceChromium, void>(rootLayer, rootLayer, deviceScaleTransform, identityMatrix, identityMatrix, 835 cc::calculateDrawTransformsInternal<LayerChromium, Vector<RefPtr<LayerChromi um> >, RenderSurfaceChromium, void>(rootLayer, rootLayer, deviceScaleTransform, identityMatrix, identityMatrix,
795 rootLayer->renderSurface()->contentRect (), true, 0, renderSurfaceLayerList, 836 rootLayer->renderSurface()->contentRect(), t rue, 0, renderSurfaceLayerList,
796 rootLayer->renderSurface()->layerList() , 0, maxTextureSize, deviceScaleFactor, totalDrawableContentRect); 837 rootLayer->renderSurface()->layerList(), 0, maxTextureSize, deviceScaleFactor, pageScaleFactor, totalDrawableContentRect);
797 } 838 }
798 839
799 void CCLayerTreeHostCommon::calculateDrawTransforms(CCLayerImpl* rootLayer, cons t IntSize& deviceViewportSize, float deviceScaleFactor, CCLayerSorter* layerSort er, int maxTextureSize, Vector<CCLayerImpl*>& renderSurfaceLayerList) 840 void CCLayerTreeHostCommon::calculateDrawTransforms(CCLayerImpl* rootLayer, cons t IntSize& deviceViewportSize, float deviceScaleFactor, float pageScaleFactor, C CLayerSorter* layerSorter, int maxTextureSize, Vector<CCLayerImpl*>& renderSurfa ceLayerList)
800 { 841 {
801 IntRect totalDrawableContentRect; 842 IntRect totalDrawableContentRect;
802 WebTransformationMatrix identityMatrix; 843 WebTransformationMatrix identityMatrix;
803 WebTransformationMatrix deviceScaleTransform; 844 WebTransformationMatrix deviceScaleTransform;
804 deviceScaleTransform.scale(deviceScaleFactor); 845 deviceScaleTransform.scale(deviceScaleFactor);
805 846
806 setupRootLayerAndSurfaceForRecursion<CCLayerImpl, Vector<CCLayerImpl*> >(roo tLayer, renderSurfaceLayerList, deviceViewportSize); 847 setupRootLayerAndSurfaceForRecursion<CCLayerImpl, Vector<CCLayerImpl*> >(roo tLayer, renderSurfaceLayerList, deviceViewportSize);
807 848
808 cc::calculateDrawTransformsInternal<CCLayerImpl, Vector<CCLayerImpl*>, CCRen derSurface, CCLayerSorter>(rootLayer, rootLayer, deviceScaleTransform, identityM atrix, identityMatrix, 849 cc::calculateDrawTransformsInternal<CCLayerImpl, Vector<CCLayerImpl*>, CCRen derSurface, CCLayerSorter>(rootLayer, rootLayer, deviceScaleTransform, identityM atrix, identityMatrix,
809 rootLayer->renderSurface()->contentRect(), true, 0, renderSurfaceLayerList, 850 rootLayer->renderSurface()->contentRect(), true, 0, r enderSurfaceLayerList,
810 rootLayer->renderSurface()->layerList(), layerSo rter, maxTextureSize, deviceScaleFactor, totalDrawableContentRect); 851 rootLayer->renderSurface()->layerList(), layerSorter, maxTextureSize, deviceScaleFactor, pageScaleFactor, totalDrawableContentRect);
811 } 852 }
812 853
813 void CCLayerTreeHostCommon::calculateVisibleRects(Vector<RefPtr<LayerChromium> > & renderSurfaceLayerList) 854 void CCLayerTreeHostCommon::calculateVisibleRects(Vector<RefPtr<LayerChromium> > & renderSurfaceLayerList)
814 { 855 {
815 calculateVisibleRectsInternal<LayerChromium, Vector<RefPtr<LayerChromium> >, RenderSurfaceChromium>(renderSurfaceLayerList); 856 calculateVisibleRectsInternal<LayerChromium, Vector<RefPtr<LayerChromium> >, RenderSurfaceChromium>(renderSurfaceLayerList);
816 } 857 }
817 858
818 void CCLayerTreeHostCommon::calculateVisibleRects(Vector<CCLayerImpl*>& renderSu rfaceLayerList) 859 void CCLayerTreeHostCommon::calculateVisibleRects(Vector<CCLayerImpl*>& renderSu rfaceLayerList)
819 { 860 {
820 calculateVisibleRectsInternal<CCLayerImpl, Vector<CCLayerImpl*>, CCRenderSur face>(renderSurfaceLayerList); 861 calculateVisibleRectsInternal<CCLayerImpl, Vector<CCLayerImpl*>, CCRenderSur face>(renderSurfaceLayerList);
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
885 926
886 foundLayer = currentLayer; 927 foundLayer = currentLayer;
887 break; 928 break;
888 } 929 }
889 930
890 // This can potentially return 0, which means the viewportPoint did not succ essfully hit test any layers, not even the root layer. 931 // This can potentially return 0, which means the viewportPoint did not succ essfully hit test any layers, not even the root layer.
891 return foundLayer; 932 return foundLayer;
892 } 933 }
893 934
894 } // namespace cc 935 } // namespace cc
OLDNEW
« no previous file with comments | « cc/CCLayerTreeHostCommon.h ('k') | cc/CCLayerTreeHostCommonTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698