diff options
author | Chia-I Wu <[email protected]> | 2010-01-31 13:33:57 +0800 |
---|---|---|
committer | Chia-I Wu <[email protected]> | 2010-01-31 14:46:14 +0800 |
commit | d69242be55091e53b0ae2cfa6282790ce1862f29 (patch) | |
tree | 84ac6ceb40d6893d6a69b9ad7fef47677416772b | |
parent | e694ccad803157b71b2de78d63ee6dacc489faab (diff) |
egl: Initialize display resources with their display.
Change _eglInitSurface, _eglInitContext, and _eglInitImage to take an
_EGLDisplay instead of an _EGLDriver. This is a more natural form, and
plus, the display encodes information such as the extensions supported
that might be required for attribute list parsing.
-rw-r--r-- | src/egl/drivers/glx/egl_glx.c | 8 | ||||
-rw-r--r-- | src/egl/drivers/xdri/egl_xdri.c | 4 | ||||
-rw-r--r-- | src/egl/main/eglcontext.c | 5 | ||||
-rw-r--r-- | src/egl/main/eglcontext.h | 2 | ||||
-rw-r--r-- | src/egl/main/eglimage.c | 3 | ||||
-rw-r--r-- | src/egl/main/eglimage.h | 2 | ||||
-rw-r--r-- | src/egl/main/eglsurface.c | 3 | ||||
-rw-r--r-- | src/egl/main/eglsurface.h | 2 | ||||
-rw-r--r-- | src/gallium/state_trackers/egl/common/egl_g3d.c | 10 |
9 files changed, 21 insertions, 18 deletions
diff --git a/src/egl/drivers/glx/egl_glx.c b/src/egl/drivers/glx/egl_glx.c index af653b86eee..82d256c52d7 100644 --- a/src/egl/drivers/glx/egl_glx.c +++ b/src/egl/drivers/glx/egl_glx.c @@ -605,7 +605,7 @@ GLX_eglCreateContext(_EGLDriver *drv, _EGLDisplay *disp, _EGLConfig *conf, return NULL; } - if (!_eglInitContext(drv, &GLX_ctx->Base, conf, attrib_list)) { + if (!_eglInitContext(&GLX_ctx->Base, disp, conf, attrib_list)) { free(GLX_ctx); return NULL; } @@ -720,7 +720,7 @@ GLX_eglCreateWindowSurface(_EGLDriver *drv, _EGLDisplay *disp, return NULL; } - if (!_eglInitSurface(drv, &GLX_surf->Base, EGL_WINDOW_BIT, + if (!_eglInitSurface(&GLX_surf->Base, disp, EGL_WINDOW_BIT, conf, attrib_list)) { free(GLX_surf); return NULL; @@ -766,7 +766,7 @@ GLX_eglCreatePixmapSurface(_EGLDriver *drv, _EGLDisplay *disp, return NULL; } - if (!_eglInitSurface(drv, &GLX_surf->Base, EGL_PIXMAP_BIT, + if (!_eglInitSurface(&GLX_surf->Base, disp, EGL_PIXMAP_BIT, conf, attrib_list)) { free(GLX_surf); return NULL; @@ -826,7 +826,7 @@ GLX_eglCreatePbufferSurface(_EGLDriver *drv, _EGLDisplay *disp, return NULL; } - if (!_eglInitSurface(drv, &GLX_surf->Base, EGL_PBUFFER_BIT, + if (!_eglInitSurface(&GLX_surf->Base, disp, EGL_PBUFFER_BIT, conf, attrib_list)) { free(GLX_surf); return NULL; diff --git a/src/egl/drivers/xdri/egl_xdri.c b/src/egl/drivers/xdri/egl_xdri.c index 9c21576539d..2d868cbeea6 100644 --- a/src/egl/drivers/xdri/egl_xdri.c +++ b/src/egl/drivers/xdri/egl_xdri.c @@ -391,7 +391,7 @@ xdri_eglCreateContext(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, return NULL; } - if (!_eglInitContext(drv, &xdri_ctx->Base, &xdri_config->Base, attrib_list)) { + if (!_eglInitContext(&xdri_ctx->Base, dpy, &xdri_config->Base, attrib_list)) { free(xdri_ctx->dummy_gc); free(xdri_ctx); return NULL; @@ -529,7 +529,7 @@ xdri_eglCreateWindowSurface(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, return NULL; } - if (!_eglInitSurface(drv, &xdri_surf->Base, EGL_WINDOW_BIT, + if (!_eglInitSurface(&xdri_surf->Base, dpy, EGL_WINDOW_BIT, &xdri_config->Base, attrib_list)) { free(xdri_surf); return NULL; diff --git a/src/egl/main/eglcontext.c b/src/egl/main/eglcontext.c index f73cf2d0b35..012d8dfe1f4 100644 --- a/src/egl/main/eglcontext.c +++ b/src/egl/main/eglcontext.c @@ -101,8 +101,8 @@ _eglParseContextAttribList(_EGLContext *ctx, const EGLint *attrib_list) * in the attrib_list. */ EGLBoolean -_eglInitContext(_EGLDriver *drv, _EGLContext *ctx, - _EGLConfig *conf, const EGLint *attrib_list) +_eglInitContext(_EGLContext *ctx, _EGLDisplay *dpy, _EGLConfig *conf, + const EGLint *attrib_list) { const EGLenum api = eglQueryAPI(); EGLint err; @@ -113,6 +113,7 @@ _eglInitContext(_EGLDriver *drv, _EGLContext *ctx, } memset(ctx, 0, sizeof(_EGLContext)); + ctx->Resource.Display = dpy; ctx->ClientAPI = api; ctx->Config = conf; ctx->WindowRenderBuffer = EGL_NONE; diff --git a/src/egl/main/eglcontext.h b/src/egl/main/eglcontext.h index ebb50aa60e6..14fce02c11b 100644 --- a/src/egl/main/eglcontext.h +++ b/src/egl/main/eglcontext.h @@ -30,7 +30,7 @@ struct _egl_context PUBLIC EGLBoolean -_eglInitContext(_EGLDriver *drv, _EGLContext *ctx, +_eglInitContext(_EGLContext *ctx, _EGLDisplay *dpy, _EGLConfig *config, const EGLint *attrib_list); diff --git a/src/egl/main/eglimage.c b/src/egl/main/eglimage.c index 5b27df0267d..e7a293b3743 100644 --- a/src/egl/main/eglimage.c +++ b/src/egl/main/eglimage.c @@ -44,11 +44,12 @@ _eglParseImageAttribList(_EGLImage *img, const EGLint *attrib_list) EGLBoolean -_eglInitImage(_EGLDriver *drv, _EGLImage *img, const EGLint *attrib_list) +_eglInitImage(_EGLImage *img, _EGLDisplay *dpy, const EGLint *attrib_list) { EGLint err; memset(img, 0, sizeof(_EGLImage)); + img->Resource.Display = dpy; img->Preserved = EGL_FALSE; diff --git a/src/egl/main/eglimage.h b/src/egl/main/eglimage.h index 43107c23e9f..26bf054a07d 100644 --- a/src/egl/main/eglimage.h +++ b/src/egl/main/eglimage.h @@ -19,7 +19,7 @@ struct _egl_image PUBLIC EGLBoolean -_eglInitImage(_EGLDriver *drv, _EGLImage *img, const EGLint *attrib_list); +_eglInitImage(_EGLImage *img, _EGLDisplay *dpy, const EGLint *attrib_list); extern _EGLImage * diff --git a/src/egl/main/eglsurface.c b/src/egl/main/eglsurface.c index 6d436cffc10..58a50e9ee7d 100644 --- a/src/egl/main/eglsurface.c +++ b/src/egl/main/eglsurface.c @@ -167,7 +167,7 @@ _eglParseSurfaceAttribList(_EGLSurface *surf, const EGLint *attrib_list) * \return EGL_TRUE if no errors, EGL_FALSE otherwise. */ EGLBoolean -_eglInitSurface(_EGLDriver *drv, _EGLSurface *surf, EGLint type, +_eglInitSurface(_EGLSurface *surf, _EGLDisplay *dpy, EGLint type, _EGLConfig *conf, const EGLint *attrib_list) { const char *func; @@ -201,6 +201,7 @@ _eglInitSurface(_EGLDriver *drv, _EGLSurface *surf, EGLint type, } memset(surf, 0, sizeof(_EGLSurface)); + surf->Resource.Display = dpy; surf->Type = type; surf->Config = conf; diff --git a/src/egl/main/eglsurface.h b/src/egl/main/eglsurface.h index 0d64d20dd42..f054cb46d1a 100644 --- a/src/egl/main/eglsurface.h +++ b/src/egl/main/eglsurface.h @@ -40,7 +40,7 @@ struct _egl_surface PUBLIC EGLBoolean -_eglInitSurface(_EGLDriver *drv, _EGLSurface *surf, EGLint type, +_eglInitSurface(_EGLSurface *surf, _EGLDisplay *dpy, EGLint type, _EGLConfig *config, const EGLint *attrib_list); diff --git a/src/gallium/state_trackers/egl/common/egl_g3d.c b/src/gallium/state_trackers/egl/common/egl_g3d.c index 6c8f3b9f79c..3fd775abe5a 100644 --- a/src/gallium/state_trackers/egl/common/egl_g3d.c +++ b/src/gallium/state_trackers/egl/common/egl_g3d.c @@ -631,7 +631,7 @@ egl_g3d_create_context(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, return NULL; } - if (!_eglInitContext(drv, &gctx->base, conf, attribs)) { + if (!_eglInitContext(&gctx->base, dpy, conf, attribs)) { free(gctx); return NULL; } @@ -713,7 +713,7 @@ egl_g3d_create_window_surface(_EGLDriver *drv, _EGLDisplay *dpy, return NULL; } - if (!_eglInitSurface(drv, &gsurf->base, EGL_WINDOW_BIT, conf, attribs)) { + if (!_eglInitSurface(&gsurf->base, dpy, EGL_WINDOW_BIT, conf, attribs)) { free(gsurf); return NULL; } @@ -753,7 +753,7 @@ egl_g3d_create_pixmap_surface(_EGLDriver *drv, _EGLDisplay *dpy, return NULL; } - if (!_eglInitSurface(drv, &gsurf->base, EGL_PIXMAP_BIT, conf, attribs)) { + if (!_eglInitSurface(&gsurf->base, dpy, EGL_PIXMAP_BIT, conf, attribs)) { free(gsurf); return NULL; } @@ -790,7 +790,7 @@ egl_g3d_create_pbuffer_surface(_EGLDriver *drv, _EGLDisplay *dpy, return NULL; } - if (!_eglInitSurface(drv, &gsurf->base, EGL_PBUFFER_BIT, conf, attribs)) { + if (!_eglInitSurface(&gsurf->base, dpy, EGL_PBUFFER_BIT, conf, attribs)) { free(gsurf); return NULL; } @@ -1180,7 +1180,7 @@ egl_g3d_create_screen_surface(_EGLDriver *drv, _EGLDisplay *dpy, return NULL; } - if (!_eglInitSurface(drv, &gsurf->base, + if (!_eglInitSurface(&gsurf->base, dpy, EGL_SCREEN_BIT_MESA, conf, attribs)) { free(gsurf); return NULL; |