OLD | NEW |
1 #ifndef __khrplatform_h_ | 1 #ifndef __khrplatform_h_ |
2 #define __khrplatform_h_ | 2 #define __khrplatform_h_ |
3 | 3 |
4 /* | 4 /* |
5 ** Copyright (c) 2008-2009 The Khronos Group Inc. | 5 ** Copyright (c) 2008-2009 The Khronos Group Inc. |
6 ** | 6 ** |
7 ** Permission is hereby granted, free of charge, to any person obtaining a | 7 ** Permission is hereby granted, free of charge, to any person obtaining a |
8 ** copy of this software and/or associated documentation files (the | 8 ** copy of this software and/or associated documentation files (the |
9 ** "Materials"), to deal in the Materials without restriction, including | 9 ** "Materials"), to deal in the Materials without restriction, including |
10 ** without limitation the rights to use, copy, modify, merge, publish, | 10 ** without limitation the rights to use, copy, modify, merge, publish, |
11 ** distribute, sublicense, and/or sell copies of the Materials, and to | 11 ** distribute, sublicense, and/or sell copies of the Materials, and to |
12 ** permit persons to whom the Materials are furnished to do so, subject to | 12 ** permit persons to whom the Materials are furnished to do so, subject to |
13 ** the following conditions: | 13 ** the following conditions: |
14 ** | 14 ** |
15 ** The above copyright notice and this permission notice shall be included | 15 ** The above copyright notice and this permission notice shall be included |
16 ** in all copies or substantial portions of the Materials. | 16 ** in all copies or substantial portions of the Materials. |
17 ** | 17 ** |
18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | 18 ** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
19 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | 19 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
20 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. | 20 ** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
21 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY | 21 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
22 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, | 22 ** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
23 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE | 23 ** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
24 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. | 24 ** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
25 */ | 25 */ |
26 | 26 |
27 /* Khronos platform-specific types and definitions. | 27 /* Khronos platform-specific types and definitions. |
28 * | 28 * |
29 * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $ | 29 * $Revision: 23298 $ on $Date: 2013-09-30 17:07:13 -0700 (Mon, 30 Sep 2013) $ |
30 * | 30 * |
31 * Adopters may modify this file to suit their platform. Adopters are | 31 * Adopters may modify this file to suit their platform. Adopters are |
32 * encouraged to submit platform specific modifications to the Khronos | 32 * encouraged to submit platform specific modifications to the Khronos |
33 * group so that they can be included in future versions of this file. | 33 * group so that they can be included in future versions of this file. |
34 * Please submit changes by sending them to the public Khronos Bugzilla | 34 * Please submit changes by sending them to the public Khronos Bugzilla |
35 * (http://khronos.org/bugzilla) by filing a bug against product | 35 * (http://khronos.org/bugzilla) by filing a bug against product |
36 * "Khronos (general)" component "Registry". | 36 * "Khronos (general)" component "Registry". |
37 * | 37 * |
38 * A predefined template which fills in some of the bug fields can be | 38 * A predefined template which fills in some of the bug fields can be |
39 * reached using http://tinyurl.com/khrplatform-h-bugreport, but you | 39 * reached using http://tinyurl.com/khrplatform-h-bugreport, but you |
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
112 * name in the function prototype. | 112 * name in the function prototype. |
113 */ | 113 */ |
114 #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) | 114 #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__) |
115 /* Win32 but not WinCE */ | 115 /* Win32 but not WinCE */ |
116 # define KHRONOS_APIENTRY __stdcall | 116 # define KHRONOS_APIENTRY __stdcall |
117 #else | 117 #else |
118 # define KHRONOS_APIENTRY | 118 # define KHRONOS_APIENTRY |
119 #endif | 119 #endif |
120 | 120 |
121 /*------------------------------------------------------------------------- | 121 /*------------------------------------------------------------------------- |
| 122 * Chromium-specific overrides of KHRONOS_APICALL and KHRONOS_APIENTRY |
| 123 *-----------------------------------------------------------------------*/ |
| 124 |
| 125 #undef KHRONOS_APICALL |
| 126 #if defined(COMPONENT_BUILD) |
| 127 #if defined(WIN32) |
| 128 #if defined(GLES2_C_LIB_IMPLEMENTATION) |
| 129 # define KHRONOS_APICALL __declspec(dllexport) |
| 130 #else |
| 131 # define KHRONOS_APICALL __declspec(dllimport) |
| 132 #endif /* defined(GLES2_C_LIB_IMPLEMENTATION) */ |
| 133 #else |
| 134 # define KHRONOS_APICALL __attribute__((visibility("default"))) |
| 135 #endif /* defined(WIN32) */ |
| 136 #else |
| 137 # define KHRONOS_APICALL |
| 138 #endif |
| 139 |
| 140 #undef KHRONOS_APIENTRY |
| 141 #define KHRONOS_APIENTRY |
| 142 |
| 143 /*------------------------------------------------------------------------- |
122 * Definition of KHRONOS_APIATTRIBUTES | 144 * Definition of KHRONOS_APIATTRIBUTES |
123 *------------------------------------------------------------------------- | 145 *------------------------------------------------------------------------- |
124 * This follows the closing parenthesis of the function prototype arguments. | 146 * This follows the closing parenthesis of the function prototype arguments. |
125 */ | 147 */ |
126 #if defined (__ARMCC_2__) | 148 #if defined (__ARMCC_2__) |
127 #define KHRONOS_APIATTRIBUTES __softfp | 149 #define KHRONOS_APIATTRIBUTES __softfp |
128 #else | 150 #else |
129 #define KHRONOS_APIATTRIBUTES | 151 #define KHRONOS_APIATTRIBUTES |
130 #endif | 152 #endif |
131 | 153 |
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
214 #endif | 236 #endif |
215 | 237 |
216 | 238 |
217 /* | 239 /* |
218 * Types that are (so far) the same on all platforms | 240 * Types that are (so far) the same on all platforms |
219 */ | 241 */ |
220 typedef signed char khronos_int8_t; | 242 typedef signed char khronos_int8_t; |
221 typedef unsigned char khronos_uint8_t; | 243 typedef unsigned char khronos_uint8_t; |
222 typedef signed short int khronos_int16_t; | 244 typedef signed short int khronos_int16_t; |
223 typedef unsigned short int khronos_uint16_t; | 245 typedef unsigned short int khronos_uint16_t; |
| 246 |
| 247 /* |
| 248 * Types that differ between LLP64 and LP64 architectures - in LLP64, |
| 249 * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears |
| 250 * to be the only LLP64 architecture in current use. |
| 251 */ |
| 252 #ifdef _WIN64 |
| 253 typedef signed long long int khronos_intptr_t; |
| 254 typedef unsigned long long int khronos_uintptr_t; |
| 255 typedef signed long long int khronos_ssize_t; |
| 256 typedef unsigned long long int khronos_usize_t; |
| 257 #else |
224 typedef signed long int khronos_intptr_t; | 258 typedef signed long int khronos_intptr_t; |
225 typedef unsigned long int khronos_uintptr_t; | 259 typedef unsigned long int khronos_uintptr_t; |
226 typedef signed long int khronos_ssize_t; | 260 typedef signed long int khronos_ssize_t; |
227 typedef unsigned long int khronos_usize_t; | 261 typedef unsigned long int khronos_usize_t; |
| 262 #endif |
228 | 263 |
229 #if KHRONOS_SUPPORT_FLOAT | 264 #if KHRONOS_SUPPORT_FLOAT |
230 /* | 265 /* |
231 * Float type | 266 * Float type |
232 */ | 267 */ |
233 typedef float khronos_float_t; | 268 typedef float khronos_float_t; |
234 #endif | 269 #endif |
235 | 270 |
236 #if KHRONOS_SUPPORT_INT64 | 271 #if KHRONOS_SUPPORT_INT64 |
237 /* Time types | 272 /* Time types |
(...skipping 22 matching lines...) Expand all Loading... |
260 * Values other than zero should be considered to be true. Therefore | 295 * Values other than zero should be considered to be true. Therefore |
261 * comparisons should not be made against KHRONOS_TRUE. | 296 * comparisons should not be made against KHRONOS_TRUE. |
262 */ | 297 */ |
263 typedef enum { | 298 typedef enum { |
264 KHRONOS_FALSE = 0, | 299 KHRONOS_FALSE = 0, |
265 KHRONOS_TRUE = 1, | 300 KHRONOS_TRUE = 1, |
266 KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM | 301 KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM |
267 } khronos_boolean_enum_t; | 302 } khronos_boolean_enum_t; |
268 | 303 |
269 #endif /* __khrplatform_h_ */ | 304 #endif /* __khrplatform_h_ */ |
OLD | NEW |