| OLD | NEW | 
|    1 /* |    1 /* | 
|    2  * Copyright (C) 2011 Google Inc. All rights reserved. |    2  * Copyright (C) 2011 Google Inc. All rights reserved. | 
|    3  * |    3  * | 
|    4  * Redistribution and use in source and binary forms, with or without |    4  * Redistribution and use in source and binary forms, with or without | 
|    5  * modification, are permitted provided that the following conditions |    5  * modification, are permitted provided that the following conditions | 
|    6  * are met: |    6  * are met: | 
|    7  * 1.  Redistributions of source code must retain the above copyright |    7  * 1.  Redistributions of source code must retain the above copyright | 
|    8  *     notice, this list of conditions and the following disclaimer. |    8  *     notice, this list of conditions and the following disclaimer. | 
|    9  * 2.  Redistributions in binary form must reproduce the above copyright |    9  * 2.  Redistributions in binary form must reproduce the above copyright | 
|   10  *     notice, this list of conditions and the following disclaimer in the |   10  *     notice, this list of conditions and the following disclaimer in the | 
| (...skipping 352 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  363         layer->setScreenSpaceTransformIsAnimating(layerIsInAnimatingSubtreeForSc
     reen); |  363         layer->setScreenSpaceTransformIsAnimating(layerIsInAnimatingSubtreeForSc
     reen); | 
|  364  |  364  | 
|  365         // Update the aggregate hierarchy matrix to include the transform of the
      newly created RenderSurface. |  365         // Update the aggregate hierarchy matrix to include the transform of the
      newly created RenderSurface. | 
|  366         nextHierarchyMatrix.multiply(surfaceOriginTransform); |  366         nextHierarchyMatrix.multiply(surfaceOriginTransform); | 
|  367  |  367  | 
|  368         // The render surface clipRect contributes to the scissor rect that need
     s to |  368         // The render surface clipRect contributes to the scissor rect that need
     s to | 
|  369         // be applied before drawing the render surface onto its containing |  369         // be applied before drawing the render surface onto its containing | 
|  370         // surface and is therefore expressed in the parent's coordinate system. |  370         // surface and is therefore expressed in the parent's coordinate system. | 
|  371         renderSurface->setClipRect(layer->parent() ? layer->parent()->clipRect()
      : layer->clipRect()); |  371         renderSurface->setClipRect(layer->parent() ? layer->parent()->clipRect()
      : layer->clipRect()); | 
|  372  |  372  | 
 |  373         // The layer's clipRect can be reset here. The renderSurface will correc
     tly clip the subtree. | 
 |  374         layer->setUsesLayerClipping(false); | 
 |  375         layer->setClipRect(IntRect()); | 
 |  376  | 
|  373         if (layer->maskLayer()) { |  377         if (layer->maskLayer()) { | 
|  374             renderSurface->setMaskLayer(layer->maskLayer()); |  378             renderSurface->setMaskLayer(layer->maskLayer()); | 
|  375             layer->maskLayer()->setTargetRenderSurface(renderSurface); |  379             layer->maskLayer()->setTargetRenderSurface(renderSurface); | 
|  376         } else |  380         } else | 
|  377             renderSurface->setMaskLayer(0); |  381             renderSurface->setMaskLayer(0); | 
|  378  |  382  | 
|  379         if (layer->replicaLayer() && layer->replicaLayer()->maskLayer()) |  383         if (layer->replicaLayer() && layer->replicaLayer()->maskLayer()) | 
|  380             layer->replicaLayer()->maskLayer()->setTargetRenderSurface(renderSur
     face); |  384             layer->replicaLayer()->maskLayer()->setTargetRenderSurface(renderSur
     face); | 
|  381  |  385  | 
|  382         renderSurface->setFilters(layer->filters()); |  386         renderSurface->setFilters(layer->filters()); | 
| (...skipping 16 matching lines...) Expand all  Loading... | 
|  399             layer->clearRenderSurface(); |  403             layer->clearRenderSurface(); | 
|  400  |  404  | 
|  401             // Layers inherit the clip rect from their parent. |  405             // Layers inherit the clip rect from their parent. | 
|  402             layer->setClipRect(layer->parent()->clipRect()); |  406             layer->setClipRect(layer->parent()->clipRect()); | 
|  403             if (layer->parent()->usesLayerClipping()) |  407             if (layer->parent()->usesLayerClipping()) | 
|  404                 layer->setUsesLayerClipping(true); |  408                 layer->setUsesLayerClipping(true); | 
|  405  |  409  | 
|  406             // Layers without their own renderSurface will render into the neare
     st ancestor surface. |  410             // Layers without their own renderSurface will render into the neare
     st ancestor surface. | 
|  407             layer->setTargetRenderSurface(layer->parent()->targetRenderSurface()
     ); |  411             layer->setTargetRenderSurface(layer->parent()->targetRenderSurface()
     ); | 
|  408         } |  412         } | 
 |  413     } | 
|  409  |  414  | 
|  410         if (layer->masksToBounds()) { |  415     if (layer->masksToBounds()) { | 
|  411             IntRect clipRect = transformedLayerRect; |  416         IntRect clipRect = transformedLayerRect; | 
 |  417  | 
 |  418         // If the layer already inherited a clipRect, we need to intersect with 
     it before | 
 |  419         // overriding the layer's clipRect and usesLayerClipping. | 
 |  420         if (layer->usesLayerClipping()) | 
|  412             clipRect.intersect(layer->clipRect()); |  421             clipRect.intersect(layer->clipRect()); | 
|  413             layer->setClipRect(clipRect); |  422  | 
|  414             layer->setUsesLayerClipping(true); |  423         layer->setClipRect(clipRect); | 
|  415         } |  424         layer->setUsesLayerClipping(true); | 
|  416     } |  425     } | 
|  417  |  426  | 
|  418     // Note that at this point, layer->drawTransform() is not necessarily the sa
     me as local variable drawTransform. |  427     // Note that at this point, layer->drawTransform() is not necessarily the sa
     me as local variable drawTransform. | 
|  419     // layerScreenSpaceTransform represents the transform between root layer's "
     screen space" and local layer space. |  428     // layerScreenSpaceTransform represents the transform between root layer's "
     screen space" and local layer space. | 
|  420     TransformationMatrix layerScreenSpaceTransform = nextHierarchyMatrix; |  429     TransformationMatrix layerScreenSpaceTransform = nextHierarchyMatrix; | 
|  421     layerScreenSpaceTransform.multiply(layer->drawTransform()); |  430     layerScreenSpaceTransform.multiply(layer->drawTransform()); | 
|  422     layerScreenSpaceTransform.translate3d(-0.5 * bounds.width(), -0.5 * bounds.h
     eight(), 0); |  431     layerScreenSpaceTransform.translate3d(-0.5 * bounds.width(), -0.5 * bounds.h
     eight(), 0); | 
|  423     layer->setScreenSpaceTransform(layerScreenSpaceTransform); |  432     layer->setScreenSpaceTransform(layerScreenSpaceTransform); | 
|  424  |  433  | 
|  425     // drawableContentRect() is always stored in the coordinate system of the |  434     // drawableContentRect() is always stored in the coordinate system of the | 
| (...skipping 176 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  602     walkLayersAndCalculateVisibleLayerRects<LayerChromium, Vector<RefPtr<LayerCh
     romium> >, RenderSurfaceChromium>(renderSurfaceLayerList); |  611     walkLayersAndCalculateVisibleLayerRects<LayerChromium, Vector<RefPtr<LayerCh
     romium> >, RenderSurfaceChromium>(renderSurfaceLayerList); | 
|  603 } |  612 } | 
|  604  |  613  | 
|  605 void CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(CCLayerImpl* la
     yer, CCLayerImpl* rootLayer, const TransformationMatrix& parentMatrix, const Tra
     nsformationMatrix& fullHierarchyMatrix, Vector<CCLayerImpl*>& renderSurfaceLayer
     List, Vector<CCLayerImpl*>& layerList, CCLayerSorter* layerSorter, int maxTextur
     eSize) |  614 void CCLayerTreeHostCommon::calculateDrawTransformsAndVisibility(CCLayerImpl* la
     yer, CCLayerImpl* rootLayer, const TransformationMatrix& parentMatrix, const Tra
     nsformationMatrix& fullHierarchyMatrix, Vector<CCLayerImpl*>& renderSurfaceLayer
     List, Vector<CCLayerImpl*>& layerList, CCLayerSorter* layerSorter, int maxTextur
     eSize) | 
|  606 { |  615 { | 
|  607     calculateDrawTransformsAndVisibilityInternal<CCLayerImpl, Vector<CCLayerImpl
     *>, CCRenderSurface, CCLayerSorter>(layer, rootLayer, parentMatrix, fullHierarch
     yMatrix, 0, renderSurfaceLayerList, layerList, layerSorter, maxTextureSize); |  616     calculateDrawTransformsAndVisibilityInternal<CCLayerImpl, Vector<CCLayerImpl
     *>, CCRenderSurface, CCLayerSorter>(layer, rootLayer, parentMatrix, fullHierarch
     yMatrix, 0, renderSurfaceLayerList, layerList, layerSorter, maxTextureSize); | 
|  608     walkLayersAndCalculateVisibleLayerRects<CCLayerImpl, Vector<CCLayerImpl*>, C
     CRenderSurface>(renderSurfaceLayerList); |  617     walkLayersAndCalculateVisibleLayerRects<CCLayerImpl, Vector<CCLayerImpl*>, C
     CRenderSurface>(renderSurfaceLayerList); | 
|  609 } |  618 } | 
|  610  |  619  | 
|  611 } // namespace WebCore |  620 } // namespace WebCore | 
| OLD | NEW |