Move all the EGL API function pointers into a new _egl_api struct.
[mesa.git] / src / egl / main / eglconfig.h
1 #ifndef EGLCONFIG_INCLUDED
2 #define EGLCONFIG_INCLUDED
3
4
5 #include "egltypedefs.h"
6 #include "GL/internal/glcore.h"
7
8
9 #define MAX_ATTRIBS 100
10 #define FIRST_ATTRIB EGL_BUFFER_SIZE
11
12
13 struct _egl_config
14 {
15 EGLConfig Handle; /* the public/opaque handle which names this config */
16 EGLint Attrib[MAX_ATTRIBS];
17 };
18
19
20 #define SET_CONFIG_ATTRIB(CONF, ATTR, VAL) ((CONF)->Attrib[(ATTR) - FIRST_ATTRIB] = VAL)
21 #define GET_CONFIG_ATTRIB(CONF, ATTR) ((CONF)->Attrib[(ATTR) - FIRST_ATTRIB])
22
23
24 extern void
25 _eglInitConfig(_EGLConfig *config, EGLint id);
26
27
28 extern _EGLConfig *
29 _eglLookupConfig(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config);
30
31
32 extern _EGLConfig *
33 _eglAddConfig(_EGLDisplay *display, const _EGLConfig *config);
34
35
36 extern EGLBoolean
37 _eglParseConfigAttribs(_EGLConfig *config, const EGLint *attrib_list);
38
39
40 extern EGLBoolean
41 _eglConfigQualifies(const _EGLConfig *c, const _EGLConfig *min);
42
43
44 extern EGLint
45 _eglCompareConfigs(const _EGLConfig *a, const _EGLConfig *b);
46
47
48 extern EGLBoolean
49 _eglChooseConfig(_EGLDriver *drv, EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config);
50
51
52 extern EGLBoolean
53 _eglGetConfigAttrib(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value);
54
55
56 extern EGLBoolean
57 _eglGetConfigs(_EGLDriver *drv, EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config);
58
59
60 extern void
61 _eglSetConfigAttrib(_EGLConfig *config, EGLint attr, EGLint val);
62
63 extern GLboolean
64 _eglFillInConfigs( _EGLConfig *configs,
65 GLenum fb_format, GLenum fb_type,
66 const u_int8_t * depth_bits, const u_int8_t * stencil_bits,
67 unsigned num_depth_stencil_bits,
68 const GLenum * db_modes, unsigned num_db_modes,
69 int visType );
70
71 extern void
72 _eglConfigToContextModesRec(const _EGLConfig *config, __GLcontextModes *mode);
73
74
75 #endif /* EGLCONFIG_INCLUDED */