17dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* -*- mode: c; tab-width: 8; -*- */ 27dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* vi: set sw=4 ts=8: */ 37dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Reference version of egl.h for EGL 1.4. 47dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $ 57dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */ 67dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 77dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* 87dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** Copyright (c) 2007-2009 The Khronos Group Inc. 97dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** 107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** Permission is hereby granted, free of charge, to any person obtaining a 117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** copy of this software and/or associated documentation files (the 127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** "Materials"), to deal in the Materials without restriction, including 137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** without limitation the rights to use, copy, modify, merge, publish, 147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** distribute, sublicense, and/or sell copies of the Materials, and to 157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** permit persons to whom the Materials are furnished to do so, subject to 167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** the following conditions: 177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** 187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** The above copyright notice and this permission notice shall be included 197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** in all copies or substantial portions of the Materials. 207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** 217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch*/ 297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifndef __egl_h_ 317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define __egl_h_ 327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* All platform-dependent types and macro boilerplate (such as EGLAPI 347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * and EGLAPIENTRY) should go in eglplatform.h. 357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */ 367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#include <EGL/eglplatform.h> 377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef __cplusplus 397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochextern "C" { 407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif 417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL Types */ 437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGLint is defined in eglplatform.h */ 447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef unsigned int EGLBoolean; 457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef unsigned int EGLenum; 467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLConfig; 477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLContext; 487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLDisplay; 497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLSurface; 507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void *EGLClientBuffer; 517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL Versioning */ 537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION_1_0 1 547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION_1_1 1 557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION_1_2 1 567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION_1_3 1 577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION_1_4 1 587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL Enumerants. Bitmasks and other exceptional cases aside, most 607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * enums are assigned unique values starting at 0x3000. 617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */ 627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL aliases */ 647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_FALSE 0 657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRUE 1 667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Out-of-band handle values */ 687dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) 697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_CONTEXT ((EGLContext)0) 707dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_DISPLAY ((EGLDisplay)0) 717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_SURFACE ((EGLSurface)0) 727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Out-of-band attribute value */ 747dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DONT_CARE ((EGLint)-1) 757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Errors / GetError return values */ 777dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SUCCESS 0x3000 787dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NOT_INITIALIZED 0x3001 797dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_ACCESS 0x3002 807dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_ALLOC 0x3003 817dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_ATTRIBUTE 0x3004 827dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_CONFIG 0x3005 837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_CONTEXT 0x3006 847dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_CURRENT_SURFACE 0x3007 857dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_DISPLAY 0x3008 867dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_MATCH 0x3009 877dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_NATIVE_PIXMAP 0x300A 887dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_NATIVE_WINDOW 0x300B 897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_PARAMETER 0x300C 907dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BAD_SURFACE 0x300D 917dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */ 927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Reserved 0x300F-0x301F for additional errors */ 947dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Config attributes */ 967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BUFFER_SIZE 0x3020 977dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALPHA_SIZE 0x3021 987dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BLUE_SIZE 0x3022 997dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_GREEN_SIZE 0x3023 1007dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_RED_SIZE 0x3024 1017dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DEPTH_SIZE 0x3025 1027dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_STENCIL_SIZE 0x3026 1037dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONFIG_CAVEAT 0x3027 1047dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONFIG_ID 0x3028 1057dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LEVEL 0x3029 1067dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MAX_PBUFFER_HEIGHT 0x302A 1077dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MAX_PBUFFER_PIXELS 0x302B 1087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MAX_PBUFFER_WIDTH 0x302C 1097dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NATIVE_RENDERABLE 0x302D 1107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NATIVE_VISUAL_ID 0x302E 1117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NATIVE_VISUAL_TYPE 0x302F 1127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SAMPLES 0x3031 1137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SAMPLE_BUFFERS 0x3032 1147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SURFACE_TYPE 0x3033 1157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRANSPARENT_TYPE 0x3034 1167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 1177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 1187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRANSPARENT_RED_VALUE 0x3037 1197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NONE 0x3038 /* Attrib list terminator */ 1207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BIND_TO_TEXTURE_RGB 0x3039 1217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BIND_TO_TEXTURE_RGBA 0x303A 1227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MIN_SWAP_INTERVAL 0x303B 1237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MAX_SWAP_INTERVAL 0x303C 1247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LUMINANCE_SIZE 0x303D 1257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALPHA_MASK_SIZE 0x303E 1267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLOR_BUFFER_TYPE 0x303F 1277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_RENDERABLE_TYPE 0x3040 1287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */ 1297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONFORMANT 0x3042 1307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Reserved 0x3041-0x304F for additional config attributes */ 1327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Config attribute values */ 1347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */ 1357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */ 1367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */ 1377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */ 1387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */ 1397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* More config attribute values, for EGL_TEXTURE_FORMAT */ 1417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_NO_TEXTURE 0x305C 1427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TEXTURE_RGB 0x305D 1437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TEXTURE_RGBA 0x305E 1447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TEXTURE_2D 0x305F 1457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Config attribute mask bits */ 1477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */ 1487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */ 1497dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */ 1507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 /* EGL_SURFACE_TYPE mask bits */ 1517dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 /* EGL_SURFACE_TYPE mask bits */ 1527dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 /* EGL_SURFACE_TYPE mask bits */ 1537dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 /* EGL_SURFACE_TYPE mask bits */ 1547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1557dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */ 1567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */ 1577dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */ 1587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */ 1597dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* QueryString targets */ 1617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VENDOR 0x3053 1627dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERSION 0x3054 1637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_EXTENSIONS 0x3055 1647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CLIENT_APIS 0x308D 1657dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */ 1677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_HEIGHT 0x3056 1687dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_WIDTH 0x3057 1697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_LARGEST_PBUFFER 0x3058 1707dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TEXTURE_FORMAT 0x3080 1717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_TEXTURE_TARGET 0x3081 1727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MIPMAP_TEXTURE 0x3082 1737dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MIPMAP_LEVEL 0x3083 1747dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_RENDER_BUFFER 0x3086 1757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_COLORSPACE 0x3087 1767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_ALPHA_FORMAT 0x3088 1777dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_HORIZONTAL_RESOLUTION 0x3090 1787dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VERTICAL_RESOLUTION 0x3091 1797dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_PIXEL_ASPECT_RATIO 0x3092 1807dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SWAP_BEHAVIOR 0x3093 1817dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MULTISAMPLE_RESOLVE 0x3099 1827dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */ 1847dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BACK_BUFFER 0x3084 1857dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_SINGLE_BUFFER 0x3085 1867dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1877dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* OpenVG color spaces */ 1887dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_COLORSPACE_sRGB 0x3089 /* EGL_VG_COLORSPACE value */ 1897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_COLORSPACE_LINEAR 0x308A /* EGL_VG_COLORSPACE value */ 1907dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1917dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* OpenVG alpha formats */ 1927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */ 1937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_VG_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */ 1947dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 1957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Constant scale factor by which fractional display resolutions & 1967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * aspect ratio are scaled when queried as integer values. 1977dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */ 1987dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DISPLAY_SCALING 10000 1997dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2007dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Unknown display resolution/aspect ratio */ 2017dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_UNKNOWN ((EGLint)-1) 2027dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2037dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Back buffer swap behaviors */ 2047dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */ 2057dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */ 2067dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2077dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* CreatePbufferFromClientBuffer buffer types */ 2087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENVG_IMAGE 0x3096 2097dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2107dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* QueryContext targets */ 2117dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONTEXT_CLIENT_TYPE 0x3097 2127dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2137dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* CreateContext attributes */ 2147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CONTEXT_CLIENT_VERSION 0x3098 2157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Multisample resolution behaviors */ 2177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A /* EGL_MULTISAMPLE_RESOLVE value */ 2187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B /* EGL_MULTISAMPLE_RESOLVE value */ 2197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* BindAPI/QueryAPI targets */ 2217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENGL_ES_API 0x30A0 2227dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENVG_API 0x30A1 2237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_OPENGL_API 0x30A2 2247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* GetCurrentSurface targets */ 2267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_DRAW 0x3059 2277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_READ 0x305A 2287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* WaitNative engines */ 2307dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_CORE_NATIVE_ENGINE 0x305B 2317dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2327dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL 1.2 tokens renamed for consistency in EGL 1.3 */ 2337dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLORSPACE EGL_VG_COLORSPACE 2347dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALPHA_FORMAT EGL_VG_ALPHA_FORMAT 2357dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLORSPACE_sRGB EGL_VG_COLORSPACE_sRGB 2367dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_COLORSPACE_LINEAR EGL_VG_COLORSPACE_LINEAR 2377dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALPHA_FORMAT_NONPRE EGL_VG_ALPHA_FORMAT_NONPRE 2387dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#define EGL_ALPHA_FORMAT_PRE EGL_VG_ALPHA_FORMAT_PRE 2397dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2407dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL extensions must request enum blocks from the Khronos 2417dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * API Registrar, who maintains the enumerant registry. Submit 2427dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * a bug in Khronos Bugzilla against task "Registry". 2437dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */ 2447dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2457dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2467dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* EGL Functions */ 2487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2497dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLint EGLAPIENTRY eglGetError(void); 2507dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2517dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id); 2527dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor); 2537dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy); 2547dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2557dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name); 2567dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2577dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, 2587dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLint config_size, EGLint *num_config); 2597dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, 2607dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLConfig *configs, EGLint config_size, 2617dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLint *num_config); 2627dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, 2637dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLint attribute, EGLint *value); 2647dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2657dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, 2667dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLNativeWindowType win, 2677dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const EGLint *attrib_list); 2687dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, 2697dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const EGLint *attrib_list); 2707dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, 2717dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLNativePixmapType pixmap, 2727dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const EGLint *attrib_list); 2737dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface); 2747dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, 2757dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLint attribute, EGLint *value); 2767dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2777dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api); 2787dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void); 2797dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2807dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void); 2817dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2827dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void); 2837dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2847dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer( 2857dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, 2867dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLConfig config, const EGLint *attrib_list); 2877dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2887dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, 2897dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLint attribute, EGLint value); 2907dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 2917dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 2927dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2937dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2947dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval); 2957dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2967dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 2977dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, 2987dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLContext share_context, 2997dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch const EGLint *attrib_list); 3007dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx); 3017dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, 3027dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLSurface read, EGLContext ctx); 3037dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 3047dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void); 3057dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw); 3067dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void); 3077dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, 3087dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLint attribute, EGLint *value); 3097dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 3107dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void); 3117dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine); 3127dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface); 3137dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, 3147dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch EGLNativePixmapType target); 3157dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 3167dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* This is a generic function pointer type, whose name indicates it must 3177dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch * be cast to the proper type *and calling convention* before use. 3187dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch */ 3197dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdochtypedef void (*__eglMustCastToProperFunctionPointerType)(void); 3207dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 3217dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch/* Now, define eglGetProcAddress using the generic function ptr. type */ 3227dbb3d5cf0c15f500944d211057644d6a2f37371Ben MurdochEGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY 3237dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch eglGetProcAddress(const char *procname); 3247dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 3257dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#ifdef __cplusplus 3267dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch} 3277dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif 3287dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch 3297dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch#endif /* __egl_h_ */ 330