Changeset 104932 in webkit
- Timestamp:
- Jan 13, 2012 6:41:19 AM (12 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r104931 r104932 1 2012-01-12 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> 2 3 TextureMapper: Do the node transform computation when painting. 4 https://bugs.webkit.org/show_bug.cgi?id=74721 5 6 Reviewed by Noam Rosenthal. 7 8 The transform of the node tree was built during the syncCompositingState 9 step. This would cause an ASSERT with QWebView, trying to use a dirty transform 10 state since the rootTextureMapperNode in QWebFramePrivate::renderCompositedLayers 11 doesn't run the sync step after getting the world transform set. 12 13 This moves the transform computation from the sync to the paint step to 14 prevent making sure that the sync step has been run on all nodes before painting. 15 16 * platform/graphics/texmap/TextureMapperNode.cpp: 17 (WebCore::TextureMapperNode::computeTransformsRecursive): 18 (WebCore::TextureMapperNode::computeTiles): 19 Remove an unused variable. 20 (WebCore::TextureMapperNode::paint): 21 (WebCore::TextureMapperNode::syncAnimationsRecursively): 22 (WebCore::TextureMapperNode::syncCompositingState): 23 * platform/graphics/texmap/TextureMapperNode.h: 24 1 25 2012-01-12 Jocelyn Turcotte <jocelyn.turcotte@nokia.com> 2 26 -
trunk/Source/WebCore/platform/graphics/texmap/TextureMapperNode.cpp
r104931 r104932 96 96 } 97 97 98 void TextureMapperNode::compute AllTransforms()98 void TextureMapperNode::computeTransformsRecursive() 99 99 { 100 100 if (m_size.isEmpty() && m_state.masksToBounds) 101 101 return; 102 102 103 // Compute transforms recursively on the way down to leafs. 103 104 computeTransformsSelf(); 104 105 … … 109 110 110 111 if (m_state.maskLayer) 111 m_state.maskLayer->compute AllTransforms();112 m_state.maskLayer->computeTransformsRecursive(); 112 113 if (m_state.replicaLayer) 113 m_state.replicaLayer->computeAllTransforms(); 114 m_state.replicaLayer->computeTransformsRecursive(); 115 for (int i = 0; i < m_children.size(); ++i) 116 m_children[i]->computeTransformsRecursive(); 117 118 // Reorder children if needed on the way back up. 119 if (m_state.preserves3D) 120 sortByZOrder(m_children, 0, m_children.size()); 114 121 } 115 122 … … 134 141 FloatRect tileRect(x, y, gTileDimension, gTileDimension); 135 142 tileRect.intersect(contentRect); 136 FloatRect tileRectInRootCoordinates = tileRect;137 tileRectInRootCoordinates.scale(1.0);138 tileRectInRootCoordinates = m_transforms.target.mapRect(tileRectInRootCoordinates);139 143 tilesToAdd.append(tileRect); 140 144 } … … 316 320 if (m_size.isEmpty()) 317 321 return; 322 323 computeTransformsRecursive(); 318 324 319 325 TextureMapperPaintOptions opt; … … 971 977 syncAnimations(0); 972 978 973 computeAllTransforms();974 975 979 for (int i = m_children.size() - 1; i >= 0; --i) 976 980 m_children[i]->syncAnimationsRecursively(); … … 997 1001 syncAnimations(graphicsLayer); 998 1002 999 computeAllTransforms();1000 1003 computeTiles(); 1001 1004 computeOverlapsIfNeeded(); … … 1019 1022 m_children[i]->syncCompositingState(0, textureMapper, options); 1020 1023 } 1021 1022 if (m_state.preserves3D)1023 sortByZOrder(m_children, 0, m_children.size());1024 1024 } 1025 1025 -
trunk/Source/WebCore/platform/graphics/texmap/TextureMapperNode.h
r104931 r104932 175 175 private: 176 176 TextureMapperNode* rootLayer(); 177 void compute AllTransforms();177 void computeTransformsRecursive(); 178 178 void computeTransformsSelf(); 179 179 void computeVisibleRect(const FloatRect& rootVisibleRect);
Note: See TracChangeset
for help on using the changeset viewer.