| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "cc/animation/transform_operations.h" | 5 #include "cc/animation/transform_operations.h" |
| 6 | 6 |
| 7 #include <algorithm> | 7 #include <algorithm> |
| 8 | 8 |
| 9 #include "ui/gfx/transform_util.h" | 9 #include "ui/gfx/transform_util.h" |
| 10 #include "ui/gfx/vector3d_f.h" | 10 #include "ui/gfx/vector3d_f.h" |
| (...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 157 from_identity ? 0 : &from.operations_[i], | 157 from_identity ? 0 : &from.operations_[i], |
| 158 to_identity ? 0 : &operations_[i], | 158 to_identity ? 0 : &operations_[i], |
| 159 progress, | 159 progress, |
| 160 &blended)) | 160 &blended)) |
| 161 return false; | 161 return false; |
| 162 result->PreconcatTransform(blended); | 162 result->PreconcatTransform(blended); |
| 163 } | 163 } |
| 164 return true; | 164 return true; |
| 165 } | 165 } |
| 166 | 166 |
| 167 if (progress <= 0.0) { | |
| 168 *result = from.Apply(); | |
| 169 return true; | |
| 170 } | |
| 171 | |
| 172 if (progress >= 1.0) { | |
| 173 *result = Apply(); | |
| 174 return true; | |
| 175 } | |
| 176 | |
| 177 if (!ComputeDecomposedTransform() || !from.ComputeDecomposedTransform()) | 167 if (!ComputeDecomposedTransform() || !from.ComputeDecomposedTransform()) |
| 178 return false; | 168 return false; |
| 179 | 169 |
| 180 gfx::DecomposedTransform to_return; | 170 gfx::DecomposedTransform to_return; |
| 181 if (!gfx::BlendDecomposedTransforms(&to_return, | 171 if (!gfx::BlendDecomposedTransforms(&to_return, |
| 182 *decomposed_transform_.get(), | 172 *decomposed_transform_.get(), |
| 183 *from.decomposed_transform_.get(), | 173 *from.decomposed_transform_.get(), |
| 184 progress)) | 174 progress)) |
| 185 return false; | 175 return false; |
| 186 | 176 |
| 187 *result = ComposeTransform(to_return); | 177 *result = ComposeTransform(to_return); |
| 188 return true; | 178 return true; |
| 189 } | 179 } |
| 190 | 180 |
| 191 bool TransformOperations::ComputeDecomposedTransform() const { | 181 bool TransformOperations::ComputeDecomposedTransform() const { |
| 192 if (decomposed_transform_dirty_) { | 182 if (decomposed_transform_dirty_) { |
| 193 if (!decomposed_transform_) | 183 if (!decomposed_transform_) |
| 194 decomposed_transform_.reset(new gfx::DecomposedTransform()); | 184 decomposed_transform_.reset(new gfx::DecomposedTransform()); |
| 195 gfx::Transform transform = Apply(); | 185 gfx::Transform transform = Apply(); |
| 196 if (!gfx::DecomposeTransform(decomposed_transform_.get(), transform)) | 186 if (!gfx::DecomposeTransform(decomposed_transform_.get(), transform)) |
| 197 return false; | 187 return false; |
| 198 decomposed_transform_dirty_ = false; | 188 decomposed_transform_dirty_ = false; |
| 199 } | 189 } |
| 200 return true; | 190 return true; |
| 201 } | 191 } |
| 202 | 192 |
| 203 } // namespace cc | 193 } // namespace cc |
| OLD | NEW |