summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/platform/transforms/transform_operations.h
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-13 16:23:34 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-14 10:37:21 +0000
commit38a9a29f4f9436cace7f0e7abf9c586057df8a4e (patch)
treec4e8c458dc595bc0ddb435708fa2229edfd00bd4 /chromium/third_party/blink/renderer/platform/transforms/transform_operations.h
parente684a3455bcc29a6e3e66a004e352dea4e1141e7 (diff)
downloadqtwebengine-chromium-38a9a29f4f9436cace7f0e7abf9c586057df8a4e.tar.gz
BASELINE: Update Chromium to 73.0.3683.37
Change-Id: I08c9af2948b645f671e5d933aca1f7a90ea372f2 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/platform/transforms/transform_operations.h')
-rw-r--r--chromium/third_party/blink/renderer/platform/transforms/transform_operations.h28
1 files changed, 22 insertions, 6 deletions
diff --git a/chromium/third_party/blink/renderer/platform/transforms/transform_operations.h b/chromium/third_party/blink/renderer/platform/transforms/transform_operations.h
index b0d7f1aa8b4..e01e36b3d40 100644
--- a/chromium/third_party/blink/renderer/platform/transforms/transform_operations.h
+++ b/chromium/third_party/blink/renderer/platform/transforms/transform_operations.h
@@ -48,11 +48,21 @@ class PLATFORM_EXPORT TransformOperations {
bool operator==(const TransformOperations& o) const;
bool operator!=(const TransformOperations& o) const { return !(*this == o); }
- void Apply(const FloatSize& sz, TransformationMatrix& t) const {
+ // Constructs a transformation matrix from the operations. The parameter
+ // |border_box_size| is used when computing styles that are size-dependent.
+ void Apply(const FloatSize& border_box_size, TransformationMatrix& t) const {
for (auto& operation : operations_)
- operation->Apply(t, sz);
+ operation->Apply(t, border_box_size);
}
+ // Constructs a transformation matrix from the operations starting from index
+ // |start|. This process facilitates mixing pairwise operations for a common
+ // prefix and matrix interpolation for the remainder. The parameter
+ // |border_box_size| is used when computing styles that are size-dependent.
+ void ApplyRemaining(const FloatSize& border_box_size,
+ wtf_size_t start,
+ TransformationMatrix& t) const;
+
// Return true if any of the operation types are 3D operation types (even if
// the values describe affine transforms)
bool Has3DOperation() const {
@@ -80,7 +90,7 @@ class PLATFORM_EXPORT TransformOperations {
return false;
}
- bool OperationsMatch(const TransformOperations&) const;
+ wtf_size_t MatchingPrefixLength(const TransformOperations&) const;
void clear() { operations_.clear(); }
@@ -101,11 +111,17 @@ class PLATFORM_EXPORT TransformOperations {
const double& min_progress,
const double& max_progress,
FloatBox* bounds) const;
- TransformOperations BlendByMatchingOperations(const TransformOperations& from,
- const double& progress) const;
- scoped_refptr<TransformOperation> BlendByUsingMatrixInterpolation(
+
+ TransformOperations BlendPrefixByMatchingOperations(
const TransformOperations& from,
+ wtf_size_t matching_prefix_length,
+ double progress,
+ bool* success) const;
+ scoped_refptr<TransformOperation> BlendRemainingByUsingMatrixInterpolation(
+ const TransformOperations& from,
+ wtf_size_t matching_prefix_length,
double progress) const;
+
TransformOperations Blend(const TransformOperations& from,
double progress) const;
TransformOperations Add(const TransformOperations& addend) const;