eglcontext.h revision 4a49301e
1 2#ifndef EGLCONTEXT_INCLUDED 3#define EGLCONTEXT_INCLUDED 4 5 6#include "egltypedefs.h" 7 8 9/** 10 * "Base" class for device driver contexts. 11 */ 12struct _egl_context 13{ 14 /* Managed by EGLDisplay for linking */ 15 _EGLDisplay *Display; 16 _EGLContext *Next; 17 18 /* The bound status of the context */ 19 _EGLThreadInfo *Binding; 20 _EGLSurface *DrawSurface; 21 _EGLSurface *ReadSurface; 22 23 _EGLConfig *Config; 24 25 EGLint ClientAPI; /**< EGL_OPENGL_ES_API, EGL_OPENGL_API, EGL_OPENVG_API */ 26 EGLint ClientVersion; /**< 1 = OpenGLES 1.x, 2 = OpenGLES 2.x */ 27 28 /* The real render buffer when a window surface is bound */ 29 EGLint WindowRenderBuffer; 30}; 31 32 33extern EGLBoolean 34_eglInitContext(_EGLDriver *drv, _EGLContext *ctx, 35 _EGLConfig *config, const EGLint *attrib_list); 36 37 38extern _EGLContext * 39_eglCreateContext(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, _EGLContext *share_list, const EGLint *attrib_list); 40 41 42extern EGLBoolean 43_eglDestroyContext(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx); 44 45 46extern EGLBoolean 47_eglQueryContext(_EGLDriver *drv, _EGLDisplay *dpy, _EGLContext *ctx, EGLint attribute, EGLint *value); 48 49 50extern EGLBoolean 51_eglMakeCurrent(_EGLDriver *drv, _EGLDisplay *dpy, _EGLSurface *draw, _EGLSurface *read, _EGLContext *ctx); 52 53 54extern EGLBoolean 55_eglCopyContextMESA(_EGLDriver *drv, EGLDisplay dpy, EGLContext source, EGLContext dest, EGLint mask); 56 57 58/** 59 * Return true if the context is bound to a thread. 60 */ 61static INLINE EGLBoolean 62_eglIsContextBound(_EGLContext *ctx) 63{ 64 return (ctx->Binding != NULL); 65} 66 67 68#endif /* EGLCONTEXT_INCLUDED */ 69