Changeset 86189 in webkit
- Timestamp:
- May 10, 2011 3:57:50 PM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r86188 r86189 1 2011-05-10 James Robinson <jamesr@chromium.org> 2 3 Reviewed by Nate Chapin. 4 5 [chromium] Use parent/child terms for compositor tree structures consistently instead of superlayer/sublayer 6 https://bugs.webkit.org/show_bug.cgi?id=60588 7 8 GraphicsLayer uses parent/child terminology for tree structure, as does CCLayerImpl. LayerChromium was using 9 superlayer/sublayer terms, inherited from this code's branching from the platform/graphics/win/CACF code. The 10 mixed terminology is confusing and parent/child is more common, so this unifies everything to use parent/child. 11 12 No new tests, refactor only. 13 14 * platform/graphics/chromium/GraphicsLayerChromium.cpp: 15 (WebCore::GraphicsLayerChromium::setChildren): 16 (WebCore::GraphicsLayerChromium::addChild): 17 (WebCore::GraphicsLayerChromium::addChildAtIndex): 18 (WebCore::GraphicsLayerChromium::addChildBelow): 19 (WebCore::GraphicsLayerChromium::addChildAbove): 20 (WebCore::GraphicsLayerChromium::replaceChild): 21 (WebCore::GraphicsLayerChromium::removeFromParent): 22 (WebCore::GraphicsLayerChromium::setContentsToImage): 23 (WebCore::GraphicsLayerChromium::setContentsToCanvas): 24 (WebCore::GraphicsLayerChromium::setContentsToMedia): 25 (WebCore::GraphicsLayerChromium::hostLayerForChildren): 26 (WebCore::GraphicsLayerChromium::layerForParent): 27 (WebCore::GraphicsLayerChromium::updateChildList): 28 (WebCore::GraphicsLayerChromium::updateLayerPreserves3D): 29 (WebCore::GraphicsLayerChromium::setupContentsLayer): 30 * platform/graphics/chromium/GraphicsLayerChromium.h: 31 * platform/graphics/chromium/LayerChromium.cpp: 32 (WebCore::LayerChromium::LayerChromium): 33 (WebCore::LayerChromium::~LayerChromium): 34 (WebCore::LayerChromium::addChild): 35 (WebCore::LayerChromium::insertChild): 36 (WebCore::LayerChromium::removeFromParent): 37 (WebCore::LayerChromium::removeChild): 38 (WebCore::LayerChromium::replaceChild): 39 (WebCore::LayerChromium::indexOfChild): 40 (WebCore::LayerChromium::rootLayer): 41 (WebCore::LayerChromium::removeAllChildren): 42 (WebCore::LayerChromium::setChildren): 43 (WebCore::LayerChromium::parent): 44 (WebCore::LayerChromium::dumpLayer): 45 * platform/graphics/chromium/LayerChromium.h: 46 (WebCore::LayerChromium::children): 47 (WebCore::LayerChromium::setParent): 48 (WebCore::LayerChromium::numChildren): 49 * platform/graphics/chromium/LayerRendererChromium.cpp: 50 (WebCore::LayerRendererChromium::updatePropertiesAndRenderSurfaces): 51 (WebCore::LayerRendererChromium::updateCompositorResourcesRecursive): 52 (WebCore::LayerRendererChromium::dumpRenderSurfaces): 53 * platform/graphics/chromium/cc/CCLayerImpl.cpp: 54 (WebCore::CCLayerImpl::parent): 55 (WebCore::CCLayerImpl::descendantsDrawsContent): 56 * platform/graphics/chromium/cc/CCLayerImpl.h: 57 1 58 2011-05-10 Levi Weintraub <leviw@chromium.org> 2 59 -
trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.cpp
r86067 r86189 131 131 { 132 132 bool childrenChanged = GraphicsLayer::setChildren(children); 133 // FIXME: GraphicsLayer::setChildren calls addChild() for each sublayer, which134 // will end up calling update SublayerList() N times.133 // FIXME: GraphicsLayer::setChildren calls addChild() for each child, which 134 // will end up calling updateChildList() N times. 135 135 if (childrenChanged) 136 update SublayerList();136 updateChildList(); 137 137 138 138 return childrenChanged; … … 142 142 { 143 143 GraphicsLayer::addChild(childLayer); 144 update SublayerList();144 updateChildList(); 145 145 } 146 146 … … 148 148 { 149 149 GraphicsLayer::addChildAtIndex(childLayer, index); 150 update SublayerList();150 updateChildList(); 151 151 } 152 152 … … 154 154 { 155 155 GraphicsLayer::addChildBelow(childLayer, sibling); 156 update SublayerList();156 updateChildList(); 157 157 } 158 158 … … 160 160 { 161 161 GraphicsLayer::addChildAbove(childLayer, sibling); 162 update SublayerList();162 updateChildList(); 163 163 } 164 164 … … 166 166 { 167 167 if (GraphicsLayer::replaceChild(oldChild, newChild)) { 168 update SublayerList();168 updateChildList(); 169 169 return true; 170 170 } … … 175 175 { 176 176 GraphicsLayer::removeFromParent(); 177 layerFor Superlayer()->removeFromSuperlayer();177 layerForParent()->removeFromParent(); 178 178 } 179 179 … … 363 363 childrenChanged = true; 364 364 365 // The old contents layer will be removed via update SublayerList.365 // The old contents layer will be removed via updateChildList. 366 366 m_contentsLayer = 0; 367 367 } … … 369 369 370 370 if (childrenChanged) 371 update SublayerList();371 updateChildList(); 372 372 } 373 373 … … 389 389 childrenChanged = true; 390 390 391 // The old contents layer will be removed via update SublayerList.391 // The old contents layer will be removed via updateChildList. 392 392 m_contentsLayer = 0; 393 393 } … … 395 395 396 396 if (childrenChanged) 397 update SublayerList();397 updateChildList(); 398 398 } 399 399 … … 415 415 childrenChanged = true; 416 416 417 // The old contents layer will be removed via update SublayerList.417 // The old contents layer will be removed via updateChildList. 418 418 m_contentsLayer = 0; 419 419 } … … 421 421 422 422 if (childrenChanged) 423 update SublayerList();424 } 425 426 PlatformLayer* GraphicsLayerChromium::hostLayerFor Sublayers() const423 updateChildList(); 424 } 425 426 PlatformLayer* GraphicsLayerChromium::hostLayerForChildren() const 427 427 { 428 428 return m_transformLayer ? m_transformLayer.get() : m_layer.get(); 429 429 } 430 430 431 PlatformLayer* GraphicsLayerChromium::layerFor Superlayer() const431 PlatformLayer* GraphicsLayerChromium::layerForParent() const 432 432 { 433 433 return m_transformLayer ? m_transformLayer.get() : m_layer.get(); … … 458 458 } 459 459 460 void GraphicsLayerChromium::update SublayerList()461 { 462 Vector<RefPtr<LayerChromium> > new Sublayers;460 void GraphicsLayerChromium::updateChildList() 461 { 462 Vector<RefPtr<LayerChromium> > newChildren; 463 463 464 464 if (m_transformLayer) { 465 465 // Add the primary layer first. Even if we have negative z-order children, the primary layer always comes behind. 466 new Sublayers.append(m_layer.get());466 newChildren.append(m_layer.get()); 467 467 } else if (m_contentsLayer) { 468 468 // FIXME: add the contents layer in the correct order with negative z-order children. 469 469 // This does not cause visible rendering issues because currently contents layers are only used 470 470 // for replaced elements that don't have children. 471 new Sublayers.append(m_contentsLayer.get());471 newChildren.append(m_contentsLayer.get()); 472 472 } 473 473 … … 477 477 GraphicsLayerChromium* curChild = static_cast<GraphicsLayerChromium*>(childLayers[i]); 478 478 479 LayerChromium* childLayer = curChild->layerFor Superlayer();480 new Sublayers.append(childLayer);481 } 482 483 for (size_t i = 0; i < new Sublayers.size(); ++i)484 new Sublayers[i]->removeFromSuperlayer();479 LayerChromium* childLayer = curChild->layerForParent(); 480 newChildren.append(childLayer); 481 } 482 483 for (size_t i = 0; i < newChildren.size(); ++i) 484 newChildren[i]->removeFromParent(); 485 485 486 486 if (m_transformLayer) { 487 m_transformLayer->set Sublayers(newSublayers);487 m_transformLayer->setChildren(newChildren); 488 488 489 489 if (m_contentsLayer) { 490 490 // If we have a transform layer, then the contents layer is parented in the 491 491 // primary layer (which is itself a child of the transform layer). 492 m_layer->removeAll Sublayers();493 m_layer->add Sublayer(m_contentsLayer);492 m_layer->removeAllChildren(); 493 m_layer->addChild(m_contentsLayer); 494 494 } 495 495 } else 496 m_layer->set Sublayers(newSublayers);496 m_layer->setChildren(newChildren); 497 497 } 498 498 … … 582 582 583 583 // Move this layer to be a child of the transform layer. 584 if (m_layer-> superlayer())585 m_layer-> superlayer()->replaceSublayer(m_layer.get(), m_transformLayer.get());586 m_transformLayer->add Sublayer(m_layer.get());587 588 update SublayerList();584 if (m_layer->parent()) 585 m_layer->parent()->replaceChild(m_layer.get(), m_transformLayer.get()); 586 m_transformLayer->addChild(m_layer.get()); 587 588 updateChildList(); 589 589 } else if (!m_preserves3D && m_transformLayer) { 590 590 // Relace the transformLayer in the parent with this layer. 591 m_layer->removeFrom Superlayer();592 if (m_transformLayer-> superlayer())593 m_transformLayer-> superlayer()->replaceSublayer(m_transformLayer.get(), m_layer.get());591 m_layer->removeFromParent(); 592 if (m_transformLayer->parent()) 593 m_transformLayer->parent()->replaceChild(m_transformLayer.get(), m_layer.get()); 594 594 595 595 // Release the transform layer. … … 602 602 updateChildrenTransform(); 603 603 604 update SublayerList();604 updateChildList(); 605 605 } 606 606 … … 649 649 650 650 if (m_contentsLayer) { 651 m_contentsLayer->removeFrom Superlayer();651 m_contentsLayer->removeFromParent(); 652 652 m_contentsLayer = 0; 653 653 } … … 660 660 // Insert the content layer first. Video elements require this, because they have 661 661 // shadow content that must display in front of the video. 662 m_layer->insert Sublayer(m_contentsLayer.get(), 0);662 m_layer->insertChild(m_contentsLayer.get(), 0); 663 663 664 664 updateContentsRect(); -
trunk/Source/WebCore/platform/graphics/chromium/GraphicsLayerChromium.h
r80327 r86189 105 105 106 106 LayerChromium* primaryLayer() const { return m_transformLayer.get() ? m_transformLayer.get() : m_layer.get(); } 107 LayerChromium* hostLayerFor Sublayers() const;108 LayerChromium* layerFor Superlayer() const;107 LayerChromium* hostLayerForChildren() const; 108 LayerChromium* layerForParent() const; 109 109 110 110 void updateNames(); 111 void update SublayerList();111 void updateChildList(); 112 112 void updateLayerPosition(); 113 113 void updateLayerSize(); -
trunk/Source/WebCore/platform/graphics/chromium/LayerChromium.cpp
r85136 r86189 64 64 , m_maskLayer(0) 65 65 , m_ccLayerImpl(0) 66 , m_ superlayer(0)66 , m_parent(0) 67 67 #ifndef NDEBUG 68 68 , m_debugID(s_nextLayerDebugID++) … … 88 88 { 89 89 ASSERT(!LayerRendererChromium::s_inPaintLayerContents); 90 // Our superlayershould be holding a reference to us so there should be no91 // way for us to be destroyed while we still have a superlayer.92 ASSERT(! superlayer());90 // Our parent should be holding a reference to us so there should be no 91 // way for us to be destroyed while we still have a parent. 92 ASSERT(!parent()); 93 93 94 94 if (m_ccLayerImpl) 95 95 m_ccLayerImpl->resetOwner(); 96 96 97 // Remove the superlayer reference from all sublayers.98 removeAll Sublayers();97 // Remove the parent reference from all children. 98 removeAllChildren(); 99 99 } 100 100 … … 126 126 } 127 127 128 void LayerChromium::add Sublayer(PassRefPtr<LayerChromium> sublayer)129 { 130 insert Sublayer(sublayer, numSublayers());131 } 132 133 void LayerChromium::insert Sublayer(PassRefPtr<LayerChromium> sublayer, size_t index)134 { 135 index = min(index, m_ sublayers.size());136 sublayer->removeFromSuperlayer();137 sublayer->setSuperlayer(this);138 m_ sublayers.insert(index, sublayer);139 setNeedsCommit(); 140 } 141 142 void LayerChromium::removeFrom Superlayer()143 { 144 if (m_ superlayer)145 m_ superlayer->removeSublayer(this);146 } 147 148 void LayerChromium::remove Sublayer(LayerChromium* sublayer)149 { 150 int foundIndex = indexOf Sublayer(sublayer);128 void LayerChromium::addChild(PassRefPtr<LayerChromium> child) 129 { 130 insertChild(child, numChildren()); 131 } 132 133 void LayerChromium::insertChild(PassRefPtr<LayerChromium> child, size_t index) 134 { 135 index = min(index, m_children.size()); 136 child->removeFromParent(); 137 child->setParent(this); 138 m_children.insert(index, child); 139 setNeedsCommit(); 140 } 141 142 void LayerChromium::removeFromParent() 143 { 144 if (m_parent) 145 m_parent->removeChild(this); 146 } 147 148 void LayerChromium::removeChild(LayerChromium* child) 149 { 150 int foundIndex = indexOfChild(child); 151 151 if (foundIndex == -1) 152 152 return; 153 153 154 sublayer->setSuperlayer(0);155 m_ sublayers.remove(foundIndex);156 setNeedsCommit(); 157 } 158 159 void LayerChromium::replace Sublayer(LayerChromium* reference, PassRefPtr<LayerChromium> newLayer)154 child->setParent(0); 155 m_children.remove(foundIndex); 156 setNeedsCommit(); 157 } 158 159 void LayerChromium::replaceChild(LayerChromium* reference, PassRefPtr<LayerChromium> newLayer) 160 160 { 161 161 ASSERT_ARG(reference, reference); 162 ASSERT_ARG(reference, reference-> superlayer() == this);162 ASSERT_ARG(reference, reference->parent() == this); 163 163 164 164 if (reference == newLayer) 165 165 return; 166 166 167 int referenceIndex = indexOf Sublayer(reference);167 int referenceIndex = indexOfChild(reference); 168 168 if (referenceIndex == -1) { 169 169 ASSERT_NOT_REACHED(); … … 171 171 } 172 172 173 reference->removeFrom Superlayer();173 reference->removeFromParent(); 174 174 175 175 if (newLayer) { 176 newLayer->removeFrom Superlayer();177 insert Sublayer(newLayer, referenceIndex);178 } 179 } 180 181 int LayerChromium::indexOf Sublayer(const LayerChromium* reference)182 { 183 for (size_t i = 0; i < m_ sublayers.size(); i++) {184 if (m_ sublayers[i] == reference)176 newLayer->removeFromParent(); 177 insertChild(newLayer, referenceIndex); 178 } 179 } 180 181 int LayerChromium::indexOfChild(const LayerChromium* reference) 182 { 183 for (size_t i = 0; i < m_children.size(); i++) { 184 if (m_children[i] == reference) 185 185 return i; 186 186 } … … 215 215 { 216 216 const LayerChromium* layer = this; 217 for (LayerChromium* superlayer = layer->superlayer(); superlayer; layer = superlayer, superlayer = superlayer->superlayer()) { }217 for (LayerChromium* parent = layer->parent(); parent; layer = parent, parent = parent->parent()) { } 218 218 return layer; 219 219 } 220 220 221 void LayerChromium::removeAll Sublayers()222 { 223 while (m_ sublayers.size()) {224 LayerChromium* layer = m_ sublayers[0].get();225 ASSERT(layer-> superlayer());226 layer->removeFrom Superlayer();227 } 228 } 229 230 void LayerChromium::set Sublayers(const Vector<RefPtr<LayerChromium> >& sublayers)231 { 232 if ( sublayers == m_sublayers)221 void LayerChromium::removeAllChildren() 222 { 223 while (m_children.size()) { 224 LayerChromium* layer = m_children[0].get(); 225 ASSERT(layer->parent()); 226 layer->removeFromParent(); 227 } 228 } 229 230 void LayerChromium::setChildren(const Vector<RefPtr<LayerChromium> >& children) 231 { 232 if (children == m_children) 233 233 return; 234 234 235 removeAll Sublayers();236 size_t listSize = sublayers.size();235 removeAllChildren(); 236 size_t listSize = children.size(); 237 237 for (size_t i = 0; i < listSize; i++) 238 add Sublayer(sublayers[i]);239 } 240 241 LayerChromium* LayerChromium:: superlayer() const242 { 243 return m_ superlayer;238 addChild(children[i]); 239 } 240 241 LayerChromium* LayerChromium::parent() const 242 { 243 return m_parent; 244 244 } 245 245 … … 375 375 m_maskLayer->dumpLayer(ts, indent+3); 376 376 } 377 for (size_t i = 0; i < m_ sublayers.size(); ++i)378 m_ sublayers[i]->dumpLayer(ts, indent+1);377 for (size_t i = 0; i < m_children.size(); ++i) 378 m_children[i]->dumpLayer(ts, indent+1); 379 379 } 380 380 -
trunk/Source/WebCore/platform/graphics/chromium/LayerChromium.h
r83941 r86189 67 67 68 68 const LayerChromium* rootLayer() const; 69 LayerChromium* superlayer() const;70 void add Sublayer(PassRefPtr<LayerChromium>);71 void insert Sublayer(PassRefPtr<LayerChromium>, size_t index);72 void replace Sublayer(LayerChromium* reference, PassRefPtr<LayerChromium> newLayer);73 void removeFrom Superlayer();74 void removeAll Sublayers();75 void set Sublayers(const Vector<RefPtr<LayerChromium> >&);76 const Vector<RefPtr<LayerChromium> >& getSublayers() const { return m_sublayers; }69 LayerChromium* parent() const; 70 void addChild(PassRefPtr<LayerChromium>); 71 void insertChild(PassRefPtr<LayerChromium>, size_t index); 72 void replaceChild(LayerChromium* reference, PassRefPtr<LayerChromium> newLayer); 73 void removeFromParent(); 74 void removeAllChildren(); 75 void setChildren(const Vector<RefPtr<LayerChromium> >&); 76 const Vector<RefPtr<LayerChromium> >& children() const { return m_children; } 77 77 78 78 void setAnchorPoint(const FloatPoint& anchorPoint) { m_anchorPoint = anchorPoint; setNeedsCommit(); } … … 225 225 void setNeedsCommit(); 226 226 227 void set Superlayer(LayerChromium* superlayer) { m_superlayer = superlayer; }228 229 size_t num Sublayers() const227 void setParent(LayerChromium* parent) { m_parent = parent; } 228 229 size_t numChildren() const 230 230 { 231 return m_ sublayers.size();231 return m_children.size(); 232 232 } 233 233 234 // Returns the index of the sublayeror -1 if not found.235 int indexOf Sublayer(const LayerChromium*);236 237 // This should only be called from removeFrom Superlayer.238 void remove Sublayer(LayerChromium*);239 240 Vector<RefPtr<LayerChromium> > m_ sublayers;241 LayerChromium* m_ superlayer;234 // Returns the index of the child or -1 if not found. 235 int indexOfChild(const LayerChromium*); 236 237 // This should only be called from removeFromParent. 238 void removeChild(LayerChromium*); 239 240 Vector<RefPtr<LayerChromium> > m_children; 241 LayerChromium* m_parent; 242 242 243 243 RefPtr<LayerRendererChromium> m_layerRenderer; -
trunk/Source/WebCore/platform/graphics/chromium/LayerRendererChromium.cpp
r85959 r86189 568 568 569 569 // Compute the new matrix transformation that will be applied to this layer and 570 // all its sublayers. It's important to remember that the layer's position570 // all its children. It's important to remember that the layer's position 571 571 // is the position of the layer's anchor point. Also, the coordinate system used 572 572 // assumes that the origin is at the lower left even though the coordinates the browser … … 621 621 bool useSurfaceForMasking = drawLayer->maskLayer(); 622 622 bool useSurfaceForReflection = drawLayer->replicaLayer(); 623 bool useSurfaceForFlatDescendants = (drawLayer-> superlayer() && drawLayer->superlayer()->preserves3D() && !drawLayer->preserves3D() && drawLayer->descendantsDrawsContent());623 bool useSurfaceForFlatDescendants = (drawLayer->parent() && drawLayer->parent()->preserves3D() && !drawLayer->preserves3D() && drawLayer->descendantsDrawsContent()); 624 624 if (useSurfaceForMasking || useSurfaceForReflection || useSurfaceForFlatDescendants || ((useSurfaceForClipping || useSurfaceForOpacity) && drawLayer->descendantsDrawsContent())) { 625 625 RenderSurfaceChromium* renderSurface = drawLayer->renderSurface(); … … 636 636 // Layer's opacity will be applied when drawing the render surface. 637 637 renderSurface->m_drawOpacity = drawLayer->opacity(); 638 if (drawLayer-> superlayer() && drawLayer->superlayer()->preserves3D())639 renderSurface->m_drawOpacity *= drawLayer-> superlayer()->drawOpacity();638 if (drawLayer->parent() && drawLayer->parent()->preserves3D()) 639 renderSurface->m_drawOpacity *= drawLayer->parent()->drawOpacity(); 640 640 drawLayer->setDrawOpacity(1); 641 641 … … 647 647 // The render surface scissor rect is the scissor rect that needs to 648 648 // be applied before drawing the render surface onto its containing 649 // surface and is therefore expressed in the superlayer's coordinate system.650 renderSurface->m_scissorRect = drawLayer-> superlayer() ? drawLayer->superlayer()->scissorRect() : drawLayer->scissorRect();649 // surface and is therefore expressed in the parent's coordinate system. 650 renderSurface->m_scissorRect = drawLayer->parent() ? drawLayer->parent()->scissorRect() : drawLayer->scissorRect(); 651 651 652 652 renderSurface->m_layerList.clear(); … … 669 669 drawLayer->setDrawOpacity(drawLayer->opacity()); 670 670 671 if (drawLayer-> superlayer()) {672 if (drawLayer-> superlayer()->preserves3D())673 drawLayer->setDrawOpacity(drawLayer->drawOpacity() * drawLayer-> superlayer()->drawOpacity());674 675 // Layers inherit the scissor rect from their superlayer.676 drawLayer->setScissorRect(drawLayer-> superlayer()->scissorRect());677 678 drawLayer->setTargetRenderSurface(drawLayer-> superlayer()->targetRenderSurface());671 if (drawLayer->parent()) { 672 if (drawLayer->parent()->preserves3D()) 673 drawLayer->setDrawOpacity(drawLayer->drawOpacity() * drawLayer->parent()->drawOpacity()); 674 675 // Layers inherit the scissor rect from their parent. 676 drawLayer->setScissorRect(drawLayer->parent()->scissorRect()); 677 678 drawLayer->setTargetRenderSurface(drawLayer->parent()->targetRenderSurface()); 679 679 } 680 680 … … 693 693 drawLayer->setTargetRenderSurface(drawLayer->renderSurface()); 694 694 else { 695 ASSERT(drawLayer-> superlayer());696 drawLayer->setTargetRenderSurface(drawLayer-> superlayer()->targetRenderSurface());695 ASSERT(drawLayer->parent()); 696 drawLayer->setTargetRenderSurface(drawLayer->parent()->targetRenderSurface()); 697 697 } 698 698 … … 720 720 sublayerMatrix.multiply(drawLayer->sublayerTransform()); 721 721 722 // The origin of the sublayersis the top left corner of the layer, not the723 // center. The matrix passed down to the sublayersis therefore:722 // The origin of the children is the top left corner of the layer, not the 723 // center. The matrix passed down to the children is therefore: 724 724 // M[s] = M * Tr[-center] 725 725 sublayerMatrix.translate3d(-bounds.width() * 0.5, -bounds.height() * 0.5, 0); … … 729 729 unsigned thisLayerIndex = descendants.size() - 1; 730 730 731 const Vector<RefPtr<LayerChromium> >& sublayers = layer->getSublayers();732 for (size_t i = 0; i < sublayers.size(); ++i) {733 sublayers[i]->createCCLayerImplIfNeeded();734 CCLayerImpl* sublayer = sublayers[i]->ccLayerImpl();735 updatePropertiesAndRenderSurfaces( sublayers[i].get(), sublayerMatrix, renderSurfaceLayerList, descendants);736 737 if ( sublayer->renderSurface()) {738 RenderSurfaceChromium* sublayerRenderSurface = sublayer->renderSurface();731 const Vector<RefPtr<LayerChromium> >& children = layer->children(); 732 for (size_t i = 0; i < children.size(); ++i) { 733 children[i]->createCCLayerImplIfNeeded(); 734 CCLayerImpl* child = children[i]->ccLayerImpl(); 735 updatePropertiesAndRenderSurfaces(children[i].get(), sublayerMatrix, renderSurfaceLayerList, descendants); 736 737 if (child->renderSurface()) { 738 RenderSurfaceChromium* childRenderSurface = child->renderSurface(); 739 739 IntRect drawableContentRect = drawLayer->drawableContentRect(); 740 drawableContentRect.unite(enclosingIntRect( sublayerRenderSurface->drawableContentRect()));740 drawableContentRect.unite(enclosingIntRect(childRenderSurface->drawableContentRect())); 741 741 drawLayer->setDrawableContentRect(drawableContentRect); 742 descendants.append( sublayer);742 descendants.append(child); 743 743 } else { 744 744 IntRect drawableContentRect = drawLayer->drawableContentRect(); 745 drawableContentRect.unite( sublayer->drawableContentRect());745 drawableContentRect.unite(child->drawableContentRect()); 746 746 drawLayer->setDrawableContentRect(drawableContentRect); 747 747 } … … 798 798 799 799 // If preserves-3d then sort all the descendants in 3D so that they can be 800 // drawn from back to front. If the preserves-3d property is also set on the superlayerthen801 // skip the sorting as the superlayerwill sort all the descendants anyway.802 if (drawLayer->preserves3D() && (!drawLayer-> superlayer() || !drawLayer->superlayer()->preserves3D()))800 // drawn from back to front. If the preserves-3d property is also set on the parent then 801 // skip the sorting as the parent will sort all the descendants anyway. 802 if (drawLayer->preserves3D() && (!drawLayer->parent() || !drawLayer->parent()->preserves3D())) 803 803 m_layerSorter.sort(&descendants.at(thisLayerIndex), descendants.end()); 804 804 } … … 806 806 void LayerRendererChromium::updateCompositorResourcesRecursive(LayerChromium* layer) 807 807 { 808 const Vector<RefPtr<LayerChromium> >& sublayers = layer->getSublayers();809 for (size_t i = 0; i < sublayers.size(); ++i)810 updateCompositorResourcesRecursive( sublayers[i].get());808 const Vector<RefPtr<LayerChromium> >& children = layer->children(); 809 for (size_t i = 0; i < children.size(); ++i) 810 updateCompositorResourcesRecursive(children[i].get()); 811 811 812 812 if (layer->bounds().isEmpty()) … … 1119 1119 layer->ccLayerImpl()->renderSurface()->dumpSurface(ts, indent); 1120 1120 1121 for (size_t i = 0; i < layer-> getSublayers().size(); ++i)1122 dumpRenderSurfaces(ts, indent, layer-> getSublayers()[i].get());1121 for (size_t i = 0; i < layer->children().size(); ++i) 1122 dumpRenderSurfaces(ts, indent, layer->children()[i].get()); 1123 1123 } 1124 1124 -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.cpp
r86067 r86189 86 86 87 87 // These are pseudo-structural hacks until we get real tree syncing up in this piece. 88 CCLayerImpl* CCLayerImpl:: superlayer() const89 { 90 return m_owner-> superlayer() ? m_owner->superlayer()->ccLayerImpl() : 0;88 CCLayerImpl* CCLayerImpl::parent() const 89 { 90 return m_owner->parent() ? m_owner->parent()->ccLayerImpl() : 0; 91 91 } 92 92 … … 114 114 bool CCLayerImpl::descendantsDrawsContent() 115 115 { 116 const Vector<RefPtr<LayerChromium> >& sublayers = m_owner->getSublayers();117 for (size_t i = 0; i < sublayers.size(); ++i) {118 sublayers[i]->createCCLayerImplIfNeeded();119 if ( sublayers[i]->ccLayerImpl()->drawsContent() || sublayers[i]->ccLayerImpl()->descendantsDrawsContent())116 const Vector<RefPtr<LayerChromium> >& children = m_owner->children(); 117 for (size_t i = 0; i < children.size(); ++i) { 118 children[i]->createCCLayerImplIfNeeded(); 119 if (children[i]->ccLayerImpl()->drawsContent() || children[i]->ccLayerImpl()->descendantsDrawsContent()) 120 120 return true; 121 121 } -
trunk/Source/WebCore/platform/graphics/chromium/cc/CCLayerImpl.h
r85814 r86189 58 58 #endif 59 59 60 CCLayerImpl* superlayer() const;60 CCLayerImpl* parent() const; 61 61 CCLayerImpl* maskLayer() const; 62 62 CCLayerImpl* replicaLayer() const;
Note: See TracChangeset
for help on using the changeset viewer.