egl.h revision edbf3b6af777b721cd2a1ef461947e51e88241e1
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. 4edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * $Revision: 7244 $ on $Date: 2009-01-20 17:06:59 -0800 (Tue, 20 Jan 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_PRESERVED_RESOURCES 0x3030 113edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SAMPLES 0x3031 114edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SAMPLE_BUFFERS 0x3032 115edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SURFACE_TYPE 0x3033 116edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_TYPE 0x3034 117edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 118edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 119edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_RED_VALUE 0x3037 120edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NONE 0x3038 /* Attrib list terminator */ 121edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BIND_TO_TEXTURE_RGB 0x3039 122edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BIND_TO_TEXTURE_RGBA 0x303A 123edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MIN_SWAP_INTERVAL 0x303B 124edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MAX_SWAP_INTERVAL 0x303C 125edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LUMINANCE_SIZE 0x303D 126edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_MASK_SIZE 0x303E 127edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLOR_BUFFER_TYPE 0x303F 128edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RENDERABLE_TYPE 0x3040 129edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MATCH_NATIVE_PIXMAP 0x3041 /* Pseudo-attribute (not queryable) */ 130edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONFORMANT 0x3042 131edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 132edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Reserved 0x3041-0x304F for additional config attributes */ 133edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 134edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Config attribute values */ 135edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */ 136edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */ 137edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */ 138edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */ 139edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */ 140edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 141edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* More config attribute values, for EGL_TEXTURE_FORMAT */ 142edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_NO_TEXTURE 0x305C 143edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_RGB 0x305D 144edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_RGBA 0x305E 145edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_2D 0x305F 146edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 147edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Config attribute mask bits */ 148edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_PBUFFER_BIT 0x0001 /* EGL_SURFACE_TYPE mask bits */ 149edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_PIXMAP_BIT 0x0002 /* EGL_SURFACE_TYPE mask bits */ 150edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_WINDOW_BIT 0x0004 /* EGL_SURFACE_TYPE mask bits */ 151edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE_LINEAR_BIT 0x0020 /* EGL_SURFACE_TYPE mask bits */ 152edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT_PRE_BIT 0x0040 /* EGL_SURFACE_TYPE mask bits */ 153edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE_BOX_BIT 0x0200 /* EGL_SURFACE_TYPE mask bits */ 154edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SWAP_BEHAVIOR_PRESERVED_BIT 0x0400 /* EGL_SURFACE_TYPE mask bits */ 155edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 156edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_ES_BIT 0x0001 /* EGL_RENDERABLE_TYPE mask bits */ 157edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENVG_BIT 0x0002 /* EGL_RENDERABLE_TYPE mask bits */ 158edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_ES2_BIT 0x0004 /* EGL_RENDERABLE_TYPE mask bits */ 159edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_BIT 0x0008 /* EGL_RENDERABLE_TYPE mask bits */ 160edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 161edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* QueryString targets */ 162edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VENDOR 0x3053 163edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERSION 0x3054 164edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_EXTENSIONS 0x3055 165edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CLIENT_APIS 0x308D 166edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 167edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* QuerySurface / SurfaceAttrib / CreatePbufferSurface targets */ 168edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_HEIGHT 0x3056 169edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_WIDTH 0x3057 170edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_LARGEST_PBUFFER 0x3058 171edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_FORMAT 0x3080 172edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_TEXTURE_TARGET 0x3081 173edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MIPMAP_TEXTURE 0x3082 174edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MIPMAP_LEVEL 0x3083 175edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_RENDER_BUFFER 0x3086 176edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE 0x3087 177edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT 0x3088 178edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_HORIZONTAL_RESOLUTION 0x3090 179edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VERTICAL_RESOLUTION 0x3091 180edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_PIXEL_ASPECT_RATIO 0x3092 181edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SWAP_BEHAVIOR 0x3093 182edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE 0x3099 183edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 184edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */ 185edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BACK_BUFFER 0x3084 186edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_SINGLE_BUFFER 0x3085 187edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 188edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* OpenVG color spaces */ 189edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE_sRGB 0x3089 /* EGL_VG_COLORSPACE value */ 190edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_COLORSPACE_LINEAR 0x308A /* EGL_VG_COLORSPACE value */ 191edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 192edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* OpenVG alpha formats */ 193edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */ 194edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_VG_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */ 195edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 196edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Constant scale factor by which fractional display resolutions & 197edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * aspect ratio are scaled when queried as integer values. 198edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 199edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DISPLAY_SCALING 10000 200edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 201edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Unknown display resolution/aspect ratio */ 202edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_UNKNOWN ((EGLint)-1) 203edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 204edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Back buffer swap behaviors */ 205edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */ 206edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */ 207edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 208edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* CreatePbufferFromClientBuffer buffer types */ 209edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENVG_IMAGE 0x3096 210edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 211edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* QueryContext targets */ 212edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONTEXT_CLIENT_TYPE 0x3097 213edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 214edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* CreateContext attributes */ 215edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CONTEXT_CLIENT_VERSION 0x3098 216edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 217edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Multisample resolution behaviors */ 218edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE_DEFAULT 0x309A /* EGL_MULTISAMPLE_RESOLVE value */ 219edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_MULTISAMPLE_RESOLVE_BOX 0x309B /* EGL_MULTISAMPLE_RESOLVE value */ 220edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 221edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* BindAPI/QueryAPI targets */ 222edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_ES_API 0x30A0 223edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENVG_API 0x30A1 224edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_OPENGL_API 0x30A2 225edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 226edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* GetCurrentSurface targets */ 227edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_DRAW 0x3059 228edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_READ 0x305A 229edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 230edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* WaitNative engines */ 231edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_CORE_NATIVE_ENGINE 0x305B 232edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 233edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL 1.2 tokens renamed for consistency in EGL 1.3 */ 234edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLORSPACE EGL_VG_COLORSPACE 235edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_FORMAT EGL_VG_ALPHA_FORMAT 236edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLORSPACE_sRGB EGL_VG_COLORSPACE_sRGB 237edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_COLORSPACE_LINEAR EGL_VG_COLORSPACE_LINEAR 238edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_FORMAT_NONPRE EGL_VG_ALPHA_FORMAT_NONPRE 239edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define EGL_ALPHA_FORMAT_PRE EGL_VG_ALPHA_FORMAT_PRE 240edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 241edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL extensions must request enum blocks from the Khronos 242edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * API Registrar, who maintains the enumerant registry. Submit 243edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * a bug in Khronos Bugzilla against task "Registry". 244edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 245edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 246edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 247edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 248edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* EGL Functions */ 249edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 250edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLint EGLAPIENTRY eglGetError(void); 251edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 252edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id); 253edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor); 254edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy); 255edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 256edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI const char * EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name); 257edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 258edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, 259edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint config_size, EGLint *num_config); 260edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, 261edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLConfig *configs, EGLint config_size, 262edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint *num_config); 263edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, 264edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint attribute, EGLint *value); 265edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 266edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, 267edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLNativeWindowType win, 268edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const EGLint *attrib_list); 269edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, 270edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const EGLint *attrib_list); 271edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, 272edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLNativePixmapType pixmap, 273edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const EGLint *attrib_list); 274edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface); 275edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, 276edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint attribute, EGLint *value); 277edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 278edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api); 279edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLenum EGLAPIENTRY eglQueryAPI(void); 280edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 281edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglWaitClient(void); 282edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 283edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglReleaseThread(void); 284edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 285edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer( 286edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, 287edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLConfig config, const EGLint *attrib_list); 288edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 289edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, 290edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint attribute, EGLint value); 291edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 292edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 293edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 294edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 295edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval); 296edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 297edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 298edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, 299edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLContext share_context, 300edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const EGLint *attrib_list); 301edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx); 302edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, 303edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLSurface read, EGLContext ctx); 304edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 305edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLContext EGLAPIENTRY eglGetCurrentContext(void); 306edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw); 307edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void); 308edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, 309edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLint attribute, EGLint *value); 310edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 311edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglWaitGL(void); 312edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine); 313edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface); 314edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, 315edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project EGLNativePixmapType target); 316edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 317edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* This is a generic function pointer type, whose name indicates it must 318edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * be cast to the proper type *and calling convention* before use. 319edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 320edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projecttypedef void (*__eglMustCastToProperFunctionPointerType)(void); 321edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 322edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* Now, define eglGetProcAddress using the generic function ptr. type */ 323edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source ProjectEGLAPI __eglMustCastToProperFunctionPointerType EGLAPIENTRY 324edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project eglGetProcAddress(const char *procname); 325edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 326edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#ifdef __cplusplus 327edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project} 328edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#endif 329edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 330edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#endif /* __egl_h_ */ 331