Changeset 77140 in webkit
- Timestamp:
- Jan 31, 2011 10:11:11 AM (13 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r77137 r77140 1 2011-01-31 Shane Stephens <shanestephens@google.com> 2 3 Reviewed by Simon Fraser. 4 5 AffineTransform::translateRight incorrectly computes a translateLeft. 6 https://bugs.webkit.org/show_bug.cgi?id=52551 7 8 Removed translateRight and converted all uses to perform standard 9 matrix multiplication. 10 11 No new tests because patch doesn't modify functionality. 12 13 * platform/graphics/transforms/AffineTransform.cpp: 14 * platform/graphics/transforms/AffineTransform.h: 15 (WebCore::AffineTransform::translation): 16 * rendering/svg/RenderSVGResourceMarker.cpp: 17 (WebCore::RenderSVGResourceMarker::localToParentTransform): 18 * rendering/svg/RenderSVGRoot.cpp: 19 (WebCore::RenderSVGRoot::localToRepaintContainerTransform): 20 (WebCore::RenderSVGRoot::localToParentTransform): 21 * rendering/svg/RenderSVGViewportContainer.cpp: 22 (WebCore::RenderSVGViewportContainer::localToParentTransform): 23 * rendering/svg/SVGTextLayoutEngine.cpp: 24 (WebCore::SVGTextLayoutEngine::finalizeTransformMatrices): 25 1 26 2011-01-31 Mario Sanchez Prada <msanchez@igalia.com> 2 27 -
trunk/Source/WebCore/platform/graphics/transforms/AffineTransform.cpp
r76146 r77140 223 223 } 224 224 225 // *this = translation * *this226 AffineTransform& AffineTransform::translateRight(double tx, double ty)227 {228 m_transform[4] += tx;229 m_transform[5] += ty;230 return *this;231 }232 233 225 AffineTransform& AffineTransform::scaleNonUniform(double sx, double sy) 234 226 { -
trunk/Source/WebCore/platform/graphics/transforms/AffineTransform.h
r76248 r77140 104 104 AffineTransform& rotateFromVector(double x, double y); 105 105 AffineTransform& translate(double tx, double ty); 106 AffineTransform& translateRight(double tx, double ty);107 106 AffineTransform& shear(double sx, double sy); 108 107 AffineTransform& flipX(); … … 173 172 #endif 174 173 174 static AffineTransform translation(double x, double y) 175 { 176 return AffineTransform(1, 0, 0, 1, x, y); 177 } 178 175 179 private: 176 180 void setMatrix(const Transform m) -
trunk/Source/WebCore/rendering/svg/RenderSVGResourceMarker.cpp
r75350 r77140 87 87 const AffineTransform& RenderSVGResourceMarker::localToParentTransform() const 88 88 { 89 AffineTransform viewportTranslation(viewportTransform()); 90 m_localToParentTransform = viewportTranslation.translateRight(m_viewport.x(), m_viewport.y()); 89 m_localToParentTransform = AffineTransform::translation(m_viewport.x(), m_viewport.y()) * viewportTransform(); 91 90 return m_localToParentTransform; 92 91 // If this class were ever given a localTransform(), then the above would read: 93 // return viewportTrans form() * localTransform() * viewportTranslation;92 // return viewportTranslation * localTransform() * viewportTransform(); 94 93 } 95 94 -
trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp
r76146 r77140 262 262 AffineTransform RenderSVGRoot::localToRepaintContainerTransform(const IntPoint& parentOriginInContainer) const 263 263 { 264 AffineTransform parentToContainer(localToParentTransform()); 265 return parentToContainer.translateRight(parentOriginInContainer.x(), parentOriginInContainer.y()); 264 return AffineTransform::translation(parentOriginInContainer.x(), parentOriginInContainer.y()) * localToParentTransform(); 266 265 } 267 266 … … 270 269 IntSize parentToBorderBoxOffset = parentOriginToBorderBox(); 271 270 272 AffineTransform borderBoxOriginToParentOrigin(localToBorderBoxTransform()); 273 borderBoxOriginToParentOrigin.translateRight(parentToBorderBoxOffset.width(), parentToBorderBoxOffset.height()); 274 275 m_localToParentTransform = borderBoxOriginToParentOrigin; 271 m_localToParentTransform = AffineTransform::translation(parentToBorderBoxOffset.width(), parentToBorderBoxOffset.height()) * localToBorderBoxTransform(); 272 276 273 return m_localToParentTransform; 277 274 } -
trunk/Source/WebCore/rendering/svg/RenderSVGViewportContainer.cpp
r75350 r77140 73 73 const AffineTransform& RenderSVGViewportContainer::localToParentTransform() const 74 74 { 75 AffineTransform viewportTranslation(viewportTransform()); 76 m_localToParentTransform = viewportTranslation.translateRight(m_viewport.x(), m_viewport.y()); 75 m_localToParentTransform = AffineTransform::translation(m_viewport.x(), m_viewport.y()) * viewportTransform(); 77 76 return m_localToParentTransform; 78 77 // If this class were ever given a localTransform(), then the above would read: 79 // return viewportTrans form() * localTransform() * viewportTranslation;78 // return viewportTranslation * localTransform() * viewportTransform() 80 79 } 81 80 -
trunk/Source/WebCore/rendering/svg/SVGTextLayoutEngine.cpp
r76146 r77140 311 311 AffineTransform& transform = fragment.transform; 312 312 if (!transform.isIdentity()) { 313 transform .translateRight(fragment.x, fragment.y);313 transform = AffineTransform::translation(fragment.x, fragment.y) * transform; 314 314 transform.translate(-fragment.x, -fragment.y); 315 315 }
Note: See TracChangeset
for help on using the changeset viewer.