• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/* Copyright (c) 2012 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.
4 */
5
6/**
7 * This file defines the APIs for creating a 2 dimensional rectangle.
8 */
9
10/**
11 * The <code>PP_Rect</code> struct contains the size and location of a 2D
12 * rectangle.
13 */
14[assert_size(16)]
15struct PP_Rect {
16  /**
17   * This value represents the x and y coordinates of the upper-left corner of
18   * the rectangle.
19   */
20  PP_Point point;
21
22  /** This value represents the width and height of the rectangle. */
23  PP_Size size;
24};
25
26/**
27 * The <code>PP_FloatRect</code> struct contains the size and location of a 2D
28 * rectangle.
29 */
30struct PP_FloatRect {
31  /**
32   * This value represents the x and y coordinates of the upper-left corner of
33   * the rectangle.
34   */
35  PP_FloatPoint point;
36
37  /** This value represents the width and height of the rectangle. */
38  PP_FloatSize size;
39};
40
41#inline c
42
43/**
44 * @addtogroup Functions
45 * @{
46 */
47
48/**
49 * PP_MakeRectFromXYWH() creates a <code>PP_Rect</code> given x and y
50 * coordinates and width and height dimensions as int32_t values.
51 *
52 * @param[in] x An int32_t value representing a horizontal coordinate of a
53 * point, starting with 0 as the left-most coordinate.
54 * @param[in] y An int32_t value representing a vertical coordinate of a point,
55 * starting with 0 as the top-most coordinate.
56 * @param[in] w An int32_t value representing a width.
57 * @param[in] h An int32_t value representing a height.
58 *
59 * @return A <code>PP_Rect</code> structure.
60 */
61PP_INLINE struct PP_Rect PP_MakeRectFromXYWH(int32_t x, int32_t y,
62                                             int32_t w, int32_t h) {
63  struct PP_Rect ret;
64  ret.point.x = x;
65  ret.point.y = y;
66  ret.size.width = w;
67  ret.size.height = h;
68  return ret;
69}
70
71/**
72 * PP_MakeFloatRectFromXYWH() creates a <code>PP_FloatRect</code> given x and y
73 * coordinates and width and height dimensions as float values.
74 *
75 * @param[in] x An float value representing a horizontal coordinate of a
76 * point, starting with 0 as the left-most coordinate.
77 * @param[in] y An float value representing a vertical coordinate of a point,
78 * starting with 0 as the top-most coordinate.
79 * @param[in] w An float value representing a width.
80 * @param[in] h An float value representing a height.
81 *
82 * @return A <code>PP_FloatRect</code> structure.
83 */
84PP_INLINE struct PP_FloatRect PP_MakeFloatRectFromXYWH(float x, float y,
85                                                       float w, float h) {
86  struct PP_FloatRect ret;
87  ret.point.x = x;
88  ret.point.y = y;
89  ret.size.width = w;
90  ret.size.height = h;
91  return ret;
92}
93
94/**
95 * @}
96 */
97
98#endinl
99
100