Home | History | Annotate | Download | only in c
      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  */
     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 
     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