1 #ifndef __khrplatform_h_
2 #define __khrplatform_h_
93 #if defined(__SCITECH_SNAP__) && !defined(KHRONOS_STATIC)
94 # define KHRONOS_STATIC 1
102 #if defined(KHRONOS_STATIC)
105 # define KHRONOS_APICALL
106 #elif defined(_WIN32)
107 # define KHRONOS_APICALL __declspec(dllimport)
108 #elif defined (__SYMBIAN32__)
109 # define KHRONOS_APICALL IMPORT_C
110 #elif defined(__ANDROID__)
111 # define KHRONOS_APICALL __attribute__((visibility("default")))
113 # define KHRONOS_APICALL
122 #if defined(_WIN32) && !defined(_WIN32_WCE) && !defined(KHRONOS_STATIC)
124 # define KHRONOS_APIENTRY __stdcall
126 # define KHRONOS_APIENTRY
134 #if defined (__ARMCC_2__)
135 #define KHRONOS_APIATTRIBUTES __softfp
137 #define KHRONOS_APIATTRIBUTES
143 #if (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || defined(__GNUC__) || defined(__SCO__) || defined(__USLC__)
150 typedef int32_t khronos_int32_t;
151 typedef uint32_t khronos_uint32_t;
152 typedef int64_t khronos_int64_t;
153 typedef uint64_t khronos_uint64_t;
154 #define KHRONOS_SUPPORT_INT64 1
155 #define KHRONOS_SUPPORT_FLOAT 1
157 #elif defined(__VMS ) || defined(__sgi)
163 typedef int32_t khronos_int32_t;
164 typedef uint32_t khronos_uint32_t;
165 typedef int64_t khronos_int64_t;
166 typedef uint64_t khronos_uint64_t;
167 #define KHRONOS_SUPPORT_INT64 1
168 #define KHRONOS_SUPPORT_FLOAT 1
170 #elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
175 typedef __int32 khronos_int32_t;
176 typedef unsigned __int32 khronos_uint32_t;
177 typedef __int64 khronos_int64_t;
178 typedef unsigned __int64 khronos_uint64_t;
179 #define KHRONOS_SUPPORT_INT64 1
180 #define KHRONOS_SUPPORT_FLOAT 1
182 #elif defined(__sun__) || defined(__digital__)
187 typedef int khronos_int32_t;
188 typedef unsigned int khronos_uint32_t;
189 #if defined(__arch64__) || defined(_LP64)
190 typedef long int khronos_int64_t;
191 typedef unsigned long int khronos_uint64_t;
193 typedef long long int khronos_int64_t;
194 typedef unsigned long long int khronos_uint64_t;
196 #define KHRONOS_SUPPORT_INT64 1
197 #define KHRONOS_SUPPORT_FLOAT 1
204 typedef int khronos_int32_t;
205 typedef unsigned int khronos_uint32_t;
206 #define KHRONOS_SUPPORT_INT64 0
207 #define KHRONOS_SUPPORT_FLOAT 0
215 typedef int32_t khronos_int32_t;
216 typedef uint32_t khronos_uint32_t;
217 typedef int64_t khronos_int64_t;
218 typedef uint64_t khronos_uint64_t;
219 #define KHRONOS_SUPPORT_INT64 1
220 #define KHRONOS_SUPPORT_FLOAT 1
228 typedef signed char khronos_int8_t;
229 typedef unsigned char khronos_uint8_t;
230 typedef signed short int khronos_int16_t;
231 typedef unsigned short int khronos_uint16_t;
239 typedef signed long long int khronos_intptr_t;
240 typedef unsigned long long int khronos_uintptr_t;
241 typedef signed long long int khronos_ssize_t;
242 typedef unsigned long long int khronos_usize_t;
244 typedef signed long int khronos_intptr_t;
245 typedef unsigned long int khronos_uintptr_t;
246 typedef signed long int khronos_ssize_t;
247 typedef unsigned long int khronos_usize_t;
250 #if KHRONOS_SUPPORT_FLOAT
254 typedef float khronos_float_t;
257 #if KHRONOS_SUPPORT_INT64
267 typedef khronos_uint64_t khronos_utime_nanoseconds_t;
268 typedef khronos_int64_t khronos_stime_nanoseconds_t;
274 #ifndef KHRONOS_MAX_ENUM
275 #define KHRONOS_MAX_ENUM 0x7FFFFFFF
287 KHRONOS_BOOLEAN_ENUM_FORCE_SIZE = KHRONOS_MAX_ENUM
288 } khronos_boolean_enum_t;