blob: 545fd0e980bd297ab197a1c7889dd30176e5b2c1 [file] [log] [blame]
The Android Open Source Project9066cfe2009-03-03 19:31:44 -08001#ifndef __eglext_h_
2#define __eglext_h_
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8/*
9** Copyright (c) 2007-2009 The Khronos Group Inc.
10**
11** Permission is hereby granted, free of charge, to any person obtaining a
12** copy of this software and/or associated documentation files (the
13** "Materials"), to deal in the Materials without restriction, including
14** without limitation the rights to use, copy, modify, merge, publish,
15** distribute, sublicense, and/or sell copies of the Materials, and to
16** permit persons to whom the Materials are furnished to do so, subject to
17** the following conditions:
18**
19** The above copyright notice and this permission notice shall be included
20** in all copies or substantial portions of the Materials.
21**
22** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
25** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
26** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
27** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
28** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
29*/
30
31#include <EGL/eglplatform.h>
32
33/*************************************************************/
34
35/* Header file version number */
36/* Current version at http://www.khronos.org/registry/egl/ */
37/* $Revision: 7244 $ on $Date: 2009-01-20 17:06:59 -0800 (Tue, 20 Jan 2009) $ */
38#define EGL_EGLEXT_VERSION 3
39
40#ifndef EGL_KHR_config_attribs
41#define EGL_KHR_config_attribs 1
42#define EGL_CONFORMANT_KHR 0x3042 /* EGLConfig attribute */
43#define EGL_VG_COLORSPACE_LINEAR_BIT_KHR 0x0020 /* EGL_SURFACE_TYPE bitfield */
44#define EGL_VG_ALPHA_FORMAT_PRE_BIT_KHR 0x0040 /* EGL_SURFACE_TYPE bitfield */
45#endif
46
47#ifndef EGL_KHR_lock_surface
48#define EGL_KHR_lock_surface 1
49#define EGL_READ_SURFACE_BIT_KHR 0x0001 /* EGL_LOCK_USAGE_HINT_KHR bitfield */
50#define EGL_WRITE_SURFACE_BIT_KHR 0x0002 /* EGL_LOCK_USAGE_HINT_KHR bitfield */
51#define EGL_LOCK_SURFACE_BIT_KHR 0x0080 /* EGL_SURFACE_TYPE bitfield */
52#define EGL_OPTIMAL_FORMAT_BIT_KHR 0x0100 /* EGL_SURFACE_TYPE bitfield */
53#define EGL_MATCH_FORMAT_KHR 0x3043 /* EGLConfig attribute */
54#define EGL_FORMAT_RGB_565_EXACT_KHR 0x30C0 /* EGL_MATCH_FORMAT_KHR value */
55#define EGL_FORMAT_RGB_565_KHR 0x30C1 /* EGL_MATCH_FORMAT_KHR value */
56#define EGL_FORMAT_RGBA_8888_EXACT_KHR 0x30C2 /* EGL_MATCH_FORMAT_KHR value */
57#define EGL_FORMAT_RGBA_8888_KHR 0x30C3 /* EGL_MATCH_FORMAT_KHR value */
58#define EGL_MAP_PRESERVE_PIXELS_KHR 0x30C4 /* eglLockSurfaceKHR attribute */
59#define EGL_LOCK_USAGE_HINT_KHR 0x30C5 /* eglLockSurfaceKHR attribute */
60#define EGL_BITMAP_POINTER_KHR 0x30C6 /* eglQuerySurface attribute */
61#define EGL_BITMAP_PITCH_KHR 0x30C7 /* eglQuerySurface attribute */
62#define EGL_BITMAP_ORIGIN_KHR 0x30C8 /* eglQuerySurface attribute */
63#define EGL_BITMAP_PIXEL_RED_OFFSET_KHR 0x30C9 /* eglQuerySurface attribute */
64#define EGL_BITMAP_PIXEL_GREEN_OFFSET_KHR 0x30CA /* eglQuerySurface attribute */
65#define EGL_BITMAP_PIXEL_BLUE_OFFSET_KHR 0x30CB /* eglQuerySurface attribute */
66#define EGL_BITMAP_PIXEL_ALPHA_OFFSET_KHR 0x30CC /* eglQuerySurface attribute */
67#define EGL_BITMAP_PIXEL_LUMINANCE_OFFSET_KHR 0x30CD /* eglQuerySurface attribute */
68#define EGL_LOWER_LEFT_KHR 0x30CE /* EGL_BITMAP_ORIGIN_KHR value */
69#define EGL_UPPER_LEFT_KHR 0x30CF /* EGL_BITMAP_ORIGIN_KHR value */
70#ifdef EGL_EGLEXT_PROTOTYPES
71EGLAPI EGLBoolean EGLAPIENTRY eglLockSurfaceKHR (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
72EGLAPI EGLBoolean EGLAPIENTRY eglUnlockSurfaceKHR (EGLDisplay display, EGLSurface surface);
73#endif /* EGL_EGLEXT_PROTOTYPES */
74typedef EGLBoolean (EGLAPIENTRYP PFNEGLLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list);
75typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNLOCKSURFACEKHRPROC) (EGLDisplay display, EGLSurface surface);
76#endif
77
78#ifndef EGL_KHR_image
79#define EGL_KHR_image 1
80#define EGL_NATIVE_PIXMAP_KHR 0x30B0 /* eglCreateImageKHR target */
81typedef void *EGLImageKHR;
82#define EGL_NO_IMAGE_KHR ((EGLImageKHR)0)
83#ifdef EGL_EGLEXT_PROTOTYPES
84EGLAPI EGLImageKHR EGLAPIENTRY eglCreateImageKHR (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
85EGLAPI EGLBoolean EGLAPIENTRY eglDestroyImageKHR (EGLDisplay dpy, EGLImageKHR image);
86#endif /* EGL_EGLEXT_PROTOTYPES */
87typedef EGLImageKHR (EGLAPIENTRYP PFNEGLCREATEIMAGEKHRPROC) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
88typedef EGLBoolean (EGLAPIENTRYP PFNEGLDESTROYIMAGEKHRPROC) (EGLDisplay dpy, EGLImageKHR image);
89#endif
90
91#ifndef EGL_KHR_vg_parent_image
92#define EGL_KHR_vg_parent_image 1
93#define EGL_VG_PARENT_IMAGE_KHR 0x30BA /* eglCreateImageKHR target */
94#endif
95
96#ifndef EGL_KHR_gl_texture_2D_image
97#define EGL_KHR_gl_texture_2D_image 1
98#define EGL_GL_TEXTURE_2D_KHR 0x30B1 /* eglCreateImageKHR target */
99#define EGL_GL_TEXTURE_LEVEL_KHR 0x30BC /* eglCreateImageKHR attribute */
100#endif
101
102#ifndef EGL_KHR_gl_texture_cubemap_image
103#define EGL_KHR_gl_texture_cubemap_image 1
104#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_X_KHR 0x30B3 /* eglCreateImageKHR target */
105#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_X_KHR 0x30B4 /* eglCreateImageKHR target */
106#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Y_KHR 0x30B5 /* eglCreateImageKHR target */
107#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_KHR 0x30B6 /* eglCreateImageKHR target */
108#define EGL_GL_TEXTURE_CUBE_MAP_POSITIVE_Z_KHR 0x30B7 /* eglCreateImageKHR target */
109#define EGL_GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_KHR 0x30B8 /* eglCreateImageKHR target */
110#endif
111
112#ifndef EGL_KHR_gl_texture_3D_image
113#define EGL_KHR_gl_texture_3D_image 1
114#define EGL_GL_TEXTURE_3D_KHR 0x30B2 /* eglCreateImageKHR target */
115#define EGL_GL_TEXTURE_ZOFFSET_KHR 0x30BD /* eglCreateImageKHR attribute */
116#endif
117
118#ifndef EGL_KHR_gl_renderbuffer_image
119#define EGL_KHR_gl_renderbuffer_image 1
120#define EGL_GL_RENDERBUFFER_KHR 0x30B9 /* eglCreateImageKHR target */
121#endif
122
123#ifndef EGL_KHR_image_base
124#define EGL_KHR_image_base 1
125/* Most interfaces defined by EGL_KHR_image_pixmap above */
126#define EGL_IMAGE_PRESERVED_KHR 0x30D2 /* eglCreateImageKHR attribute */
127#endif
128
129#ifndef EGL_KHR_image_pixmap
130#define EGL_KHR_image_pixmap 1
131/* Interfaces defined by EGL_KHR_image above */
132#endif
133
Mathias Agopian2e20bff2009-05-04 19:29:25 -0700134
Mathias Agopianc1e3ec52009-06-24 22:37:39 -0700135#ifndef EGL_ANDROID_image_native_buffer
136#define EGL_ANDROID_image_native_buffer 1
137struct android_native_buffer_t;
138#define EGL_NATIVE_BUFFER_ANDROID 0x3140 /* eglCreateImageKHR target */
139#endif
140
141#ifndef EGL_ANDROID_get_render_buffer
142#define EGL_ANDROID_get_render_buffer 1
143#ifdef EGL_EGLEXT_PROTOTYPES
144EGLAPI EGLClientBuffer EGLAPIENTRY eglGetRenderBufferANDROID(EGLDisplay dpy, EGLSurface draw);
145#endif
146typedef EGLClientBuffer (EGLAPIENTRYP PFNEGLGETRENDERBUFFERANDROIDPROC) (EGLDisplay dpy, EGLSurface draw);
147#endif
148
Mathias Agopian2e20bff2009-05-04 19:29:25 -0700149#ifndef EGL_ANDROID_swap_rectangle
150#define EGL_ANDROID_swap_rectangle 1
151#ifdef EGL_EGLEXT_PROTOTYPES
152EGLAPI EGLBoolean EGLAPIENTRY eglSetSwapRectangleANDROID (EGLDisplay dpy, EGLSurface draw, EGLint left, EGLint top, EGLint width, EGLint height);
153#endif /* EGL_EGLEXT_PROTOTYPES */
154typedef EGLBoolean (EGLAPIENTRYP PFNEGLSETSWAPRECTANGLEANDROIDPROC) (EGLDisplay dpy, EGLSurface draw, EGLint left, EGLint top, EGLint width, EGLint height);
155#endif
156
157
The Android Open Source Project9066cfe2009-03-03 19:31:44 -0800158#ifdef __cplusplus
159}
160#endif
161
162#endif