Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 // Copyright 2010 The Chromium Authors. All rights reserved. | 1 // Copyright 2010 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 "config.h" | 5 #include "config.h" |
| 6 | 6 |
| 7 #include "cc/layer.h" | 7 #include "cc/layer.h" |
| 8 | 8 |
| 9 #include "cc/active_animation.h" | 9 #include "cc/active_animation.h" |
| 10 #include "cc/animation_events.h" | 10 #include "cc/animation_events.h" |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 57 , m_preserves3D(false) | 57 , m_preserves3D(false) |
| 58 , m_useParentBackfaceVisibility(false) | 58 , m_useParentBackfaceVisibility(false) |
| 59 , m_drawCheckerboardForMissingTiles(false) | 59 , m_drawCheckerboardForMissingTiles(false) |
| 60 , m_forceRenderSurface(false) | 60 , m_forceRenderSurface(false) |
| 61 , m_replicaLayer(0) | 61 , m_replicaLayer(0) |
| 62 , m_drawOpacity(0) | 62 , m_drawOpacity(0) |
| 63 , m_drawOpacityIsAnimating(false) | 63 , m_drawOpacityIsAnimating(false) |
| 64 , m_renderTarget(0) | 64 , m_renderTarget(0) |
| 65 , m_drawTransformIsAnimating(false) | 65 , m_drawTransformIsAnimating(false) |
| 66 , m_screenSpaceTransformIsAnimating(false) | 66 , m_screenSpaceTransformIsAnimating(false) |
| 67 , m_contentsScale(1.0) | |
| 68 , m_rasterScale(1.0) | 67 , m_rasterScale(1.0) |
| 69 , m_automaticallyComputeRasterScale(false) | 68 , m_automaticallyComputeRasterScale(false) |
| 70 , m_boundsContainPageScale(false) | 69 , m_boundsContainPageScale(false) |
| 71 , m_layerAnimationDelegate(0) | 70 , m_layerAnimationDelegate(0) |
| 72 , m_layerScrollClient(0) | 71 , m_layerScrollClient(0) |
| 73 { | 72 { |
| 74 if (m_layerId < 0) { | 73 if (m_layerId < 0) { |
| 75 s_nextLayerId = 1; | 74 s_nextLayerId = 1; |
| 76 m_layerId = s_nextLayerId++; | 75 m_layerId = s_nextLayerId++; |
| 77 } | 76 } |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 115 } | 114 } |
| 116 | 115 |
| 117 void Layer::setNeedsCommit() | 116 void Layer::setNeedsCommit() |
| 118 { | 117 { |
| 119 if (m_layerTreeHost) | 118 if (m_layerTreeHost) |
| 120 m_layerTreeHost->setNeedsCommit(); | 119 m_layerTreeHost->setNeedsCommit(); |
| 121 } | 120 } |
| 122 | 121 |
| 123 IntRect Layer::layerRectToContentRect(const WebKit::WebRect& layerRect) | 122 IntRect Layer::layerRectToContentRect(const WebKit::WebRect& layerRect) |
| 124 { | 123 { |
| 125 float widthScale = static_cast<float>(contentBounds().width()) / bounds().wi dth(); | |
| 126 float heightScale = static_cast<float>(contentBounds().height()) / bounds(). height(); | |
| 127 FloatRect contentRect(layerRect.x, layerRect.y, layerRect.width, layerRect.h eight); | 124 FloatRect contentRect(layerRect.x, layerRect.y, layerRect.width, layerRect.h eight); |
| 128 contentRect.scale(widthScale, heightScale); | 125 contentRect.scale(contentsScaleX(), contentsScaleY()); |
| 129 return enclosingIntRect(contentRect); | 126 return enclosingIntRect(contentRect); |
|
danakj
2012/10/29 20:06:51
Since this conversion is not exactly right for ima
wangxianzhu
2012/10/30 02:14:21
Done.
| |
| 130 } | 127 } |
| 131 | 128 |
| 132 void Layer::setParent(Layer* layer) | 129 void Layer::setParent(Layer* layer) |
| 133 { | 130 { |
| 134 DCHECK(!layer || !layer->hasAncestor(this)); | 131 DCHECK(!layer || !layer->hasAncestor(this)); |
| 135 m_parent = layer; | 132 m_parent = layer; |
| 136 setLayerTreeHost(m_parent ? m_parent->layerTreeHost() : 0); | 133 setLayerTreeHost(m_parent ? m_parent->layerTreeHost() : 0); |
| 137 | 134 |
| 138 forceAutomaticRasterScaleToBeRecomputed(); | 135 forceAutomaticRasterScaleToBeRecomputed(); |
| 139 } | 136 } |
| (...skipping 409 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 549 m_fixedToContainerLayer = fixedToContainerLayer; | 546 m_fixedToContainerLayer = fixedToContainerLayer; |
| 550 setNeedsCommit(); | 547 setNeedsCommit(); |
| 551 } | 548 } |
| 552 | 549 |
| 553 void Layer::pushPropertiesTo(LayerImpl* layer) | 550 void Layer::pushPropertiesTo(LayerImpl* layer) |
| 554 { | 551 { |
| 555 layer->setAnchorPoint(m_anchorPoint); | 552 layer->setAnchorPoint(m_anchorPoint); |
| 556 layer->setAnchorPointZ(m_anchorPointZ); | 553 layer->setAnchorPointZ(m_anchorPointZ); |
| 557 layer->setBackgroundColor(m_backgroundColor); | 554 layer->setBackgroundColor(m_backgroundColor); |
| 558 layer->setBounds(m_bounds); | 555 layer->setBounds(m_bounds); |
| 559 layer->setContentBounds(contentBounds()); | 556 layer->setContentsScale(contentsScaleX(), contentsScaleY()); |
| 560 layer->setDebugBorderColor(m_debugBorderColor); | 557 layer->setDebugBorderColor(m_debugBorderColor); |
| 561 layer->setDebugBorderWidth(m_debugBorderWidth); | 558 layer->setDebugBorderWidth(m_debugBorderWidth); |
| 562 layer->setDebugName(m_debugName); | 559 layer->setDebugName(m_debugName); |
| 563 layer->setDoubleSided(m_doubleSided); | 560 layer->setDoubleSided(m_doubleSided); |
| 564 layer->setDrawCheckerboardForMissingTiles(m_drawCheckerboardForMissingTiles) ; | 561 layer->setDrawCheckerboardForMissingTiles(m_drawCheckerboardForMissingTiles) ; |
| 565 layer->setForceRenderSurface(m_forceRenderSurface); | 562 layer->setForceRenderSurface(m_forceRenderSurface); |
| 566 layer->setDrawsContent(drawsContent()); | 563 layer->setDrawsContent(drawsContent()); |
| 567 layer->setFilters(filters()); | 564 layer->setFilters(filters()); |
| 568 layer->setFilter(filter()); | 565 layer->setFilter(filter()); |
| 569 layer->setBackgroundFilters(backgroundFilters()); | 566 layer->setBackgroundFilters(backgroundFilters()); |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 623 bool Layer::drawsContent() const | 620 bool Layer::drawsContent() const |
| 624 { | 621 { |
| 625 return m_isDrawable; | 622 return m_isDrawable; |
| 626 } | 623 } |
| 627 | 624 |
| 628 bool Layer::needMoreUpdates() | 625 bool Layer::needMoreUpdates() |
| 629 { | 626 { |
| 630 return false; | 627 return false; |
| 631 } | 628 } |
| 632 | 629 |
| 633 bool Layer::needsContentsScale() const | |
| 634 { | |
| 635 return false; | |
| 636 } | |
| 637 | |
| 638 void Layer::setDebugBorderColor(SkColor color) | 630 void Layer::setDebugBorderColor(SkColor color) |
| 639 { | 631 { |
| 640 m_debugBorderColor = color; | 632 m_debugBorderColor = color; |
| 641 setNeedsCommit(); | 633 setNeedsCommit(); |
| 642 } | 634 } |
| 643 | 635 |
| 644 void Layer::setDebugBorderWidth(float width) | 636 void Layer::setDebugBorderWidth(float width) |
| 645 { | 637 { |
| 646 m_debugBorderWidth = width; | 638 m_debugBorderWidth = width; |
| 647 setNeedsCommit(); | 639 setNeedsCommit(); |
| 648 } | 640 } |
| 649 | 641 |
| 650 void Layer::setDebugName(const std::string& debugName) | 642 void Layer::setDebugName(const std::string& debugName) |
| 651 { | 643 { |
| 652 m_debugName = debugName; | 644 m_debugName = debugName; |
| 653 setNeedsCommit(); | 645 setNeedsCommit(); |
| 654 } | 646 } |
| 655 | 647 |
| 656 void Layer::setContentsScale(float contentsScale) | |
| 657 { | |
| 658 if (!needsContentsScale() || m_contentsScale == contentsScale) | |
| 659 return; | |
| 660 m_contentsScale = contentsScale; | |
| 661 | |
| 662 setNeedsDisplay(); | |
| 663 } | |
| 664 | |
| 665 void Layer::setRasterScale(float scale) | 648 void Layer::setRasterScale(float scale) |
| 666 { | 649 { |
| 667 if (m_rasterScale == scale) | 650 if (m_rasterScale == scale) |
| 668 return; | 651 return; |
| 669 m_rasterScale = scale; | 652 m_rasterScale = scale; |
| 670 | 653 |
| 671 if (!m_automaticallyComputeRasterScale) | 654 if (!m_automaticallyComputeRasterScale) |
| 672 return; | 655 return; |
| 673 setNeedsDisplay(); | 656 setNeedsDisplay(); |
| 674 } | 657 } |
| (...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 841 { | 824 { |
| 842 return 0; | 825 return 0; |
| 843 } | 826 } |
| 844 | 827 |
| 845 void sortLayers(std::vector<scoped_refptr<Layer> >::iterator, std::vector<scoped _refptr<Layer> >::iterator, void*) | 828 void sortLayers(std::vector<scoped_refptr<Layer> >::iterator, std::vector<scoped _refptr<Layer> >::iterator, void*) |
| 846 { | 829 { |
| 847 // Currently we don't use z-order to decide what to paint, so there's no nee d to actually sort Layers. | 830 // Currently we don't use z-order to decide what to paint, so there's no nee d to actually sort Layers. |
| 848 } | 831 } |
| 849 | 832 |
| 850 } | 833 } |
| OLD | NEW |