diff -r e1b950c65cb4 -r 837f303aceeb epoc32/include/KHR/khrplatform.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/epoc32/include/KHR/khrplatform.h Wed Mar 31 12:33:34 2010 +0100 @@ -0,0 +1,164 @@ +#ifndef __khrplatform_h_ +#define __khrplatform_h_ + +/* $Revision$ on $Date:: $ */ + +/* +** Copyright (c) 2008 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* Platform-specific types and definitions. + * Last modified on 2008/12/19 + * + * Adopters may modify this file to suit their platform. Adopters are + * encouraged to submit platform specific modifications to the Khronos + * group so that they can be included in future versions of this file. + * Please submit changes by sending them to the public Khronos Bugzilla + * (http://khronos.org/bugzilla) by filing a bug against product + * "Khronos (general)" component "Registry". + * + * A predefined template which fills in some of the bug fields can be + * reached using http://tinyurl.com/khrplatform-h-bugreport, but you + * must create a Bugzilla login first. + * + * + * + * This file should be included as + * #include + * by the Khronos API header file that uses its types and defines. + * + * The types in this file should only be used to define API-specific types. + * Types defined in this file: + * khronos_int8_t signed 8 bit + * khronos_uint8_t unsigned 8 bit + * khronos_int16_t signed 16 bit + * khronos_uint16_t unsigned 16 bit + * khronos_int32_t signed 32 bit + * khronos_uint32_t unsigned 32 bit + * khronos_int64_t signed 64 bit + * khronos_uint64_t unsigned 64 bit + * khronos_intptr_t signed same number of bits as a pointer + * khronos_uintptr_t unsigned same number of bits as a pointer + * khronos_ssize_t signed size + * khronos_usize_t unsigned size + * khronos_float_t signed 32 bit floating point + * khronos_time_ns_t unsigned 64 bit time in nanoseconds + * khronos_utime_nanoseconds_t unsigned time interval or absolute time in + * nanoseconds + * khronos_stime_nanoseconds_t signed time interval in nanoseconds + * + * KHRONOS_SUPPORT_INT64 is 1 if 64 bit integers are supported; otherwise 0. + * KHRONOS_SUPPORT_FLOAT is 1 if floats are supported; otherwise 0. + * + * + * Macros defined in this file: + * KHRONOS_APICALL + * KHRONOS_APIENTRY + * KHRONOS_APIATTRIBUTES + * These may be used in function prototypes as: + * KHRONOS_APICALL void KHRONOS_APIENTRY funcname( + * int arg1, + * int arg2) KHRONOS_APIATTRIBUTES; + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +/*------------------------------------------------------------------------- + * Definition of KHRONOS_APICALL and KHRONOS_APIENTRY + *-----------------------------------------------------------------------*/ + +#if defined(AEE_SIMULATOR) +#define __KHR_EXPORTS +#endif + +# if defined(_WIN32) || defined(__VC32__) || defined(__MWERKS__) || defined(__CW32__) /* Win32 */ +# ifdef __KHR_EXPORTS +# define KHRONOS_APICALL __declspec(dllexport) +# else +# define KHRONOS_APICALL __declspec(dllexport) +# endif +#else +# if defined (__ARMCC_2_2__) +# ifdef __KHR_EXPORTS +# define KHRONOS_APICALL __declspec(dllexport) +# else +# define KHRONOS_APICALL __declspec(dllimport) +# endif +# elif (__ARMCC_VERSION >= 310000) +# define KHRONOS_APICALL __declspec(dllimport) +# else +# ifdef __KHR_EXPORTS +# define KHRONOS_APICALL +# else +# define KHRONOS_APICALL extern +# endif +# endif +#endif + +#define KHRONOS_APIENTRY + +#ifndef APIENTRY +# define APIENTRY KHRONOS_APIENTRY +#endif + +#ifndef KHRAPI +# define KHRAPI KHRONOS_APICALL +#endif + +#if defined (__ARMCC_2__) +#define KHRONOS_APIATTRIBUTES __softfp +#else +#define KHRONOS_APIATTRIBUTES +#endif + +#define KHRONOS_SUPPORT_INT64 0 +#define KHRONOS_SUPPORT_FLOAT 0 + +typedef TReal32 khronos_float; // float +typedef TReal32 khronos_float_t; // float +typedef TInt8 khronos_int8_t; // signed char +typedef TUint8 khronos_uint8_t; // unsigned char +typedef TInt16 khronos_int16_t; // short int +typedef TUint16 khronos_uint16_t; // unsigned short int +typedef TInt32 khronos_int32_t; // long int +typedef TUint32 khronos_uint32_t; // unsigned long int +typedef TInt64 khronos_int64_t; // long int +typedef TUint64 khronos_uint64_t; // unsigned long int + +typedef TUint64 khronos_utime_nanoseconds_t; +typedef TInt32 khronos_stime_nanoseconds_t; + +#ifdef __cplusplus +} +#endif + +/* + * Platform definition of TRUE and FALSE + */ +#define KHR_BOOLEAN_TRUE (0 == 0) +#define KHR_BOOLEAN_FALSE (0 != 0) + +#endif /* __khrplatform_h_ */