15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/* Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)/* From pp_rect.idl modified Tue Jun 3 12:31:06 2014. */ 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef PPAPI_C_PP_RECT_H_ 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define PPAPI_C_PP_RECT_H_ 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_macros.h" 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_point.h" 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_size.h" 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include "ppapi/c/pp_stdint.h" 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @file 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This file defines the APIs for creating a 2 dimensional rectangle. 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Structs 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * The <code>PP_Rect</code> struct contains the size and location of a 2D 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * rectangle. 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)struct PP_Rect { 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * This value represents the x and y coordinates of the upper-left corner of 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * the rectangle. 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Point point; 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** This value represents the width and height of the rectangle. */ 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Size size; 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}; 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_COMPILE_ASSERT_STRUCT_SIZE_IN_BYTES(PP_Rect, 16); 4046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 4146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)/** 4246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * The <code>PP_FloatRect</code> struct contains the size and location of a 2D 4346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * rectangle. 4446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) */ 4546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)struct PP_FloatRect { 4646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /** 4746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * This value represents the x and y coordinates of the upper-left corner of 4846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * the rectangle. 4946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) */ 5046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) struct PP_FloatPoint point; 5146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) /** This value represents the width and height of the rectangle. */ 5246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) struct PP_FloatSize size; 5346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)}; 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @addtogroup Functions 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @{ 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * PP_MakeRectFromXYWH() creates a <code>PP_Rect</code> given x and y 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * coordinates and width and height dimensions as int32_t values. 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] x An int32_t value representing a horizontal coordinate of a 695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * point, starting with 0 as the left-most coordinate. 705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] y An int32_t value representing a vertical coordinate of a point, 715821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * starting with 0 as the top-most coordinate. 725821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] w An int32_t value representing a width. 735821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param[in] h An int32_t value representing a height. 745821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * 755821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @return A <code>PP_Rect</code> structure. 765821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 775821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)PP_INLINE struct PP_Rect PP_MakeRectFromXYWH(int32_t x, int32_t y, 785821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) int32_t w, int32_t h) { 795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) struct PP_Rect ret; 805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ret.point.x = x; 815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ret.point.y = y; 825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ret.size.width = w; 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ret.size.height = h; 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ret; 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} 8646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 8746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)/** 8846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * PP_MakeFloatRectFromXYWH() creates a <code>PP_FloatRect</code> given x and y 8946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * coordinates and width and height dimensions as float values. 9046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * 9146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * @param[in] x An float value representing a horizontal coordinate of a 9246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * point, starting with 0 as the left-most coordinate. 9346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * @param[in] y An float value representing a vertical coordinate of a point, 9446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * starting with 0 as the top-most coordinate. 9546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * @param[in] w An float value representing a width. 9646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * @param[in] h An float value representing a height. 9746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * 9846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) * @return A <code>PP_FloatRect</code> structure. 9946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) */ 10046d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)PP_INLINE struct PP_FloatRect PP_MakeFloatRectFromXYWH(float x, float y, 10146d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) float w, float h) { 10246d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) struct PP_FloatRect ret; 10346d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ret.point.x = x; 10446d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ret.point.y = y; 10546d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ret.size.width = w; 10646d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) ret.size.height = h; 10746d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) return ret; 10846d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles)} 10946d4c2bc3267f3f028f39e7e311b0f89aba2e4fdTorne (Richard Coles) 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @} 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif /* PPAPI_C_PP_RECT_H_ */ 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 116