Import cobalt 25.master.0.1034729
diff --git a/ui/gfx/interpolated_transform.cc b/ui/gfx/interpolated_transform.cc
index 6277fa4..88da97f 100644
--- a/ui/gfx/interpolated_transform.cc
+++ b/ui/gfx/interpolated_transform.cc
@@ -1,4 +1,4 @@
-// Copyright (c) 2012 The Chromium Authors. All rights reserved.
+// Copyright 2012 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
@@ -9,6 +9,7 @@
#include "base/check.h"
#include "base/numerics/safe_conversions.h"
#include "ui/gfx/animation/tween.h"
+#include "ui/gfx/geometry/transform_util.h"
namespace {
@@ -29,8 +30,6 @@
if (!IsMultipleOfNinetyDegrees(degrees) || !rotation)
return false;
- gfx::Transform transform;
- skia::Matrix44& m = transform.matrix();
float degrees_by_ninety = degrees / 90.0f;
int n = base::ClampRound(degrees_by_ninety);
@@ -40,21 +39,15 @@
n += 4;
// n should now be in the range [0, 3]
- if (n == 1) {
- m.set3x3( 0, 1, 0,
- -1, 0, 0,
- 0, 0, 1);
+ if (n == 0) {
+ rotation->MakeIdentity();
+ } else if (n == 1) {
+ *rotation = gfx::Transform::Make90degRotation();
} else if (n == 2) {
- m.set3x3(-1, 0, 0,
- 0, -1, 0,
- 0, 0, 1);
+ *rotation = gfx::Transform::Make180degRotation();
} else if (n == 3) {
- m.set3x3( 0, -1, 0,
- 1, 0, 0,
- 0, 0, 1);
+ *rotation = gfx::Transform::Make270degRotation();
}
-
- *rotation = transform;
return true;
}
@@ -86,7 +79,7 @@
t = 1.0f - t;
gfx::Transform result = InterpolateButDoNotCompose(t);
if (child_.get()) {
- result.ConcatTransform(child_->Interpolate(t));
+ result.PostConcat(child_->Interpolate(t));
}
return result;
}
@@ -359,15 +352,14 @@
InterpolatedMatrixTransform::InterpolateButDoNotCompose(float t) const {
gfx::DecomposedTransform blended =
gfx::BlendDecomposedTransforms(end_decomp_, start_decomp_, t);
- return gfx::ComposeTransform(blended);
+ return gfx::Transform::Compose(blended);
}
void InterpolatedMatrixTransform::Init(const gfx::Transform& start_transform,
const gfx::Transform& end_transform) {
- bool success = gfx::DecomposeTransform(&start_decomp_, start_transform);
- DCHECK(success);
- success = gfx::DecomposeTransform(&end_decomp_, end_transform);
- DCHECK(success);
+ // Both transforms should be decomposible.
+ start_decomp_ = *start_transform.Decompose();
+ end_decomp_ = *end_transform.Decompose();
}
} // namespace ui