Mesa (master): egl: Use a boolean to indicate whether a resource is linked.
Chia-I Wu
olv at kemper.freedesktop.org
Tue Jan 26 10:47:33 UTC 2010
Module: Mesa
Branch: master
Commit: f65ed0a3097d91289ced44d53786506333122b55
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=f65ed0a3097d91289ced44d53786506333122b55
Author: Chia-I Wu <olvaffe at gmail.com>
Date: Tue Jan 26 15:16:49 2010 +0800
egl: Use a boolean to indicate whether a resource is linked.
An unlinked resource may still be a current resource such as current
surfaces. There might still be a need to know which display the
unlinked resource belongs to.
---
src/egl/main/egldisplay.c | 6 +++++-
src/egl/main/egldisplay.h | 6 +++++-
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/egl/main/egldisplay.c b/src/egl/main/egldisplay.c
index 359900c..125909d 100644
--- a/src/egl/main/egldisplay.c
+++ b/src/egl/main/egldisplay.c
@@ -242,7 +242,10 @@ _eglCheckResource(void *res, _EGLResourceType type, _EGLDisplay *dpy)
void
_eglLinkResource(_EGLResource *res, _EGLResourceType type, _EGLDisplay *dpy)
{
+ assert(!res->Display || res->Display == dpy);
+
res->Display = dpy;
+ res->IsLinked = EGL_TRUE;
res->Next = dpy->ResourceLists[type];
dpy->ResourceLists[type] = res;
}
@@ -271,5 +274,6 @@ _eglUnlinkResource(_EGLResource *res, _EGLResourceType type)
}
res->Next = NULL;
- res->Display = NULL;
+ /* do not reset res->Display */
+ res->IsLinked = EGL_FALSE;
}
diff --git a/src/egl/main/egldisplay.h b/src/egl/main/egldisplay.h
index 0f5d3a0..8f74ad2 100644
--- a/src/egl/main/egldisplay.h
+++ b/src/egl/main/egldisplay.h
@@ -19,7 +19,11 @@ enum _egl_resource_type {
*/
struct _egl_resource
{
+ /* which display the resource belongs to */
_EGLDisplay *Display;
+ EGLBoolean IsLinked;
+
+ /* used to link resources of the same type */
_EGLResource *Next;
};
@@ -179,7 +183,7 @@ _eglUnlinkResource(_EGLResource *res, _EGLResourceType type);
static INLINE EGLBoolean
_eglIsResourceLinked(_EGLResource *res)
{
- return (res->Display != NULL);
+ return res->IsLinked;
}
More information about the mesa-commit
mailing list