1edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* -*- mode: c; tab-width: 8; -*- */ 2edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* vi: set sw=4 ts=8: */ 3edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Reference version of egl.h for EGL 1.4. 4e81a3cb2bd16f0ce1e9c256559aaa2095a1f41f6Mathias Agopian * $Revision: 9356 $ on $Date: 2009-10-21 02:52:25 -0700 (Wed, 21 Oct 2009) $ 5edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 6edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 7edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* 8edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** Copyright (c) 2007-2009 The Khronos Group Inc. 9edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** 10edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** Permission is hereby granted, free of charge, to any person obtaining a 11edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** copy of this software and/or associated documentation files (the 12edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** "Materials"), to deal in the Materials without restriction, including 13edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** without limitation the rights to use, copy, modify, merge, publish, 14edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** distribute, sublicense, and/or sell copies of the Materials, and to 15edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** permit persons to whom the Materials are furnished to do so, subject to 16edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** the following conditions: 17edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** 18edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** The above copyright notice and this permission notice shall be included 19edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** in all copies or substantial portions of the Materials. 20edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** 21edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 22edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 23edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 24edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 25edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 26edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 27edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. 28edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project*/ 29edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 30edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#ifndef __egl_h_ 31edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define __egl_h_ 32edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 33edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* All platform-dependent types and macro boilerplate (such as EGLAPI 34edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * and EGLAPIENTRY) should go in eglplatform.h. 35edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 36edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#include <EGL/eglplatform.h> 37edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 38edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#ifdef __cplusplus 39edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectextern "C" { 40edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#endif 41edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 42edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL Types */ 43edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGLint is defined in eglplatform.h */ 44edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef unsigned int EGLBoolean; 45edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef unsigned int EGLenum; 46edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void *EGLConfig; 47edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void *EGLContext; 48edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void *EGLDisplay; 49edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void *EGLSurface; 50edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void *EGLClientBuffer; 51edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 52edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL Versioning */ 53edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION_1_0 1 54edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION_1_1 1 55edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION_1_2 1 56edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION_1_3 1 57edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION_1_4 1 58edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 59edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL Enumerants. Bitmasks and other exceptional cases aside, most 60edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * enums are assigned unique values starting at 0x3000. 61edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 62edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 63edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL aliases */ 64edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_FALSE 0 65edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRUE 1 66edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 67edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Out-of-band handle values */ 68edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DEFAULT_DISPLAY ((EGLNativeDisplayType)0) 69edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NO_CONTEXT ((EGLContext)0) 70edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NO_DISPLAY ((EGLDisplay)0) 71edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NO_SURFACE ((EGLSurface)0) 72edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 73edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Out-of-band attribute value */ 74edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DONT_CARE ((EGLint)-1) 75edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 76edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Errors / GetError return values */ 77edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SUCCESS 0x3000 78edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NOT_INITIALIZED 0x3001 79edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_ACCESS 0x3002 80edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_ALLOC 0x3003 81edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_ATTRIBUTE 0x3004 82edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_CONFIG 0x3005 83edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_CONTEXT 0x3006 84edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_CURRENT_SURFACE 0x3007 85edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_DISPLAY 0x3008 86edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_MATCH 0x3009 87edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_NATIVE_PIXMAP 0x300A 88edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_NATIVE_WINDOW 0x300B 89edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_PARAMETER 0x300C 90edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BAD_SURFACE 0x300D 91edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */ 92edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 93edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Reserved 0x300F-0x301F for additional errors */ 94edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 95edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Config attributes */ 96edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BUFFER_SIZE 0x3020 97edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_SIZE 0x3021 98edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BLUE_SIZE 0x3022 99edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_GREEN_SIZE 0x3023 100edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RED_SIZE 0x3024 101edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DEPTH_SIZE 0x3025 102edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_STENCIL_SIZE 0x3026 103edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONFIG_CAVEAT 0x3027 104edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONFIG_ID 0x3028 105edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LEVEL 0x3029 106edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MAX_PBUFFER_HEIGHT 0x302A 107edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MAX_PBUFFER_PIXELS 0x302B 108edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MAX_PBUFFER_WIDTH 0x302C 109edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NATIVE_RENDERABLE 0x302D 110edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NATIVE_VISUAL_ID 0x302E 111edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NATIVE_VISUAL_TYPE 0x302F 112edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SAMPLES 0x3031 113edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SAMPLE_BUFFERS 0x3032 114edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SURFACE_TYPE 0x3033 115edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_TYPE 0x3034 116edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 117edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 118edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_RED_VALUE 0x3037 119edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NONE 0x3038 /* Attrib list terminator */ 120edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BIND_TO_TEXTURE_RGB 0x3039 121edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BIND_TO_TEXTURE_RGBA 0x303A 122edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MIN_SWAP_INTERVAL 0x303B 123edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MAX_SWAP_INTERVAL 0x303C 124edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LUMINANCE_SIZE 0x303D 125edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_MASK_SIZE 0x303E 126edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLOR_BUFFER_TYPE 0x303F 127edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RENDERABLE_TYPE 0x3040 128edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */ 129edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONFORMANT 0x3042 130edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 131edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Reserved 0x3041-0x304F for additional config attributes */ 132edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 133edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Config attribute values */ 134edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */ 135edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */ 136edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */ 137edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */ 138edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */ 139edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 140edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* More config attribute values, for EGL_TEXTURE_FORMAT */ 141edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NO_TEXTURE 0x305C 142edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_RGB 0x305D 143edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_RGBA 0x305E 144edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_2D 0x305F 145edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 146edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Config attribute mask bits */ 147edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */ 148edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */ 149edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */ 150edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 /* EGL_SURFACE_TYPE mask bits */ 151edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 /* EGL_SURFACE_TYPE mask bits */ 152edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 /* EGL_SURFACE_TYPE mask bits */ 153edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 /* EGL_SURFACE_TYPE mask bits */ 154edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 155edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */ 156edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */ 157edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */ 158edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */ 159edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 160edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* QueryString targets */ 161edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VENDOR 0x3053 162edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION 0x3054 163edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_EXTENSIONS 0x3055 164edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CLIENT_APIS 0x308D 165edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 166edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */ 167edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_HEIGHT 0x3056 168edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_WIDTH 0x3057 169edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LARGEST_PBUFFER 0x3058 170edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_FORMAT 0x3080 171edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_TARGET 0x3081 172edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MIPMAP_TEXTURE 0x3082 173edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MIPMAP_LEVEL 0x3083 174edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RENDER_BUFFER 0x3086 175edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE 0x3087 176edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT 0x3088 177edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_HORIZONTAL_RESOLUTION 0x3090 178edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERTICAL_RESOLUTION 0x3091 179edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_PIXEL_ASPECT_RATIO 0x3092 180edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SWAP_BEHAVIOR 0x3093 181edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE 0x3099 182edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 183edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */ 184edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BACK_BUFFER 0x3084 185edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SINGLE_BUFFER 0x3085 186edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 187edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* OpenVG color spaces */ 188edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE_sRGB 0x3089 /* EGL_VG_COLORSPACE value */ 189edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE_LINEAR 0x308A /* EGL_VG_COLORSPACE value */ 190edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 191edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* OpenVG alpha formats */ 192edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */ 193edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */ 194edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 195edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Constant scale factor by which fractional display resolutions & 196edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * aspect ratio are scaled when queried as integer values. 197edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 198edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DISPLAY_SCALING 10000 199edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 200edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Unknown display resolution/aspect ratio */ 201edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_UNKNOWN ((EGLint)-1) 202edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 203edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Back buffer swap behaviors */ 204edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */ 205edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */ 206edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 207edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* CreatePbufferFromClientBuffer buffer types */ 208edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENVG_IMAGE 0x3096 209edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 210edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* QueryContext targets */ 211edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONTEXT_CLIENT_TYPE 0x3097 212edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 213edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* CreateContext attributes */ 214edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONTEXT_CLIENT_VERSION 0x3098 215edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 216edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Multisample resolution behaviors */ 217edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A /* EGL_MULTISAMPLE_RESOLVE value */ 218edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B /* EGL_MULTISAMPLE_RESOLVE value */ 219edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 220edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* BindAPI/QueryAPI targets */ 221edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_ES_API 0x30A0 222edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENVG_API 0x30A1 223edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_API 0x30A2 224edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 225edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* GetCurrentSurface targets */ 226edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DRAW 0x3059 227edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_READ 0x305A 228edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 229edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* WaitNative engines */ 230edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CORE_NATIVE_ENGINE 0x305B 231edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 232edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL 1.2 tokens renamed for consistency in EGL 1.3 */ 233edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLORSPACE EGL_VG_COLORSPACE 234edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_FORMAT EGL_VG_ALPHA_FORMAT 235edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLORSPACE_sRGB EGL_VG_COLORSPACE_sRGB 236edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLORSPACE_LINEAR EGL_VG_COLORSPACE_LINEAR 237edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_FORMAT_NONPRE EGL_VG_ALPHA_FORMAT_NONPRE 238edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_FORMAT_PRE EGL_VG_ALPHA_FORMAT_PRE 239edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 240edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL extensions must request enum blocks from the Khronos 241edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * API Registrar, who maintains the enumerant registry. Submit 242edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * a bug in Khronos Bugzilla against task "Registry". 243edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 244edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 245edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 246edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 247edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL Functions */ 248edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 249edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLint EGLAPIENTRY eglGetError(void); 250edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 251edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id); 252edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor); 253edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy); 254edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 255edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name); 256edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 257edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, 258edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint config_size, EGLint *num_config); 259edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, 260edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLConfig *configs, EGLint config_size, 261edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint *num_config); 262edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, 263edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint attribute, EGLint *value); 264edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 265edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, 266edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLNativeWindowType win, 267edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const EGLint *attrib_list); 268edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, 269edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const EGLint *attrib_list); 270edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, 271edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLNativePixmapType pixmap, 272edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const EGLint *attrib_list); 273edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface); 274edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, 275edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint attribute, EGLint *value); 276edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 277edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api); 278edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void); 279edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 280edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void); 281edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 282edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void); 283edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 284edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer( 285edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, 286edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLConfig config, const EGLint *attrib_list); 287edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 288edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, 289edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint attribute, EGLint value); 290edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 291edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 292edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 293edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 294edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval); 295edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 296edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 297edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, 298edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLContext share_context, 299edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const EGLint *attrib_list); 300edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx); 301edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, 302edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLSurface read, EGLContext ctx); 303edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 304edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void); 305edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw); 306edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void); 307edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, 308edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint attribute, EGLint *value); 309edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 310edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void); 311edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine); 312edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface); 313edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, 314edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLNativePixmapType target); 315edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 316edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* This is a generic function pointer type, whose name indicates it must 317edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * be cast to the proper type *and calling convention* before use. 318edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 319edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void (*__eglMustCastToProperFunctionPointerType)(void); 320edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 321edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Now, define eglGetProcAddress using the generic function ptr. type */ 322edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY 323edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project eglGetProcAddress(const char *procname); 324edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 325edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#ifdef __cplusplus 326edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 327edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#endif 328edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 329edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#endif /* __egl_h_ */ 330