Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1248)

Unified Diff: Source/core/rendering/svg/SVGRenderingContext.cpp

Issue 677443003: [SVG] Remove calculateDeviceSpaceTransformation() (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « Source/core/rendering/svg/SVGRenderingContext.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/rendering/svg/SVGRenderingContext.cpp
diff --git a/Source/core/rendering/svg/SVGRenderingContext.cpp b/Source/core/rendering/svg/SVGRenderingContext.cpp
index b425add29e08294c888db6ac7ed7f7107e65b932..793371644225a1f466358f5069a91f020b631a8d 100644
--- a/Source/core/rendering/svg/SVGRenderingContext.cpp
+++ b/Source/core/rendering/svg/SVGRenderingContext.cpp
@@ -195,17 +195,6 @@ SubtreeContentTransformScope::~SubtreeContentTransformScope()
float SVGRenderingContext::calculateScreenFontSizeScalingFactor(const RenderObject* renderer)
{
- ASSERT(renderer);
-
- AffineTransform ctm;
- // FIXME: calculateDeviceSpaceTransformation() queries layer compositing state - which is not
- // supported during layout. Hence, the result may not include all CSS transforms.
- calculateDeviceSpaceTransformation(renderer, ctm);
- return narrowPrecisionToFloat(sqrt((pow(ctm.xScale(), 2) + pow(ctm.yScale(), 2)) / 2));
-}
-
-void SVGRenderingContext::calculateDeviceSpaceTransformation(const RenderObject* renderer, AffineTransform& absoluteTransform)
-{
// FIXME: trying to compute a device space transform at record time is wrong. All clients
// should be updated to avoid relying on this information, and the method should be removed.
@@ -214,15 +203,17 @@ void SVGRenderingContext::calculateDeviceSpaceTransformation(const RenderObject*
float deviceScaleFactor = renderer->document().frameHost()->deviceScaleFactor();
// Walk up the render tree, accumulating SVG transforms.
- absoluteTransform = currentContentTransformation();
+ AffineTransform ctm = currentContentTransformation();
while (renderer) {
- absoluteTransform = renderer->localToParentTransform() * absoluteTransform;
+ ctm = renderer->localToParentTransform() * ctm;
if (renderer->isSVGRoot())
break;
renderer = renderer->parent();
}
// Continue walking up the layer tree, accumulating CSS transforms.
+ // FIXME: this queries layer compositing state - which is not
+ // supported during layout. Hence, the result may not include all CSS transforms.
RenderLayer* layer = renderer ? renderer->enclosingLayer() : 0;
while (layer && layer->isAllowedToQueryCompositingState()) {
// We can stop at compositing layers, to match the backing resolution.
@@ -234,12 +225,14 @@ void SVGRenderingContext::calculateDeviceSpaceTransformation(const RenderObject*
break;
if (TransformationMatrix* layerTransform = layer->transform())
- absoluteTransform = layerTransform->toAffineTransform() * absoluteTransform;
+ ctm = layerTransform->toAffineTransform() * ctm;
layer = layer->parent();
}
- absoluteTransform.scale(deviceScaleFactor);
+ ctm.scale(deviceScaleFactor);
+
+ return narrowPrecisionToFloat(sqrt((pow(ctm.xScale(), 2) + pow(ctm.yScale(), 2)) / 2));
}
void SVGRenderingContext::renderSubtree(GraphicsContext* context, RenderObject* item)
« no previous file with comments | « Source/core/rendering/svg/SVGRenderingContext.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698