102f4aeb0Sopenharmony_ci/* Reference egl.h for EGL 1.2 202f4aeb0Sopenharmony_ci * Last modified 2006/10/24 302f4aeb0Sopenharmony_ci */ 402f4aeb0Sopenharmony_ci 502f4aeb0Sopenharmony_ci#ifndef __egl_h_ 602f4aeb0Sopenharmony_ci#define __egl_h_ 702f4aeb0Sopenharmony_ci 802f4aeb0Sopenharmony_ci/* EGL Types */ 902f4aeb0Sopenharmony_ci#include <sys/types.h> 1002f4aeb0Sopenharmony_ci 1102f4aeb0Sopenharmony_citypedef int32_t EGLint; 1202f4aeb0Sopenharmony_citypedef unsigned int EGLBoolean; 1302f4aeb0Sopenharmony_citypedef void *EGLConfig; 1402f4aeb0Sopenharmony_citypedef void *EGLContext; 1502f4aeb0Sopenharmony_citypedef void *EGLDisplay; 1602f4aeb0Sopenharmony_citypedef void *EGLSurface; 1702f4aeb0Sopenharmony_ci 1802f4aeb0Sopenharmony_ci/* Define NativeDisplayType, NativeWindowType, NativePixmapType in egltypes.h */ 1902f4aeb0Sopenharmony_ci#include <EGL/egltypes.h> 2002f4aeb0Sopenharmony_ci 2102f4aeb0Sopenharmony_ci/* EGL Versioning */ 2202f4aeb0Sopenharmony_ci#define EGL_VERSION_1_0 1 2302f4aeb0Sopenharmony_ci#define EGL_VERSION_1_1 1 2402f4aeb0Sopenharmony_ci#define EGL_VERSION_1_2 1 2502f4aeb0Sopenharmony_ci 2602f4aeb0Sopenharmony_ci/* EGL Enumerants. Exceptional cases aside, most 2702f4aeb0Sopenharmony_ci * enums are assigned unique values starting at 0x3000. 2802f4aeb0Sopenharmony_ci */ 2902f4aeb0Sopenharmony_ci 3002f4aeb0Sopenharmony_ci/* EGL aliases */ 3102f4aeb0Sopenharmony_ci#define EGL_FALSE 0 3202f4aeb0Sopenharmony_ci#define EGL_TRUE 1 3302f4aeb0Sopenharmony_ci 3402f4aeb0Sopenharmony_ci/* Out-of-band handle values */ 3502f4aeb0Sopenharmony_ci/* These values may vary depending on semantics of native concepts */ 3602f4aeb0Sopenharmony_ci#define EGL_DEFAULT_DISPLAY ((void *)0) 3702f4aeb0Sopenharmony_ci#define EGL_NO_CONTEXT ((EGLContext)0) 3802f4aeb0Sopenharmony_ci#define EGL_NO_DISPLAY ((EGLDisplay)0) 3902f4aeb0Sopenharmony_ci#define EGL_NO_SURFACE ((EGLSurface)0) 4002f4aeb0Sopenharmony_ci 4102f4aeb0Sopenharmony_ci/* Out-of-band attribute value */ 4202f4aeb0Sopenharmony_ci#define EGL_DONT_CARE ((EGLint)-1) 4302f4aeb0Sopenharmony_ci 4402f4aeb0Sopenharmony_ci/* Errors / GetError return values */ 4502f4aeb0Sopenharmony_ci#define EGL_SUCCESS 0x3000 4602f4aeb0Sopenharmony_ci#define EGL_NOT_INITIALIZED 0x3001 4702f4aeb0Sopenharmony_ci#define EGL_BAD_ACCESS 0x3002 4802f4aeb0Sopenharmony_ci#define EGL_BAD_ALLOC 0x3003 4902f4aeb0Sopenharmony_ci#define EGL_BAD_ATTRIBUTE 0x3004 5002f4aeb0Sopenharmony_ci#define EGL_BAD_CONFIG 0x3005 5102f4aeb0Sopenharmony_ci#define EGL_BAD_CONTEXT 0x3006 5202f4aeb0Sopenharmony_ci#define EGL_BAD_CURRENT_SURFACE 0x3007 5302f4aeb0Sopenharmony_ci#define EGL_BAD_DISPLAY 0x3008 5402f4aeb0Sopenharmony_ci#define EGL_BAD_MATCH 0x3009 5502f4aeb0Sopenharmony_ci#define EGL_BAD_NATIVE_PIXMAP 0x300A 5602f4aeb0Sopenharmony_ci#define EGL_BAD_NATIVE_WINDOW 0x300B 5702f4aeb0Sopenharmony_ci#define EGL_BAD_PARAMETER 0x300C 5802f4aeb0Sopenharmony_ci#define EGL_BAD_SURFACE 0x300D 5902f4aeb0Sopenharmony_ci#define EGL_CONTEXT_LOST 0x300E /* EGL 1.1 - IMG_power_management */ 6002f4aeb0Sopenharmony_ci 6102f4aeb0Sopenharmony_ci/* Reserved 0x300F-0x301F for additional errors */ 6202f4aeb0Sopenharmony_ci 6302f4aeb0Sopenharmony_ci/* Config attributes */ 6402f4aeb0Sopenharmony_ci#define EGL_BUFFER_SIZE 0x3020 6502f4aeb0Sopenharmony_ci#define EGL_ALPHA_SIZE 0x3021 6602f4aeb0Sopenharmony_ci#define EGL_BLUE_SIZE 0x3022 6702f4aeb0Sopenharmony_ci#define EGL_GREEN_SIZE 0x3023 6802f4aeb0Sopenharmony_ci#define EGL_RED_SIZE 0x3024 6902f4aeb0Sopenharmony_ci#define EGL_DEPTH_SIZE 0x3025 7002f4aeb0Sopenharmony_ci#define EGL_STENCIL_SIZE 0x3026 7102f4aeb0Sopenharmony_ci#define EGL_CONFIG_CAVEAT 0x3027 7202f4aeb0Sopenharmony_ci#define EGL_CONFIG_ID 0x3028 7302f4aeb0Sopenharmony_ci#define EGL_LEVEL 0x3029 7402f4aeb0Sopenharmony_ci#define EGL_MAX_PBUFFER_HEIGHT 0x302A 7502f4aeb0Sopenharmony_ci#define EGL_MAX_PBUFFER_PIXELS 0x302B 7602f4aeb0Sopenharmony_ci#define EGL_MAX_PBUFFER_WIDTH 0x302C 7702f4aeb0Sopenharmony_ci#define EGL_NATIVE_RENDERABLE 0x302D 7802f4aeb0Sopenharmony_ci#define EGL_NATIVE_VISUAL_ID 0x302E 7902f4aeb0Sopenharmony_ci#define EGL_NATIVE_VISUAL_TYPE 0x302F 8002f4aeb0Sopenharmony_ci#define EGL_PRESERVED_RESOURCES 0x3030 8102f4aeb0Sopenharmony_ci#define EGL_SAMPLES 0x3031 8202f4aeb0Sopenharmony_ci#define EGL_SAMPLE_BUFFERS 0x3032 8302f4aeb0Sopenharmony_ci#define EGL_SURFACE_TYPE 0x3033 8402f4aeb0Sopenharmony_ci#define EGL_TRANSPARENT_TYPE 0x3034 8502f4aeb0Sopenharmony_ci#define EGL_TRANSPARENT_BLUE_VALUE 0x3035 8602f4aeb0Sopenharmony_ci#define EGL_TRANSPARENT_GREEN_VALUE 0x3036 8702f4aeb0Sopenharmony_ci#define EGL_TRANSPARENT_RED_VALUE 0x3037 8802f4aeb0Sopenharmony_ci#define EGL_NONE 0x3038 /* Attrib list terminator */ 8902f4aeb0Sopenharmony_ci#define EGL_BIND_TO_TEXTURE_RGB 0x3039 9002f4aeb0Sopenharmony_ci#define EGL_BIND_TO_TEXTURE_RGBA 0x303A 9102f4aeb0Sopenharmony_ci#define EGL_MIN_SWAP_INTERVAL 0x303B 9202f4aeb0Sopenharmony_ci#define EGL_MAX_SWAP_INTERVAL 0x303C 9302f4aeb0Sopenharmony_ci#define EGL_LUMINANCE_SIZE 0x303D 9402f4aeb0Sopenharmony_ci#define EGL_ALPHA_MASK_SIZE 0x303E 9502f4aeb0Sopenharmony_ci#define EGL_COLOR_BUFFER_TYPE 0x303F 9602f4aeb0Sopenharmony_ci#define EGL_RENDERABLE_TYPE 0x3040 9702f4aeb0Sopenharmony_ci 9802f4aeb0Sopenharmony_ci/* Reserved 0x3041-0x304F for additional config attributes */ 9902f4aeb0Sopenharmony_ci 10002f4aeb0Sopenharmony_ci/* Config attribute values */ 10102f4aeb0Sopenharmony_ci#define EGL_SLOW_CONFIG 0x3050 /* EGL_CONFIG_CAVEAT value */ 10202f4aeb0Sopenharmony_ci#define EGL_NON_CONFORMANT_CONFIG 0x3051 /* EGL_CONFIG_CAVEAT value */ 10302f4aeb0Sopenharmony_ci#define EGL_TRANSPARENT_RGB 0x3052 /* EGL_TRANSPARENT_TYPE value */ 10402f4aeb0Sopenharmony_ci#define EGL_RGB_BUFFER 0x308E /* EGL_COLOR_BUFFER_TYPE value */ 10502f4aeb0Sopenharmony_ci#define EGL_LUMINANCE_BUFFER 0x308F /* EGL_COLOR_BUFFER_TYPE value */ 10602f4aeb0Sopenharmony_ci 10702f4aeb0Sopenharmony_ci/* More config attribute values, for EGL_TEXTURE_FORMAT */ 10802f4aeb0Sopenharmony_ci#define EGL_NO_TEXTURE 0x305C 10902f4aeb0Sopenharmony_ci#define EGL_TEXTURE_RGB 0x305D 11002f4aeb0Sopenharmony_ci#define EGL_TEXTURE_RGBA 0x305E 11102f4aeb0Sopenharmony_ci#define EGL_TEXTURE_2D 0x305F 11202f4aeb0Sopenharmony_ci 11302f4aeb0Sopenharmony_ci/* Config attribute mask bits */ 11402f4aeb0Sopenharmony_ci#define EGL_PBUFFER_BIT 0x01 /* EGL_SURFACE_TYPE mask bits */ 11502f4aeb0Sopenharmony_ci#define EGL_PIXMAP_BIT 0x02 /* EGL_SURFACE_TYPE mask bits */ 11602f4aeb0Sopenharmony_ci#define EGL_WINDOW_BIT 0x04 /* EGL_SURFACE_TYPE mask bits */ 11702f4aeb0Sopenharmony_ci#define EGL_OPENGL_ES_BIT 0x01 /* EGL_RENDERABLE_TYPE mask bits */ 11802f4aeb0Sopenharmony_ci#define EGL_OPENVG_BIT 0x02 /* EGL_RENDERABLE_TYPE mask bits */ 11902f4aeb0Sopenharmony_ci 12002f4aeb0Sopenharmony_ci/* QueryString targets */ 12102f4aeb0Sopenharmony_ci#define EGL_VENDOR 0x3053 12202f4aeb0Sopenharmony_ci#define EGL_VERSION 0x3054 12302f4aeb0Sopenharmony_ci#define EGL_EXTENSIONS 0x3055 12402f4aeb0Sopenharmony_ci#define EGL_CLIENT_APIS 0x308D 12502f4aeb0Sopenharmony_ci 12602f4aeb0Sopenharmony_ci/* QuerySurface / CreatePbufferSurface targets */ 12702f4aeb0Sopenharmony_ci#define EGL_HEIGHT 0x3056 12802f4aeb0Sopenharmony_ci#define EGL_WIDTH 0x3057 12902f4aeb0Sopenharmony_ci#define EGL_LARGEST_PBUFFER 0x3058 13002f4aeb0Sopenharmony_ci#define EGL_TEXTURE_FORMAT 0x3080 13102f4aeb0Sopenharmony_ci#define EGL_TEXTURE_TARGET 0x3081 13202f4aeb0Sopenharmony_ci#define EGL_MIPMAP_TEXTURE 0x3082 13302f4aeb0Sopenharmony_ci#define EGL_MIPMAP_LEVEL 0x3083 13402f4aeb0Sopenharmony_ci#define EGL_RENDER_BUFFER 0x3086 13502f4aeb0Sopenharmony_ci#define EGL_COLORSPACE 0x3087 13602f4aeb0Sopenharmony_ci#define EGL_ALPHA_FORMAT 0x3088 13702f4aeb0Sopenharmony_ci#define EGL_HORIZONTAL_RESOLUTION 0x3090 13802f4aeb0Sopenharmony_ci#define EGL_VERTICAL_RESOLUTION 0x3091 13902f4aeb0Sopenharmony_ci#define EGL_PIXEL_ASPECT_RATIO 0x3092 14002f4aeb0Sopenharmony_ci#define EGL_SWAP_BEHAVIOR 0x3093 14102f4aeb0Sopenharmony_ci 14202f4aeb0Sopenharmony_ci/* EGL_RENDER_BUFFER values / BindTexImage / ReleaseTexImage buffer targets */ 14302f4aeb0Sopenharmony_ci#define EGL_BACK_BUFFER 0x3084 14402f4aeb0Sopenharmony_ci#define EGL_SINGLE_BUFFER 0x3085 14502f4aeb0Sopenharmony_ci 14602f4aeb0Sopenharmony_ci/* OpenVG color spaces */ 14702f4aeb0Sopenharmony_ci#define EGL_COLORSPACE_sRGB 0x3089 /* EGL_COLORSPACE value */ 14802f4aeb0Sopenharmony_ci#define EGL_COLORSPACE_LINEAR 0x308A /* EGL_COLORSPACE value */ 14902f4aeb0Sopenharmony_ci 15002f4aeb0Sopenharmony_ci/* OpenVG alpha formats */ 15102f4aeb0Sopenharmony_ci#define EGL_ALPHA_FORMAT_NONPRE 0x308B /* EGL_ALPHA_FORMAT value */ 15202f4aeb0Sopenharmony_ci#define EGL_ALPHA_FORMAT_PRE 0x308C /* EGL_ALPHA_FORMAT value */ 15302f4aeb0Sopenharmony_ci 15402f4aeb0Sopenharmony_ci/* Constant scale factor by which fractional display resolutions & 15502f4aeb0Sopenharmony_ci * aspect ratio are scaled when queried as integer values. 15602f4aeb0Sopenharmony_ci */ 15702f4aeb0Sopenharmony_ci#define EGL_DISPLAY_SCALING 10000 15802f4aeb0Sopenharmony_ci 15902f4aeb0Sopenharmony_ci/* Unknown display resolution/aspect ratio */ 16002f4aeb0Sopenharmony_ci#define EGL_UNKNOWN ((EGLint)-1) 16102f4aeb0Sopenharmony_ci 16202f4aeb0Sopenharmony_ci/* Back buffer swap behaviors */ 16302f4aeb0Sopenharmony_ci#define EGL_BUFFER_PRESERVED 0x3094 /* EGL_SWAP_BEHAVIOR value */ 16402f4aeb0Sopenharmony_ci#define EGL_BUFFER_DESTROYED 0x3095 /* EGL_SWAP_BEHAVIOR value */ 16502f4aeb0Sopenharmony_ci 16602f4aeb0Sopenharmony_ci/* CreatePbufferFromClientBuffer buffer types */ 16702f4aeb0Sopenharmony_ci#define EGL_OPENVG_IMAGE 0x3096 16802f4aeb0Sopenharmony_ci 16902f4aeb0Sopenharmony_ci/* QueryContext targets */ 17002f4aeb0Sopenharmony_ci#define EGL_CONTEXT_CLIENT_TYPE 0x3097 17102f4aeb0Sopenharmony_ci 17202f4aeb0Sopenharmony_ci/* BindAPI/QueryAPI targets */ 17302f4aeb0Sopenharmony_ci#define EGL_OPENGL_ES_API 0x30A0 17402f4aeb0Sopenharmony_ci#define EGL_OPENVG_API 0x30A1 17502f4aeb0Sopenharmony_ci 17602f4aeb0Sopenharmony_ci/* GetCurrentSurface targets */ 17702f4aeb0Sopenharmony_ci#define EGL_DRAW 0x3059 17802f4aeb0Sopenharmony_ci#define EGL_READ 0x305A 17902f4aeb0Sopenharmony_ci 18002f4aeb0Sopenharmony_ci/* WaitNative engines */ 18102f4aeb0Sopenharmony_ci#define EGL_CORE_NATIVE_ENGINE 0x305B 18202f4aeb0Sopenharmony_ci 18302f4aeb0Sopenharmony_ci/* EGL extensions must request enum blocks from the OpenGL ARB 18402f4aeb0Sopenharmony_ci * Secretary, who maintains the EGL enumerant registry. 18502f4aeb0Sopenharmony_ci */ 18602f4aeb0Sopenharmony_ci 18702f4aeb0Sopenharmony_ci 18802f4aeb0Sopenharmony_ci 18902f4aeb0Sopenharmony_ci/* EGL Functions */ 19002f4aeb0Sopenharmony_ci 19102f4aeb0Sopenharmony_ciEGLint eglGetError(); 19202f4aeb0Sopenharmony_ci 19302f4aeb0Sopenharmony_ciEGLDisplay eglGetDisplay(NativeDisplayType display_id); 19402f4aeb0Sopenharmony_ciEGLBoolean eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor); 19502f4aeb0Sopenharmony_ciEGLBoolean eglTerminate(EGLDisplay dpy); 19602f4aeb0Sopenharmony_ci 19702f4aeb0Sopenharmony_ciconst char *eglQueryString(EGLDisplay dpy, EGLint name); 19802f4aeb0Sopenharmony_ci 19902f4aeb0Sopenharmony_ciEGLBoolean eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, 20002f4aeb0Sopenharmony_ci EGLint config_size, EGLint *num_config); 20102f4aeb0Sopenharmony_ciEGLBoolean eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, 20202f4aeb0Sopenharmony_ci EGLConfig *configs, EGLint config_size, 20302f4aeb0Sopenharmony_ci EGLint *num_config); 20402f4aeb0Sopenharmony_ciEGLBoolean eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, 20502f4aeb0Sopenharmony_ci EGLint attribute, EGLint *value); 20602f4aeb0Sopenharmony_ci 20702f4aeb0Sopenharmony_ciEGLSurface eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, 20802f4aeb0Sopenharmony_ci NativeWindowType win, 20902f4aeb0Sopenharmony_ci const EGLint *attrib_list); 21002f4aeb0Sopenharmony_ciEGLSurface eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, 21102f4aeb0Sopenharmony_ci const EGLint *attrib_list); 21202f4aeb0Sopenharmony_ciEGLSurface eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, 21302f4aeb0Sopenharmony_ci NativePixmapType pixmap, 21402f4aeb0Sopenharmony_ci const EGLint *attrib_list); 21502f4aeb0Sopenharmony_ciEGLBoolean eglDestroySurface(EGLDisplay dpy, EGLSurface surface); 21602f4aeb0Sopenharmony_ciEGLBoolean eglQuerySurface(EGLDisplay dpy, EGLSurface surface, 21702f4aeb0Sopenharmony_ci EGLint attribute, EGLint *value); 21802f4aeb0Sopenharmony_ci 21902f4aeb0Sopenharmony_ciEGLBoolean eglBindAPI(EGLenum api); 22002f4aeb0Sopenharmony_ciEGLenum eglQueryAPI(void); 22102f4aeb0Sopenharmony_ci 22202f4aeb0Sopenharmony_ciEGLBoolean eglWaitClient(void); 22302f4aeb0Sopenharmony_ci 22402f4aeb0Sopenharmony_ciEGLBoolean eglReleaseThread(void); 22502f4aeb0Sopenharmony_ci 22602f4aeb0Sopenharmony_ciEGLSurface eglCreatePbufferFromClientBuffer( 22702f4aeb0Sopenharmony_ci EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, 22802f4aeb0Sopenharmony_ci EGLConfig config, const EGLint *attrib_list); 22902f4aeb0Sopenharmony_ci 23002f4aeb0Sopenharmony_ciEGLBoolean eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, 23102f4aeb0Sopenharmony_ci EGLint attribute, EGLint value); 23202f4aeb0Sopenharmony_ciEGLBoolean eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 23302f4aeb0Sopenharmony_ciEGLBoolean eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer); 23402f4aeb0Sopenharmony_ci 23502f4aeb0Sopenharmony_ci 23602f4aeb0Sopenharmony_ciEGLBoolean eglSwapInterval(EGLDisplay dpy, EGLint interval); 23702f4aeb0Sopenharmony_ci 23802f4aeb0Sopenharmony_ci 23902f4aeb0Sopenharmony_ciEGLContext eglCreateContext(EGLDisplay dpy, EGLConfig config, 24002f4aeb0Sopenharmony_ci EGLContext share_context, 24102f4aeb0Sopenharmony_ci const EGLint *attrib_list); 24202f4aeb0Sopenharmony_ciEGLBoolean eglDestroyContext(EGLDisplay dpy, EGLContext ctx); 24302f4aeb0Sopenharmony_ciEGLBoolean eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, 24402f4aeb0Sopenharmony_ci EGLSurface read, EGLContext ctx); 24502f4aeb0Sopenharmony_ci 24602f4aeb0Sopenharmony_ciEGLContext eglGetCurrentContext(void); 24702f4aeb0Sopenharmony_ciEGLSurface eglGetCurrentSurface(EGLint readdraw); 24802f4aeb0Sopenharmony_ciEGLDisplay eglGetCurrentDisplay(void); 24902f4aeb0Sopenharmony_ciEGLBoolean eglQueryContext(EGLDisplay dpy, EGLContext ctx, 25002f4aeb0Sopenharmony_ci EGLint attribute, EGLint *value); 25102f4aeb0Sopenharmony_ci 25202f4aeb0Sopenharmony_ciEGLBoolean eglWaitGL(void); 25302f4aeb0Sopenharmony_ciEGLBoolean eglWaitNative(EGLint engine); 25402f4aeb0Sopenharmony_ciEGLBoolean eglSwapBuffers(EGLDisplay dpy, EGLSurface surface); 25502f4aeb0Sopenharmony_ciEGLBoolean eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, 25602f4aeb0Sopenharmony_ci NativePixmapType target); 25702f4aeb0Sopenharmony_ci 25802f4aeb0Sopenharmony_civoid (*eglGetProcAddress(const char *procname))(); 25902f4aeb0Sopenharmony_ci 26002f4aeb0Sopenharmony_ci#endif /* __egl_h_ */ 261