diff options
Diffstat (limited to 'make/stub_includes/egl/EGL/eglplatform.h')
-rw-r--r-- | make/stub_includes/egl/EGL/eglplatform.h | 144 |
1 files changed, 91 insertions, 53 deletions
diff --git a/make/stub_includes/egl/EGL/eglplatform.h b/make/stub_includes/egl/EGL/eglplatform.h index 5e4fa73f3..6d34ab55d 100644 --- a/make/stub_includes/egl/EGL/eglplatform.h +++ b/make/stub_includes/egl/EGL/eglplatform.h @@ -1,77 +1,115 @@ -/* - * Copyright (c) 2007 NVIDIA Corporation. All rights reserved. - * - * NVIDIA Corporation and its licensors retain all intellectual property - * and proprietary rights in and to this software, related documentation - * and any modifications thereto. Any use, reproduction, disclosure or - * distribution of this software and related documentation without an express - * license agreement from NVIDIA Corporation is strictly prohibited. - */ - -#ifndef EGLPLATFORM_H -#define EGLPLATFORM_H +#ifndef __eglplatform_h_ +#define __eglplatform_h_ /* -** eglplatform.h is platform dependent. It defines: +** Copyright (c) 2007-2009 The Khronos Group Inc. ** -** - Native types -** - EGL and native handle values +** 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: ** -** EGLNativeDisplayType, EGLNativeWindowType and EGLNativePixmapType are to be -** replaced with corresponding types of the native window system in egl.h. +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. ** -** EGL and native handle values must match their types. +** 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. */ -#ifdef __cplusplus -extern "C" { -#endif +/* Platform-specific types and definitions for egl.h + * $Revision: 12306 $ on $Date: 2010-08-25 09:51:28 -0700 (Wed, 25 Aug 2010) $ + * + * Adopters may modify khrplatform.h and this file to suit their platform. + * You are encouraged to submit all 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 "EGL" component "Registry". + */ -#if defined(_WIN32) && !defined(__GNUC__) - typedef signed __int32 int32_t; - typedef unsigned __int32 uint32_t; - typedef signed __int64 int64_t; - typedef unsigned __int64 uint64_t; -#else - // Building on obsolete platform on SPARC right now - #ifdef __sparc - #include <inttypes.h> - #else - #include <stdint.h> - #endif -#endif +#include <KHR/khrplatform.h> + +/* Macros used in EGL function prototype declarations. + * + * EGL functions should be prototyped as: + * + * EGLAPI return-type EGLAPIENTRY eglFunction(arguments); + * typedef return-type (EXPAPIENTRYP PFNEGLFUNCTIONPROC) (arguments); + * + * KHRONOS_APICALL and KHRONOS_APIENTRY are defined in KHR/khrplatform.h + */ -// Define storage class specifiers -#ifndef APIENTRY -#define APIENTRY +#ifndef EGLAPI +#define EGLAPI KHRONOS_APICALL #endif #ifndef EGLAPIENTRY -#define EGLAPIENTRY +#define EGLAPIENTRY KHRONOS_APIENTRY #endif -#ifndef EGLAPIENTRYP -#define EGLAPIENTRYP EGLAPIENTRY * +#define EGLAPIENTRYP EGLAPIENTRY* + +/* The types NativeDisplayType, NativeWindowType, and NativePixmapType + * are aliases of window-system-dependent types, such as X Display * or + * Windows Device Context. They must be defined in platform-specific + * code below. The EGL-prefixed versions of Native*Type are the same + * types, renamed in EGL 1.3 so all types in the API start with "EGL". + * + * Khronos STRONGLY RECOMMENDS that you use the default definitions + * provided below, since these changes affect both binary and source + * portability of applications using EGL running on different EGL + * implementations. + */ + +#if defined(_WIN32) || defined(__VC32__) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) /* Win32 and WinCE */ +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN 1 #endif +#include <windows.h> -#define EGLAPI +typedef HDC EGLNativeDisplayType; +typedef HBITMAP EGLNativePixmapType; +typedef HWND EGLNativeWindowType; + +#elif defined(__WINSCW__) || defined(__SYMBIAN32__) /* Symbian */ -// Define native window system types typedef int EGLNativeDisplayType; -typedef void* EGLNativePointerType; -typedef void* EGLNativeWindowType; -typedef void* EGLNativePixmapType; +typedef void *EGLNativeWindowType; +typedef void *EGLNativePixmapType; + +#elif defined(__unix__) + +/* X11 (tentative) */ +#include <X11/Xlib.h> +#include <X11/Xutil.h> -// Define 64-bit integer extensions -typedef int64_t EGLint64NV; -typedef uint64_t EGLuint64NV; +typedef Display *EGLNativeDisplayType; +typedef Pixmap EGLNativePixmapType; +typedef Window EGLNativeWindowType; -// Define the pre-EGL 1.3 Native handle types for backwards compatibility +#else +#error "Platform not recognized" +#endif + +/* EGL 1.2 types, renamed for consistency in EGL 1.3 */ typedef EGLNativeDisplayType NativeDisplayType; typedef EGLNativePixmapType NativePixmapType; typedef EGLNativeWindowType NativeWindowType; -#ifdef __cplusplus -} -#endif -#endif /* EGLPLATFORM_H */ +/* Define EGLint. This must be a signed integral type large enough to contain + * all legal attribute names and values passed into and out of EGL, whether + * their type is boolean, bitmask, enumerant (symbolic constant), integer, + * handle, or other. While in general a 32-bit integer will suffice, if + * handles are 64 bit types, then EGLint should be defined as a signed 64-bit + * integer type. + */ +typedef khronos_int32_t EGLint; + +#endif /* __eglplatform_h */ |