// 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 RRect {
  int32 x;
  int32 y;
  int32 width;
  int32 height;
  int32 top_left_radius_x;
  int32 top_left_radius_y;
  int32 top_right_radius_x;
  int32 top_right_radius_y;
  int32 bottom_left_radius_x;
  int32 bottom_left_radius_y;
  int32 bottom_right_radius_x;
  int32 bottom_right_radius_y;
};

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