xref: /third_party/EGL/api/1.2/egl.h (revision 02f4aeb0)
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