1 #ifndef __khrplatform_h_
2 #define __khrplatform_h_
100 #if defined(_WIN32) && !defined(__SCITECH_SNAP__)
101 # define KHRONOS_APICALL __declspec(dllimport)
102 #elif defined (__SYMBIAN32__)
103 # define KHRONOS_APICALL IMPORT_C
105 # define KHRONOS_APICALL
114 #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(__SCITECH_SNAP__)
116 # define KHRONOS_APIENTRY __stdcall
118 # define KHRONOS_APIENTRY
126 #if defined (__ARMCC_2__)
127 #define KHRONOS_APIATTRIBUTES __softfp
129 #define KHRONOS_APIATTRIBUTES
135 #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
142 typedef int32_t khronos_int32_t;
143 typedef uint32_t khronos_uint32_t;
144 typedef int64_t khronos_int64_t;
145 typedef uint64_t khronos_uint64_t;
146 #define KHRONOS_SUPPORT_INT64 1
147 #define KHRONOS_SUPPORT_FLOAT 1
149 #elif defined(__VMS ) || defined(__sgi)
154 #include <inttypes.h>
155 typedef int32_t khronos_int32_t;
156 typedef uint32_t khronos_uint32_t;
157 typedef int64_t khronos_int64_t;
158 typedef uint64_t khronos_uint64_t;
159 #define KHRONOS_SUPPORT_INT64 1
160 #define KHRONOS_SUPPORT_FLOAT 1
162 #elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
167 typedef __int32 khronos_int32_t;
168 typedef unsigned __int32 khronos_uint32_t;
169 typedef __int64 khronos_int64_t;
170 typedef unsigned __int64 khronos_uint64_t;
171 #define KHRONOS_SUPPORT_INT64 1
172 #define KHRONOS_SUPPORT_FLOAT 1
174 #elif defined(__sun__) || defined(__digital__)
179 typedef int khronos_int32_t;
180 typedef unsigned int khronos_uint32_t;
181 #if defined(__arch64__) || defined(_LP64)
182 typedef long int khronos_int64_t;
183 typedef unsigned long int khronos_uint64_t;
185 typedef long long int khronos_int64_t;
186 typedef unsigned long long int khronos_uint64_t;
188 #define KHRONOS_SUPPORT_INT64 1
189 #define KHRONOS_SUPPORT_FLOAT 1
196 typedef int khronos_int32_t;
197 typedef unsigned int khronos_uint32_t;
198 #define KHRONOS_SUPPORT_INT64 0
199 #define KHRONOS_SUPPORT_FLOAT 0
207 typedef int32_t khronos_int32_t;
208 typedef uint32_t khronos_uint32_t;
209 typedef int64_t khronos_int64_t;
210 typedef uint64_t khronos_uint64_t;
211 #define KHRONOS_SUPPORT_INT64 1
212 #define KHRONOS_SUPPORT_FLOAT 1
220 typedef signed char khronos_int8_t;
221 typedef unsigned char khronos_uint8_t;
222 typedef signed short int khronos_int16_t;
223 typedef unsigned short int khronos_uint16_t;
231 typedef signed long long int khronos_intptr_t;
232 typedef unsigned long long int khronos_uintptr_t;
233 typedef signed long long int khronos_ssize_t;
234 typedef unsigned long long int khronos_usize_t;
236 typedef signed long int khronos_intptr_t;
237 typedef unsigned long int khronos_uintptr_t;
238 typedef signed long int khronos_ssize_t;
239 typedef unsigned long int khronos_usize_t;
242 #if KHRONOS_SUPPORT_FLOAT
246 typedef float khronos_float_t;
249 #if KHRONOS_SUPPORT_INT64
259 typedef khronos_uint64_t khronos_utime_nanoseconds_t;
260 typedef khronos_int64_t khronos_stime_nanoseconds_t;
266 #ifndef KHRONOS_MAX_ENUM
267 #define KHRONOS_MAX_ENUM 0x7FFFFFFF
279 KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
280 } khronos_boolean_enum_t;