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

Unified Diff: ash/wm/window_animations.cc

Issue 11418040: gfx::Transform API clean-up (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 8 years, 1 month 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 | « ash/wm/session_state_animator.cc ('k') | ash/wm/window_animations_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: ash/wm/window_animations.cc
diff --git a/ash/wm/window_animations.cc b/ash/wm/window_animations.cc
index 855c453cfe559a7a9823a0b19399c1057b83516b..415316e27f70c1f8009d260f9ef7e8f30f1078a6 100644
--- a/ash/wm/window_animations.cc
+++ b/ash/wm/window_animations.cc
@@ -34,6 +34,7 @@
#include "ui/compositor/scoped_layer_animation_settings.h"
#include "ui/gfx/interpolated_transform.h"
#include "ui/gfx/screen.h"
+#include "ui/gfx/vector3d_f.h"
#include "ui/views/view.h"
#include "ui/views/widget/widget.h"
@@ -279,40 +280,35 @@ void AnimateHideWindowCommon(aura::Window* window,
window->layer()->SetVisible(false);
}
+static gfx::Transform GetScaleForWindow(aura::Window* window) {
+ gfx::Rect bounds = window->bounds();
+ gfx::Transform scale = gfx::GetScaleTransform(
+ gfx::Point(kWindowAnimation_TranslateFactor * bounds.width(),
+ kWindowAnimation_TranslateFactor * bounds.height()),
+ kWindowAnimation_ScaleFactor);
+ return scale;
+}
+
// Show/Hide windows using a shrink animation.
void AnimateShowWindow_Drop(aura::Window* window) {
- gfx::Transform transform;
- transform.ConcatScale(kWindowAnimation_ScaleFactor,
- kWindowAnimation_ScaleFactor);
- gfx::Rect bounds = window->bounds();
- transform.ConcatTranslate(
- kWindowAnimation_TranslateFactor * bounds.width(),
- kWindowAnimation_TranslateFactor * bounds.height());
- AnimateShowWindowCommon(window, transform, gfx::Transform());
+ AnimateShowWindowCommon(window, GetScaleForWindow(window), gfx::Transform());
}
void AnimateHideWindow_Drop(aura::Window* window) {
- gfx::Transform transform;
- transform.ConcatScale(kWindowAnimation_ScaleFactor,
- kWindowAnimation_ScaleFactor);
- gfx::Rect bounds = window->bounds();
- transform.ConcatTranslate(
- kWindowAnimation_TranslateFactor * bounds.width(),
- kWindowAnimation_TranslateFactor * bounds.height());
- AnimateHideWindowCommon(window, transform);
+ AnimateHideWindowCommon(window, GetScaleForWindow(window));
}
// Show/Hide windows using a vertical Glenimation.
void AnimateShowWindow_Vertical(aura::Window* window) {
gfx::Transform transform;
- transform.ConcatTranslate(0, window->GetProperty(
+ transform.Translate(0, window->GetProperty(
kWindowVisibilityAnimationVerticalPositionKey));
AnimateShowWindowCommon(window, transform, gfx::Transform());
}
void AnimateHideWindow_Vertical(aura::Window* window) {
gfx::Transform transform;
- transform.ConcatTranslate(0, window->GetProperty(
+ transform.Translate(0, window->GetProperty(
kWindowVisibilityAnimationVerticalPositionKey));
AnimateHideWindowCommon(window, transform);
}
@@ -502,9 +498,9 @@ void AddLayerAnimationsForRotate(aura::Window* window, bool show) {
float xcenter = window->bounds().width() * 0.5;
gfx::Transform transform;
- transform.ConcatTranslate(-xcenter, 0);
- transform.ConcatPerspectiveDepth(kWindowAnimation_Rotate_PerspectiveDepth);
- transform.ConcatTranslate(xcenter, 0);
+ transform.Translate(xcenter, 0);
+ transform.ApplyPerspectiveDepth(kWindowAnimation_Rotate_PerspectiveDepth);
+ transform.Translate(-xcenter, 0);
scoped_ptr<ui::InterpolatedTransform> perspective(
new ui::InterpolatedConstantTransform(transform));
@@ -521,7 +517,7 @@ void AddLayerAnimationsForRotate(aura::Window* window, bool show) {
scoped_ptr<ui::InterpolatedTransform> rotation(
new ui::InterpolatedAxisAngleRotation(
- gfx::Point3F(1, 0, 0), 0, kWindowAnimation_Rotate_DegreesX));
+ gfx::Vector3dF(1, 0, 0), 0, kWindowAnimation_Rotate_DegreesX));
scale_about_pivot->SetChild(perspective.release());
translation->SetChild(scale_about_pivot.release());
@@ -692,9 +688,9 @@ TimeDelta CrossFadeImpl(aura::Window* window,
static_cast<float>(old_bounds.width());
float scale_y = static_cast<float>(new_bounds.height()) /
static_cast<float>(old_bounds.height());
- out_transform.ConcatScale(scale_x, scale_y);
- out_transform.ConcatTranslate(new_bounds.x() - old_bounds.x(),
- new_bounds.y() - old_bounds.y());
+ out_transform.Translate(new_bounds.x() - old_bounds.x(),
+ new_bounds.y() - old_bounds.y());
+ out_transform.Scale(scale_x, scale_y);
old_layer->SetTransform(out_transform);
if (old_on_top) {
// The old layer is on top, and should fade out. The new layer below will
@@ -712,9 +708,9 @@ TimeDelta CrossFadeImpl(aura::Window* window,
static_cast<float>(new_bounds.width());
const float scale_y = static_cast<float>(old_bounds.height()) /
static_cast<float>(new_bounds.height());
- in_transform.ConcatScale(scale_x, scale_y);
- in_transform.ConcatTranslate(old_bounds.x() - new_bounds.x(),
+ in_transform.Translate(old_bounds.x() - new_bounds.x(),
old_bounds.y() - new_bounds.y());
+ in_transform.Scale(scale_x, scale_y);
window->layer()->SetTransform(in_transform);
if (!old_on_top) {
// The new layer is on top and should fade in. The old layer below will
« no previous file with comments | « ash/wm/session_state_animator.cc ('k') | ash/wm/window_animations_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698