Index: mojo/converters/transform/transform_converters.cc |
diff --git a/mojo/converters/transform/transform_converters.cc b/mojo/converters/transform/transform_converters.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..bf6dd029875e7b3d07d1f6bce436d11344af9ce9 |
--- /dev/null |
+++ b/mojo/converters/transform/transform_converters.cc |
@@ -0,0 +1,31 @@ |
+// Copyright 2015 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "mojo/converters/transform/transform_converters.h" |
+ |
+namespace mojo { |
+ |
+// static |
+TransformPtr TypeConverter<TransformPtr, gfx::Transform>::Convert( |
+ const gfx::Transform& input) { |
+ std::vector<float> storage(16); |
+ input.matrix().asRowMajorf(&storage[0]); |
+ mojo::Array<float> matrix; |
+ matrix.Swap(&storage); |
+ TransformPtr transform(Transform::New()); |
+ transform->matrix = matrix.Pass(); |
+ return transform.Pass(); |
+} |
+ |
+// static |
+gfx::Transform TypeConverter<gfx::Transform, TransformPtr>::Convert( |
+ const TransformPtr& input) { |
+ if (input.is_null()) |
+ return gfx::Transform(); |
+ gfx::Transform transform(gfx::Transform::kSkipInitialization); |
+ transform.matrix().setRowMajorf(&input->matrix.storage()[0]); |
+ return transform; |
+} |
+ |
+} // namespace mojo |