Index: third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp b/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp |
index f3fbb77097415d4f54016e49efd7096b470239cb..14f9f54e6618573fe27aea02bc5d5b908d93d81a 100644 |
--- a/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/paint/GeometryMapper.cpp |
@@ -5,16 +5,13 @@ |
#include "platform/graphics/paint/GeometryMapper.h" |
#include "platform/geometry/LayoutRect.h" |
-#include "platform/graphics/paint/ClipPaintPropertyNode.h" |
-#include "platform/graphics/paint/EffectPaintPropertyNode.h" |
-#include "platform/graphics/paint/TransformPaintPropertyNode.h" |
namespace blink { |
FloatRect GeometryMapper::mapToVisualRectInDestinationSpace( |
const FloatRect& rect, |
- const GeometryPropertyTreeState& sourceState, |
- const GeometryPropertyTreeState& destinationState, |
+ const PropertyTreeState& sourceState, |
+ const PropertyTreeState& destinationState, |
bool& success) { |
FloatRect result = localToVisualRectInAncestorSpace( |
rect, sourceState, destinationState, success); |
@@ -26,8 +23,8 @@ FloatRect GeometryMapper::mapToVisualRectInDestinationSpace( |
FloatRect GeometryMapper::mapRectToDestinationSpace( |
const FloatRect& rect, |
- const GeometryPropertyTreeState& sourceState, |
- const GeometryPropertyTreeState& destinationState, |
+ const PropertyTreeState& sourceState, |
+ const PropertyTreeState& destinationState, |
bool& success) { |
FloatRect result = |
localToAncestorRect(rect, sourceState, destinationState, success); |
@@ -39,17 +36,17 @@ FloatRect GeometryMapper::mapRectToDestinationSpace( |
FloatRect GeometryMapper::slowMapToVisualRectInDestinationSpace( |
const FloatRect& rect, |
- const GeometryPropertyTreeState& sourceState, |
- const GeometryPropertyTreeState& destinationState, |
+ const PropertyTreeState& sourceState, |
+ const PropertyTreeState& destinationState, |
bool& success) { |
const TransformPaintPropertyNode* lcaTransform = leastCommonAncestor( |
- sourceState.transform.get(), destinationState.transform.get()); |
+ sourceState.transform(), destinationState.transform()); |
DCHECK(lcaTransform); |
// Assume that the clip of destinationState is an ancestor of the clip of sourceState |
// and is under the space of lcaTransform. Otherwise localToAncestorClipRect() will fail. |
- GeometryPropertyTreeState lcaState = destinationState; |
- lcaState.transform = lcaTransform; |
+ PropertyTreeState lcaState = destinationState; |
+ lcaState.setTransform(lcaTransform); |
const auto clipRect = localToAncestorClipRect(sourceState, lcaState, success); |
if (!success) |
@@ -59,8 +56,8 @@ FloatRect GeometryMapper::slowMapToVisualRectInDestinationSpace( |
DCHECK(success); |
result.intersect(clipRect); |
- const TransformationMatrix& destinationToLca = localToAncestorMatrix( |
- destinationState.transform.get(), lcaState, success); |
+ const TransformationMatrix& destinationToLca = |
+ localToAncestorMatrix(destinationState.transform(), lcaState, success); |
DCHECK(success); |
if (destinationToLca.isInvertible()) { |
success = true; |
@@ -72,20 +69,20 @@ FloatRect GeometryMapper::slowMapToVisualRectInDestinationSpace( |
FloatRect GeometryMapper::slowMapRectToDestinationSpace( |
const FloatRect& rect, |
- const GeometryPropertyTreeState& sourceState, |
- const GeometryPropertyTreeState& destinationState, |
+ const PropertyTreeState& sourceState, |
+ const PropertyTreeState& destinationState, |
bool& success) { |
const TransformPaintPropertyNode* lcaTransform = leastCommonAncestor( |
- sourceState.transform.get(), destinationState.transform.get()); |
+ sourceState.transform(), destinationState.transform()); |
DCHECK(lcaTransform); |
- GeometryPropertyTreeState lcaState = sourceState; |
- lcaState.transform = lcaTransform; |
+ PropertyTreeState lcaState = sourceState; |
+ lcaState.setTransform(lcaTransform); |
FloatRect result = localToAncestorRect(rect, sourceState, lcaState, success); |
DCHECK(success); |
- const TransformationMatrix& destinationToLca = localToAncestorMatrix( |
- destinationState.transform.get(), lcaState, success); |
+ const TransformationMatrix& destinationToLca = |
+ localToAncestorMatrix(destinationState.transform(), lcaState, success); |
DCHECK(success); |
if (destinationToLca.isInvertible()) { |
success = true; |
@@ -97,11 +94,11 @@ FloatRect GeometryMapper::slowMapRectToDestinationSpace( |
FloatRect GeometryMapper::localToVisualRectInAncestorSpace( |
const FloatRect& rect, |
- const GeometryPropertyTreeState& localState, |
- const GeometryPropertyTreeState& ancestorState, |
+ const PropertyTreeState& localState, |
+ const PropertyTreeState& ancestorState, |
bool& success) { |
const auto& transformMatrix = |
- localToAncestorMatrix(localState.transform.get(), ancestorState, success); |
+ localToAncestorMatrix(localState.transform(), ancestorState, success); |
if (!success) |
return rect; |
@@ -117,11 +114,11 @@ FloatRect GeometryMapper::localToVisualRectInAncestorSpace( |
FloatRect GeometryMapper::localToAncestorRect( |
const FloatRect& rect, |
- const GeometryPropertyTreeState& localState, |
- const GeometryPropertyTreeState& ancestorState, |
+ const PropertyTreeState& localState, |
+ const PropertyTreeState& ancestorState, |
bool& success) { |
const auto& transformMatrix = |
- localToAncestorMatrix(localState.transform.get(), ancestorState, success); |
+ localToAncestorMatrix(localState.transform(), ancestorState, success); |
if (!success) |
return rect; |
return transformMatrix.mapRect(rect); |
@@ -129,11 +126,11 @@ FloatRect GeometryMapper::localToAncestorRect( |
FloatRect GeometryMapper::ancestorToLocalRect( |
const FloatRect& rect, |
- const GeometryPropertyTreeState& localState, |
- const GeometryPropertyTreeState& ancestorState, |
+ const PropertyTreeState& localState, |
+ const PropertyTreeState& ancestorState, |
bool& success) { |
const auto& transformMatrix = |
- localToAncestorMatrix(localState.transform.get(), ancestorState, success); |
+ localToAncestorMatrix(localState.transform(), ancestorState, success); |
if (!success) |
return rect; |
@@ -148,20 +145,20 @@ FloatRect GeometryMapper::ancestorToLocalRect( |
} |
PrecomputedDataForAncestor& GeometryMapper::getPrecomputedDataForAncestor( |
- const GeometryPropertyTreeState& ancestorState) { |
- auto addResult = m_data.add(ancestorState.transform.get(), nullptr); |
+ const PropertyTreeState& ancestorState) { |
+ auto addResult = m_data.add(ancestorState.transform(), nullptr); |
if (addResult.isNewEntry) |
addResult.storedValue->value = PrecomputedDataForAncestor::create(); |
return *addResult.storedValue->value; |
} |
FloatRect GeometryMapper::localToAncestorClipRect( |
- const GeometryPropertyTreeState& localState, |
- const GeometryPropertyTreeState& ancestorState, |
+ const PropertyTreeState& localState, |
+ const PropertyTreeState& ancestorState, |
bool& success) { |
PrecomputedDataForAncestor& precomputedData = |
getPrecomputedDataForAncestor(ancestorState); |
- const ClipPaintPropertyNode* clipNode = localState.clip.get(); |
+ const ClipPaintPropertyNode* clipNode = localState.clip(); |
Vector<const ClipPaintPropertyNode*> intermediateNodes; |
FloatRect clip(LayoutRect::infiniteIntRect()); |
@@ -177,12 +174,12 @@ FloatRect GeometryMapper::localToAncestorClipRect( |
} |
intermediateNodes.append(clipNode); |
- if (clipNode == ancestorState.clip) |
+ if (clipNode == ancestorState.clip()) |
break; |
clipNode = clipNode->parent(); |
} |
- if (clipNode != ancestorState.clip && !found) { |
+ if (clipNode != ancestorState.clip() && !found) { |
success = false; |
return clip; |
} |
@@ -190,7 +187,7 @@ FloatRect GeometryMapper::localToAncestorClipRect( |
// Iterate down from the top intermediate node found in the previous loop, computing and memoizing clip rects as we go. |
for (auto it = intermediateNodes.rbegin(); it != intermediateNodes.rend(); |
++it) { |
- if ((*it) != ancestorState.clip) { |
+ if ((*it) != ancestorState.clip()) { |
success = false; |
const TransformationMatrix& transformMatrix = localToAncestorMatrix( |
(*it)->localTransformSpace(), ancestorState, success); |
@@ -204,12 +201,12 @@ FloatRect GeometryMapper::localToAncestorClipRect( |
} |
success = true; |
- return precomputedData.toAncestorClipRects.find(localState.clip.get())->value; |
+ return precomputedData.toAncestorClipRects.find(localState.clip())->value; |
} |
const TransformationMatrix& GeometryMapper::localToAncestorMatrix( |
const TransformPaintPropertyNode* localTransformNode, |
- const GeometryPropertyTreeState& ancestorState, |
+ const PropertyTreeState& ancestorState, |
bool& success) { |
PrecomputedDataForAncestor& precomputedData = |
getPrecomputedDataForAncestor(ancestorState); |
@@ -231,12 +228,12 @@ const TransformationMatrix& GeometryMapper::localToAncestorMatrix( |
intermediateNodes.append(transformNode); |
- if (transformNode == ancestorState.transform) |
+ if (transformNode == ancestorState.transform()) |
break; |
transformNode = transformNode->parent(); |
} |
- if (!found && transformNode != ancestorState.transform) { |
+ if (!found && transformNode != ancestorState.transform()) { |
success = false; |
return m_identity; |
} |
@@ -244,7 +241,7 @@ const TransformationMatrix& GeometryMapper::localToAncestorMatrix( |
// Iterate down from the top intermediate node found in the previous loop, computing and memoizing transforms as we go. |
for (auto it = intermediateNodes.rbegin(); it != intermediateNodes.rend(); |
it++) { |
- if ((*it) != ancestorState.transform) { |
+ if ((*it) != ancestorState.transform()) { |
TransformationMatrix localTransformMatrix = (*it)->matrix(); |
localTransformMatrix.applyTransformOrigin((*it)->origin()); |
transformMatrix = transformMatrix * localTransformMatrix; |