• 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 /* From pp_point.idl modified Wed Oct  5 14:06:02 2011. */
7 
8 #ifndef PPAPI_C_PP_POINT_H_
9 #define PPAPI_C_PP_POINT_H_
10 
11 #include "ppapi/c/pp_macros.h"
12 #include "ppapi/c/pp_stdint.h"
13 
14 /**
15  * @file
16  * This file defines the API to create a 2 dimensional point.
17  * 0,0 is the upper-left starting coordinate.
18  */
19 
20 
21 /**
22  * @addtogroup Structs
23  * @{
24  */
25 /**
26  * The PP_Point structure defines the integer x and y coordinates of a point.
27  */
28 struct PP_Point {
29   /**
30    * This value represents the horizontal coordinate of a point, starting with 0
31    * as the left-most coordinate.
32    */
33   int32_t x;
34   /**
35    * This value represents the vertical coordinate of a point, starting with 0
36    * as the top-most coordinate.
37    */
38   int32_t y;
39 };
40 PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Point, 8);
41 
42 /**
43  * The PP_FloatPoint structure defines the floating-point x and y coordinates
44  * of a point.
45  */
46 struct PP_FloatPoint {
47   float x;
48   float y;
49 };
50 PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_FloatPoint, 8);
51 /**
52  * @}
53  */
54 
55 /**
56  * @addtogroup Functions
57  * @{
58  */
59 
60 /**
61  * PP_MakePoint() creates a <code>PP_Point</code> given the x and y coordinates
62  * as int32_t values.
63  *
64  * @param[in] x An int32_t value representing a horizontal coordinate of a
65  * point, starting with 0 as the left-most coordinate.
66  * @param[in] y An int32_t value representing a vertical coordinate of a point,
67  * starting with 0 as the top-most coordinate.
68  *
69  * @return A <code>PP_Point</code> structure.
70  */
PP_MakePoint(int32_t x,int32_t y)71 PP_INLINE struct PP_Point PP_MakePoint(int32_t x, int32_t y) {
72   struct PP_Point ret;
73   ret.x = x;
74   ret.y = y;
75   return ret;
76 }
77 
PP_MakeFloatPoint(float x,float y)78 PP_INLINE struct PP_FloatPoint PP_MakeFloatPoint(float x, float y) {
79   struct PP_FloatPoint ret;
80   ret.x = x;
81   ret.y = y;
82   return ret;
83 }
84 /**
85  * @}
86  */
87 
88 #endif  /* PPAPI_C_PP_POINT_H_ */
89 
90