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
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__)
150typedef int32_t khronos_int32_t;
151typedef uint32_t khronos_uint32_t;
152typedef int64_t khronos_int64_t;
153typedef uint64_t khronos_uint64_t;
154#define KHRONOS_SUPPORT_INT64 1
155#define KHRONOS_SUPPORT_FLOAT 1
157#elif defined(__VMS ) || defined(__sgi)
163typedef int32_t khronos_int32_t;
164typedef uint32_t khronos_uint32_t;
165typedef int64_t khronos_int64_t;
166typedef uint64_t khronos_uint64_t;
167#define KHRONOS_SUPPORT_INT64 1
168#define KHRONOS_SUPPORT_FLOAT 1
170#elif defined(_WIN32) && !defined(__SCITECH_SNAP__)
175typedef __int32 khronos_int32_t;
176typedef unsigned __int32 khronos_uint32_t;
177typedef __int64 khronos_int64_t;
178typedef unsigned __int64 khronos_uint64_t;
179#define KHRONOS_SUPPORT_INT64 1
180#define KHRONOS_SUPPORT_FLOAT 1
182#elif defined(__sun__) || defined(__digital__)
187typedef int khronos_int32_t;
188typedef unsigned int khronos_uint32_t;
189#if defined(__arch64__) || defined(_LP64)
190typedef long int khronos_int64_t;
191typedef unsigned long int khronos_uint64_t;
193typedef long long int khronos_int64_t;
194typedef unsigned long long int khronos_uint64_t;
196#define KHRONOS_SUPPORT_INT64 1
197#define KHRONOS_SUPPORT_FLOAT 1
204typedef int khronos_int32_t;
205typedef unsigned int khronos_uint32_t;
206#define KHRONOS_SUPPORT_INT64 0
207#define KHRONOS_SUPPORT_FLOAT 0
215typedef int32_t khronos_int32_t;
216typedef uint32_t khronos_uint32_t;
217typedef int64_t khronos_int64_t;
218typedef uint64_t khronos_uint64_t;
219#define KHRONOS_SUPPORT_INT64 1
220#define KHRONOS_SUPPORT_FLOAT 1
228typedef signed char khronos_int8_t;
229typedef unsigned char khronos_uint8_t;
230typedef signed short int khronos_int16_t;
231typedef unsigned short int khronos_uint16_t;
239typedef signed long long int khronos_intptr_t;
240typedef unsigned long long int khronos_uintptr_t;
241typedef signed long long int khronos_ssize_t;
242typedef unsigned long long int khronos_usize_t;
244typedef signed long int khronos_intptr_t;
245typedef unsigned long int khronos_uintptr_t;
246typedef signed long int khronos_ssize_t;
247typedef unsigned long int khronos_usize_t;
250#if KHRONOS_SUPPORT_FLOAT
254typedef float khronos_float_t;
257#if KHRONOS_SUPPORT_INT64
267typedef khronos_uint64_t khronos_utime_nanoseconds_t;
268typedef 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;