111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* -*- mode: c; tab-width: 8; -*- */ 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* vi: set sw=4 ts=8: */ 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Reference version of egl.h for EGL 1.4. 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $ 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** Copyright (c) 2007-2009 The Khronos Group Inc. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** Permission is hereby granted, free of charge, to any person obtaining a 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** copy of this software and/or associated documentation files (the 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** "Materials"), to deal in the Materials without restriction, including 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** without limitation the rights to use, copy, modify, merge, publish, 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** distribute, sublicense, and/or sell copies of the Materials, and to 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** permit persons to whom the Materials are furnished to do so, subject to 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** the following conditions: 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** The above copyright notice and this permission notice shall be included 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** in all copies or substantial portions of the Materials. 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert*/ 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef __egl_h_ 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define __egl_h_ 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* All platform-dependent types and macro boilerplate (such as EGLAPI 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * and EGLAPIENTRY) should go in eglplatform.h. 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <EGL/eglplatform.h> 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __cplusplus 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertextern "C" { 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EGL Types */ 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EGLint is defined in eglplatform.h */ 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned int EGLBoolean; 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef unsigned int EGLenum; 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void *EGLConfig; 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void *EGLContext; 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void *EGLDisplay; 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void *EGLSurface; 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void *EGLClientBuffer; 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EGL Versioning */ 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VERSION_1_0 1 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VERSION_1_1 1 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VERSION_1_2 1 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VERSION_1_3 1 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VERSION_1_4 1 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EGL Enumerants. Bitmasks and other exceptional cases aside, most 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * enums are assigned unique values starting at 0x3000. 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EGL aliases */ 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_FALSE 0 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TRUE 1 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Out-of-band handle values */ 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_NO_CONTEXT ((EGLContext)0) 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_NO_DISPLAY ((EGLDisplay)0) 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_NO_SURFACE ((EGLSurface)0) 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Out-of-band attribute value */ 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_DONT_CARE ((EGLint)-1) 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Errors / GetError return values */ 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_SUCCESS 0x3000 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_NOT_INITIALIZED 0x3001 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_ACCESS 0x3002 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_ALLOC 0x3003 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_ATTRIBUTE 0x3004 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_CONFIG 0x3005 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_CONTEXT 0x3006 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_CURRENT_SURFACE 0x3007 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_DISPLAY 0x3008 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_MATCH 0x3009 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_NATIVE_PIXMAP 0x300A 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_NATIVE_WINDOW 0x300B 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_PARAMETER 0x300C 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BAD_SURFACE 0x300D 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */ 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Reserved 0x300F-0x301F for additional errors */ 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Config attributes */ 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BUFFER_SIZE 0x3020 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_ALPHA_SIZE 0x3021 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BLUE_SIZE 0x3022 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_GREEN_SIZE 0x3023 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_RED_SIZE 0x3024 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_DEPTH_SIZE 0x3025 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_STENCIL_SIZE 0x3026 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_CONFIG_CAVEAT 0x3027 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_CONFIG_ID 0x3028 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_LEVEL 0x3029 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MAX_PBUFFER_HEIGHT 0x302A 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MAX_PBUFFER_PIXELS 0x302B 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MAX_PBUFFER_WIDTH 0x302C 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_NATIVE_RENDERABLE 0x302D 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_NATIVE_VISUAL_ID 0x302E 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_NATIVE_VISUAL_TYPE 0x302F 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_SAMPLES 0x3031 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_SAMPLE_BUFFERS 0x3032 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_SURFACE_TYPE 0x3033 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TRANSPARENT_TYPE 0x3034 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TRANSPARENT_RED_VALUE 0x3037 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_NONE 0x3038 /* Attrib list terminator */ 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BIND_TO_TEXTURE_RGB 0x3039 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BIND_TO_TEXTURE_RGBA 0x303A 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MIN_SWAP_INTERVAL 0x303B 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MAX_SWAP_INTERVAL 0x303C 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_LUMINANCE_SIZE 0x303D 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_ALPHA_MASK_SIZE 0x303E 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_COLOR_BUFFER_TYPE 0x303F 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_RENDERABLE_TYPE 0x3040 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */ 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_CONFORMANT 0x3042 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Reserved 0x3041-0x304F for additional config attributes */ 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Config attribute values */ 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */ 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */ 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */ 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */ 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */ 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* More config attribute values, for EGL_TEXTURE_FORMAT */ 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_NO_TEXTURE 0x305C 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TEXTURE_RGB 0x305D 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TEXTURE_RGBA 0x305E 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TEXTURE_2D 0x305F 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Config attribute mask bits */ 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */ 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */ 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */ 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 /* EGL_SURFACE_TYPE mask bits */ 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 /* EGL_SURFACE_TYPE mask bits */ 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 /* EGL_SURFACE_TYPE mask bits */ 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 /* EGL_SURFACE_TYPE mask bits */ 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */ 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */ 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */ 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */ 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* QueryString targets */ 16111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VENDOR 0x3053 16211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VERSION 0x3054 16311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_EXTENSIONS 0x3055 16411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_CLIENT_APIS 0x308D 16511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 16611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */ 16711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_HEIGHT 0x3056 16811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_WIDTH 0x3057 16911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_LARGEST_PBUFFER 0x3058 17011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TEXTURE_FORMAT 0x3080 17111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_TEXTURE_TARGET 0x3081 17211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MIPMAP_TEXTURE 0x3082 17311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MIPMAP_LEVEL 0x3083 17411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_RENDER_BUFFER 0x3086 17511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VG_COLORSPACE 0x3087 17611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VG_ALPHA_FORMAT 0x3088 17711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_HORIZONTAL_RESOLUTION 0x3090 17811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VERTICAL_RESOLUTION 0x3091 17911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_PIXEL_ASPECT_RATIO 0x3092 18011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_SWAP_BEHAVIOR 0x3093 18111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MULTISAMPLE_RESOLVE 0x3099 18211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */ 18411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BACK_BUFFER 0x3084 18511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_SINGLE_BUFFER 0x3085 18611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 18711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* OpenVG color spaces */ 18811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VG_COLORSPACE_sRGB 0x3089 /* EGL_VG_COLORSPACE value */ 18911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VG_COLORSPACE_LINEAR 0x308A /* EGL_VG_COLORSPACE value */ 19011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* OpenVG alpha formats */ 19211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */ 19311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_VG_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */ 19411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 19511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Constant scale factor by which fractional display resolutions & 19611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * aspect ratio are scaled when queried as integer values. 19711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 19811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_DISPLAY_SCALING 10000 19911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Unknown display resolution/aspect ratio */ 20111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_UNKNOWN ((EGLint)-1) 20211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Back buffer swap behaviors */ 20411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */ 20511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */ 20611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 20711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* CreatePbufferFromClientBuffer buffer types */ 20811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_OPENVG_IMAGE 0x3096 20911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* QueryContext targets */ 21111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_CONTEXT_CLIENT_TYPE 0x3097 21211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* CreateContext attributes */ 21411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_CONTEXT_CLIENT_VERSION 0x3098 21511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 21611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Multisample resolution behaviors */ 21711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A /* EGL_MULTISAMPLE_RESOLVE value */ 21811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B /* EGL_MULTISAMPLE_RESOLVE value */ 21911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* BindAPI/QueryAPI targets */ 22111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_OPENGL_ES_API 0x30A0 22211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_OPENVG_API 0x30A1 22311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_OPENGL_API 0x30A2 22411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* GetCurrentSurface targets */ 22611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_DRAW 0x3059 22711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_READ 0x305A 22811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 22911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* WaitNative engines */ 23011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_CORE_NATIVE_ENGINE 0x305B 23111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 23211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EGL 1.2 tokens renamed for consistency in EGL 1.3 */ 23311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_COLORSPACE EGL_VG_COLORSPACE 23411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_ALPHA_FORMAT EGL_VG_ALPHA_FORMAT 23511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_COLORSPACE_sRGB EGL_VG_COLORSPACE_sRGB 23611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_COLORSPACE_LINEAR EGL_VG_COLORSPACE_LINEAR 23711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_ALPHA_FORMAT_NONPRE EGL_VG_ALPHA_FORMAT_NONPRE 23811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define EGL_ALPHA_FORMAT_PRE EGL_VG_ALPHA_FORMAT_PRE 23911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EGL extensions must request enum blocks from the Khronos 24111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * API Registrar, who maintains the enumerant registry. Submit 24211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * a bug in Khronos Bugzilla against task "Registry". 24311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 24411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* EGL Functions */ 24811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 24911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLint EGLAPIENTRY eglGetError(void); 25011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id); 25211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor); 25311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy); 25411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name); 25611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 25711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, 25811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLint config_size, EGLint *num_config); 25911cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, 26011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLConfig *configs, EGLint config_size, 26111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLint *num_config); 26211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, 26311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLint attribute, EGLint *value); 26411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 26511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, 26611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLNativeWindowType win, 26711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const EGLint *attrib_list); 26811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, 26911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const EGLint *attrib_list); 27011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, 27111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLNativePixmapType pixmap, 27211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const EGLint *attrib_list); 27311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface); 27411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, 27511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLint attribute, EGLint *value); 27611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 27711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api); 27811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void); 27911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void); 28111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void); 28311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer( 28511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, 28611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLConfig config, const EGLint *attrib_list); 28711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 28811cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, 28911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLint attribute, EGLint value); 29011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 29111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 29211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval); 29511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 29711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, 29811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLContext share_context, 29911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const EGLint *attrib_list); 30011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx); 30111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, 30211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLSurface read, EGLContext ctx); 30311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 30411cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void); 30511cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw); 30611cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void); 30711cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, 30811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLint attribute, EGLint *value); 30911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31011cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void); 31111cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine); 31211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface); 31311cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, 31411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert EGLNativePixmapType target); 31511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 31611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* This is a generic function pointer type, whose name indicates it must 31711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert * be cast to the proper type *and calling convention* before use. 31811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert */ 31911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef void (*__eglMustCastToProperFunctionPointerType)(void); 32011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 32111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/* Now, define eglGetProcAddress using the generic function ptr. type */ 32211cd02dfb91661c65134cac258cf5924270e9d2Dan AlbertEGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY 32311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert eglGetProcAddress(const char *procname); 32411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 32511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifdef __cplusplus 32611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert} 32711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 32811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 32911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif /* __egl_h_ */ 330