File diff r28572:dd3e6f760743 → r28573:aa33118c66c5
src/3rdparty/opengl/khrplatform.h
Show inline comments
 
@@ -153,6 +153,20 @@ typedef int64_t                 khronos_
 
typedef uint64_t                khronos_uint64_t;
 
#define KHRONOS_SUPPORT_INT64   1
 
#define KHRONOS_SUPPORT_FLOAT   1
 
/*
 
 * To support platform where unsigned long cannot be used interchangeably with
 
 * inptr_t (e.g. CHERI-extended ISAs), we can use the stdint.h intptr_t.
 
 * Ideally, we could just use (u)intptr_t everywhere, but this could result in
 
 * ABI breakage if khronos_uintptr_t is changed from unsigned long to
 
 * unsigned long long or similar (this results in different C++ name mangling).
 
 * To avoid changes for existing platforms, we restrict usage of intptr_t to
 
 * platforms where the size of a pointer is larger than the size of long.
 
 */
 
#if defined(__SIZEOF_LONG__) && defined(__SIZEOF_POINTER__)
 
#if __SIZEOF_POINTER__ > __SIZEOF_LONG__
 
#define KHRONOS_USE_INTPTR_T
 
#endif
 
#endif
 

	
 
#elif defined(__VMS ) || defined(__sgi)
 

	
 
@@ -235,14 +249,21 @@ typedef unsigned short int     khronos_u
 
 * pointers are 64 bits, but 'long' is still 32 bits. Win64 appears
 
 * to be the only LLP64 architecture in current use.
 
 */
 
#ifdef _WIN64
 
#ifdef KHRONOS_USE_INTPTR_T
 
typedef intptr_t               khronos_intptr_t;
 
typedef uintptr_t              khronos_uintptr_t;
 
#elif defined(_WIN64)
 
typedef signed   long long int khronos_intptr_t;
 
typedef unsigned long long int khronos_uintptr_t;
 
#else
 
typedef signed   long  int     khronos_intptr_t;
 
typedef unsigned long  int     khronos_uintptr_t;
 
#endif
 

	
 
#if defined(_WIN64)
 
typedef signed   long long int khronos_ssize_t;
 
typedef unsigned long long int khronos_usize_t;
 
#else
 
typedef signed   long  int     khronos_intptr_t;
 
typedef unsigned long  int     khronos_uintptr_t;
 
typedef signed   long  int     khronos_ssize_t;
 
typedef unsigned long  int     khronos_usize_t;
 
#endif