1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "mojo/services/public/cpp/geometry/geometry_type_converters.h"
10 PointPtr TypeConverter<PointPtr, gfx::Point>::Convert(const gfx::Point& input) {
11 PointPtr point(Point::New());
18 gfx::Point TypeConverter<gfx::Point, PointPtr>::Convert(const PointPtr& input) {
21 return gfx::Point(input->x, input->y);
25 PointFPtr TypeConverter<PointFPtr, gfx::PointF>::Convert(
26 const gfx::PointF& input) {
27 PointFPtr point(PointF::New());
34 gfx::PointF TypeConverter<gfx::PointF, PointFPtr>::Convert(
35 const PointFPtr& input) {
38 return gfx::PointF(input->x, input->y);
42 SizePtr TypeConverter<SizePtr, gfx::Size>::Convert(const gfx::Size& input) {
43 SizePtr size(Size::New());
44 size->width = input.width();
45 size->height = input.height();
50 gfx::Size TypeConverter<gfx::Size, SizePtr>::Convert(const SizePtr& input) {
53 return gfx::Size(input->width, input->height);
57 RectPtr TypeConverter<RectPtr, gfx::Rect>::Convert(const gfx::Rect& input) {
58 RectPtr rect(Rect::New());
61 rect->width = input.width();
62 rect->height = input.height();
67 gfx::Rect TypeConverter<gfx::Rect, RectPtr>::Convert(const RectPtr& input) {
70 return gfx::Rect(input->x, input->y, input->width, input->height);
74 RectFPtr TypeConverter<RectFPtr, gfx::RectF>::Convert(const gfx::RectF& input) {
75 RectFPtr rect(RectF::New());
78 rect->width = input.width();
79 rect->height = input.height();
84 gfx::RectF TypeConverter<gfx::RectF, RectFPtr>::Convert(const RectFPtr& input) {
87 return gfx::RectF(input->x, input->y, input->width, input->height);
91 TransformPtr TypeConverter<TransformPtr, gfx::Transform>::Convert(
92 const gfx::Transform& input) {
93 std::vector<float> storage(16);
94 input.matrix().asRowMajorf(&storage[0]);
95 mojo::Array<float> matrix;
96 matrix.Swap(&storage);
97 TransformPtr transform(Transform::New());
98 transform->matrix = matrix.Pass();
99 return transform.Pass();
103 gfx::Transform TypeConverter<gfx::Transform, TransformPtr>::Convert(
104 const TransformPtr& input) {
106 return gfx::Transform();
107 gfx::Transform transform(gfx::Transform::kSkipInitialization);
108 transform.matrix().setRowMajorf(&input->matrix.storage()[0]);