123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330 |
- /* -*- mode: c; tab-width: 8; -*- */
- /* vi: set sw=4 ts=8: */
- /* Reference version of egl.h for EGL 1.4.
- */
- /*
- ** Copyright (c) 2007-2009 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.
- */
- #ifndef __egl_h_
- #define __egl_h_
- /* All platform-dependent types and macro boilerplate (such as EGLAPI
- * and EGLAPIENTRY) should go in eglplatform.h.
- */
- #include <EGL/eglplatform.h>
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* EGL Types */
- /* EGLint is defined in eglplatform.h */
- typedef unsigned int EGLBoolean;
- typedef unsigned int EGLenum;
- typedef void *EGLConfig;
- typedef void *EGLContext;
- typedef void *EGLDisplay;
- typedef void *EGLSurface;
- typedef void *EGLClientBuffer;
- /* EGL Versioning */
- #define EGL_VERSION_1_0 1
- #define EGL_VERSION_1_1 1
- #define EGL_VERSION_1_2 1
- #define EGL_VERSION_1_3 1
- #define EGL_VERSION_1_4 1
- /* EGL Enumerants. Bitmasks and other exceptional cases aside, most
- * enums are assigned unique values starting at 0x3000.
- */
- /* EGL aliases */
- #define EGL_FALSE 0
- #define EGL_TRUE 1
- /* Out-of-band handle values */
- #define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0)
- #define EGL_NO_CONTEXT ((EGLContext)0)
- #define EGL_NO_DISPLAY ((EGLDisplay)0)
- #define EGL_NO_SURFACE ((EGLSurface)0)
- /* Out-of-band attribute value */
- #define EGL_DONT_CARE ((EGLint)-1)
- /* Errors / GetError return values */
- #define EGL_SUCCESS 0x3000
- #define EGL_NOT_INITIALIZED 0x3001
- #define EGL_BAD_ACCESS 0x3002
- #define EGL_BAD_ALLOC 0x3003
- #define EGL_BAD_ATTRIBUTE 0x3004
- #define EGL_BAD_CONFIG 0x3005
- #define EGL_BAD_CONTEXT 0x3006
- #define EGL_BAD_CURRENT_SURFACE 0x3007
- #define EGL_BAD_DISPLAY 0x3008
- #define EGL_BAD_MATCH 0x3009
- #define EGL_BAD_NATIVE_PIXMAP 0x300A
- #define EGL_BAD_NATIVE_WINDOW 0x300B
- #define EGL_BAD_PARAMETER 0x300C
- #define EGL_BAD_SURFACE 0x300D
- #define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */
- /* Reserved 0x300F-0x301F for additional errors */
- /* Config attributes */
- #define EGL_BUFFER_SIZE 0x3020
- #define EGL_ALPHA_SIZE 0x3021
- #define EGL_BLUE_SIZE 0x3022
- #define EGL_GREEN_SIZE 0x3023
- #define EGL_RED_SIZE 0x3024
- #define EGL_DEPTH_SIZE 0x3025
- #define EGL_STENCIL_SIZE 0x3026
- #define EGL_CONFIG_CAVEAT 0x3027
- #define EGL_CONFIG_ID 0x3028
- #define EGL_LEVEL 0x3029
- #define EGL_MAX_PBUFFER_HEIGHT 0x302A
- #define EGL_MAX_PBUFFER_PIXELS 0x302B
- #define EGL_MAX_PBUFFER_WIDTH 0x302C
- #define EGL_NATIVE_RENDERABLE 0x302D
- #define EGL_NATIVE_VISUAL_ID 0x302E
- #define EGL_NATIVE_VISUAL_TYPE 0x302F
- #define EGL_PRESERVED_RESOURCES 0x3030
- #define EGL_SAMPLES 0x3031
- #define EGL_SAMPLE_BUFFERS 0x3032
- #define EGL_SURFACE_TYPE 0x3033
- #define EGL_TRANSPARENT_TYPE 0x3034
- #define EGL_TRANSPARENT_BLUE_VALUE 0x3035
- #define EGL_TRANSPARENT_GREEN_VALUE 0x3036
- #define EGL_TRANSPARENT_RED_VALUE 0x3037
- #define EGL_NONE 0x3038 /* Attrib list terminator */
- #define EGL_BIND_TO_TEXTURE_RGB 0x3039
- #define EGL_BIND_TO_TEXTURE_RGBA 0x303A
- #define EGL_MIN_SWAP_INTERVAL 0x303B
- #define EGL_MAX_SWAP_INTERVAL 0x303C
- #define EGL_LUMINANCE_SIZE 0x303D
- #define EGL_ALPHA_MASK_SIZE 0x303E
- #define EGL_COLOR_BUFFER_TYPE 0x303F
- #define EGL_RENDERABLE_TYPE 0x3040
- #define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */
- #define EGL_CONFORMANT 0x3042
- /* Reserved 0x3041-0x304F for additional config attributes */
- /* Config attribute values */
- #define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */
- #define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */
- #define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */
- #define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */
- #define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */
- /* More config attribute values, for EGL_TEXTURE_FORMAT */
- #define EGL_NO_TEXTURE 0x305C
- #define EGL_TEXTURE_RGB 0x305D
- #define EGL_TEXTURE_RGBA 0x305E
- #define EGL_TEXTURE_2D 0x305F
- /* Config attribute mask bits */
- #define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */
- #define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */
- #define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */
- #define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 /* EGL_SURFACE_TYPE mask bits */
- #define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 /* EGL_SURFACE_TYPE mask bits */
- #define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 /* EGL_SURFACE_TYPE mask bits */
- #define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 /* EGL_SURFACE_TYPE mask bits */
- #define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */
- #define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */
- #define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */
- #define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */
- /* QueryString targets */
- #define EGL_VENDOR 0x3053
- #define EGL_VERSION 0x3054
- #define EGL_EXTENSIONS 0x3055
- #define EGL_CLIENT_APIS 0x308D
- /* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */
- #define EGL_HEIGHT 0x3056
- #define EGL_WIDTH 0x3057
- #define EGL_LARGEST_PBUFFER 0x3058
- #define EGL_TEXTURE_FORMAT 0x3080
- #define EGL_TEXTURE_TARGET 0x3081
- #define EGL_MIPMAP_TEXTURE 0x3082
- #define EGL_MIPMAP_LEVEL 0x3083
- #define EGL_RENDER_BUFFER 0x3086
- #define EGL_VG_COLORSPACE 0x3087
- #define EGL_VG_ALPHA_FORMAT 0x3088
- #define EGL_HORIZONTAL_RESOLUTION 0x3090
- #define EGL_VERTICAL_RESOLUTION 0x3091
- #define EGL_PIXEL_ASPECT_RATIO 0x3092
- #define EGL_SWAP_BEHAVIOR 0x3093
- #define EGL_MULTISAMPLE_RESOLVE 0x3099
- /* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */
- #define EGL_BACK_BUFFER 0x3084
- #define EGL_SINGLE_BUFFER 0x3085
- /* OpenVG color spaces */
- #define EGL_VG_COLORSPACE_sRGB 0x3089 /* EGL_VG_COLORSPACE value */
- #define EGL_VG_COLORSPACE_LINEAR 0x308A /* EGL_VG_COLORSPACE value */
- /* OpenVG alpha formats */
- #define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */
- #define EGL_VG_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */
- /* Constant scale factor by which fractional display resolutions &
- * aspect ratio are scaled when queried as integer values.
- */
- #define EGL_DISPLAY_SCALING 10000
- /* Unknown display resolution/aspect ratio */
- #define EGL_UNKNOWN ((EGLint)-1)
- /* Back buffer swap behaviors */
- #define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */
- #define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */
- /* CreatePbufferFromClientBuffer buffer types */
- #define EGL_OPENVG_IMAGE 0x3096
- /* QueryContext targets */
- #define EGL_CONTEXT_CLIENT_TYPE 0x3097
- /* CreateContext attributes */
- #define EGL_CONTEXT_CLIENT_VERSION 0x3098
- /* Multisample resolution behaviors */
- #define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A /* EGL_MULTISAMPLE_RESOLVE value */
- #define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B /* EGL_MULTISAMPLE_RESOLVE value */
- /* BindAPI/QueryAPI targets */
- #define EGL_OPENGL_ES_API 0x30A0
- #define EGL_OPENVG_API 0x30A1
- #define EGL_OPENGL_API 0x30A2
- /* GetCurrentSurface targets */
- #define EGL_DRAW 0x3059
- #define EGL_READ 0x305A
- /* WaitNative engines */
- #define EGL_CORE_NATIVE_ENGINE 0x305B
- /* EGL 1.2 tokens renamed for consistency in EGL 1.3 */
- #define EGL_COLORSPACE EGL_VG_COLORSPACE
- #define EGL_ALPHA_FORMAT EGL_VG_ALPHA_FORMAT
- #define EGL_COLORSPACE_sRGB EGL_VG_COLORSPACE_sRGB
- #define EGL_COLORSPACE_LINEAR EGL_VG_COLORSPACE_LINEAR
- #define EGL_ALPHA_FORMAT_NONPRE EGL_VG_ALPHA_FORMAT_NONPRE
- #define EGL_ALPHA_FORMAT_PRE EGL_VG_ALPHA_FORMAT_PRE
- /* EGL extensions must request enum blocks from the Khronos
- * API Registrar, who maintains the enumerant registry. Submit
- * a bug in Khronos Bugzilla against task "Registry".
- */
- /* EGL Functions */
- EGLAPI EGLint EGLAPIENTRY eglGetError(void);
- EGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id);
- EGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor);
- EGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy);
- EGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name);
- EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs,
- EGLint config_size, EGLint *num_config);
- EGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list,
- EGLConfig *configs, EGLint config_size,
- EGLint *num_config);
- EGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config,
- EGLint attribute, EGLint *value);
- EGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config,
- EGLNativeWindowType win,
- const EGLint *attrib_list);
- EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config,
- const EGLint *attrib_list);
- EGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config,
- EGLNativePixmapType pixmap,
- const EGLint *attrib_list);
- EGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface);
- EGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface,
- EGLint attribute, EGLint *value);
- EGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api);
- EGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void);
- EGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void);
- EGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void);
- EGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(
- EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer,
- EGLConfig config, const EGLint *attrib_list);
- EGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface,
- EGLint attribute, EGLint value);
- EGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
- EGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer);
- EGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval);
- EGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config,
- EGLContext share_context,
- const EGLint *attrib_list);
- EGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx);
- EGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw,
- EGLSurface read, EGLContext ctx);
- EGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void);
- EGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw);
- EGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void);
- EGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx,
- EGLint attribute, EGLint *value);
- EGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void);
- EGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine);
- EGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface);
- EGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface,
- EGLNativePixmapType target);
- /* This is a generic function pointer type, whose name indicates it must
- * be cast to the proper type *and calling convention* before use.
- */
- typedef void (*__eglMustCastToProperFunctionPointerType)(void);
- /* Now, define eglGetProcAddress using the generic function ptr. type */
- EGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY
- eglGetProcAddress(const char *procname);
- #ifdef __cplusplus
- }
- #endif
- #endif /* __egl_h_ */
|