diff options
author | Chia-I Wu <[email protected]> | 2009-07-17 11:48:27 -0600 |
---|---|---|
committer | Brian Paul <[email protected]> | 2009-07-17 11:48:27 -0600 |
commit | 18457cb263e3e062e12314e7b3d5c81a7f2ba048 (patch) | |
tree | 179cde7595a4925111e78515be68005566aae66d /src/egl/main/egldisplay.h | |
parent | 21b635ffa8b59049a95d50d4c7b7a8ff6413b730 (diff) |
egl: Add funtions to link contexts and surfaces to displays.
EGL contexts and surfaces are resources of displays. They should be
managed by displays. This commit adds a bunch of functions to
egldisplay.c to help establish the links between contexts/surfaces and
displays. How links are established is considered opaque outside
display. Functions like _eglGetSurfaceHandle or _eglLookupSurface are
therefore moved to egldisplay.c, with some small modifications.
The idea is also extended to display. That is, displays need to link to
themselves to be looked up.
This commit only adds the functions. A commit to use them should
follow.
Signed-off-by: Chia-I Wu <[email protected]>
Diffstat (limited to 'src/egl/main/egldisplay.h')
-rw-r--r-- | src/egl/main/egldisplay.h | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h index 69f0d130efc..ac285f52a7e 100644 --- a/src/egl/main/egldisplay.h +++ b/src/egl/main/egldisplay.h @@ -23,6 +23,9 @@ struct _egl_display EGLint NumConfigs; _EGLConfig **Configs; /* array [NumConfigs] of ptr to _EGLConfig */ + /* lists of linked contexts and surface */ + _EGLContext *ContextList; + _EGLSurface *SurfaceList; #ifdef _EGL_PLATFORM_X Display *Xdpy; #endif @@ -33,7 +36,15 @@ extern _EGLDisplay * _eglNewDisplay(NativeDisplayType displayName); -EGLDisplay +extern EGLDisplay +_eglLinkDisplay(_EGLDisplay *dpy); + + +extern void +_eglUnlinkDisplay(_EGLDisplay *dpy); + + +extern EGLDisplay _eglGetDisplayHandle(_EGLDisplay *display); @@ -42,16 +53,39 @@ _eglLookupDisplay(EGLDisplay dpy); extern void -_eglSaveDisplay(_EGLDisplay *dpy); +_eglCleanupDisplay(_EGLDisplay *disp); + + +extern EGLContext +_eglLinkContext(_EGLContext *ctx, _EGLDisplay *dpy); extern void -_eglCleanupDisplay(_EGLDisplay *disp); +_eglUnlinkContext(_EGLContext *ctx); + + +extern EGLContext +_eglGetContextHandle(_EGLContext *ctx); + + +extern _EGLContext * +_eglLookupContext(EGLContext ctx); + + +extern EGLSurface +_eglLinkSurface(_EGLSurface *surf, _EGLDisplay *dpy); + + +extern void +_eglUnlinkSurface(_EGLSurface *surf); + +extern EGLSurface +_eglGetSurfaceHandle(_EGLSurface *); -extern EGLBoolean -_eglQueryDisplayMESA(_EGLDriver *drv, EGLDisplay dpy, EGLint attrib, EGLint *value); +extern _EGLSurface * +_eglLookupSurface(EGLSurface surf); #endif /* EGLDISPLAY_INCLUDED */ |