// Copyright 2014 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.

[DartPackage="mojo_services"]
module mojo;

struct Point {
  int32 x;
  int32 y;
};

struct PointF {
  float x;
  float y;
};

struct Size {
  int32 width;
  int32 height;
};

struct Rect {
  int32 x;
  int32 y;
  int32 width;
  int32 height;
};

struct RectF {
  float x;
  float y;
  float width;
  float height;
};

struct RRectF {
  float x;
  float y;
  float width;
  float height;
  float top_left_radius_x;
  float top_left_radius_y;
  float top_right_radius_x;
  float top_right_radius_y;
  float bottom_left_radius_x;
  float bottom_left_radius_y;
  float bottom_right_radius_x;
  float bottom_right_radius_y;
};

struct Transform {
  // Row major order.
  array<float, 16> matrix;
};
