added _eglGet*Handle() functions
authorBrian Paul <brian.paul@tungstengraphics.com>
Tue, 27 May 2008 20:33:54 +0000 (14:33 -0600)
committerBrian Paul <brian.paul@tungstengraphics.com>
Tue, 27 May 2008 20:33:54 +0000 (14:33 -0600)
These are the inverse of the _eglLookup*() functions.
Returns the public handle for a private surface/config/display/etc.
Removes glapi.c's direct access of private fields.

src/egl/main/eglapi.c
src/egl/main/eglconfig.c
src/egl/main/eglconfig.h
src/egl/main/egldisplay.c
src/egl/main/egldisplay.h
src/egl/main/eglsurface.c
src/egl/main/eglsurface.h

index 4df31cc03ffa8ab827d1beb0eb8a8db7487d7637..e4eec26de0a8e00e10e31c186b6bfdd14b8247da 100644 (file)
@@ -53,10 +53,7 @@ eglGetDisplay(NativeDisplayType displayName)
    _EGLDisplay *dpy;
    _eglInitGlobals();
    dpy = _eglNewDisplay(displayName);
-   if (dpy)
-      return dpy->Handle;
-   else
-      return EGL_NO_DISPLAY;
+   return _eglGetDisplayHandle(dpy);
 }
 
 
@@ -269,10 +266,7 @@ EGLDisplay EGLAPIENTRY
 eglGetCurrentDisplay(void)
 {
    _EGLDisplay *dpy = _eglGetCurrentDisplay();
-   if (dpy)
-      return dpy->Handle;
-   else
-      return EGL_NO_DISPLAY;
+   return _eglGetDisplayHandle(dpy);
 }
 
 
@@ -288,10 +282,7 @@ EGLSurface EGLAPIENTRY
 eglGetCurrentSurface(EGLint readdraw)
 {
    _EGLSurface *s = _eglGetCurrentSurface(readdraw);
-   if (s)
-      return s->Handle;
-   else
-      return EGL_NO_SURFACE;
+   return _eglGetSurfaceHandle(s);
 }
 
 
index a74cd23113dc64ea427941af57c03fea27bccc9d..1b49f7afd92741c317503a5a2b4307ff3a202d48 100644 (file)
@@ -101,8 +101,20 @@ _eglInitConfig(_EGLConfig *config, EGLint id)
 }
 
 
+/**
+ * Return the public handle for an internal _EGLConfig.
+ * This is the inverse of _eglLookupConfig().
+ */
+EGLConfig
+_eglGetConfigHandle(_EGLConfig *config)
+{
+   return  config ? config->Handle : 0;
+}
+
+
 /**
  * Given an EGLConfig handle, return the corresponding _EGLConfig object.
+ * This is the inverse of _eglGetConfigHandle().
  */
 _EGLConfig *
 _eglLookupConfig(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config)
index 88e44dfc7d34e787beed96574f89158fd559f2af..4a8061298054254f2d47d57db48ffea19cc5c464 100644 (file)
@@ -27,6 +27,10 @@ extern void
 _eglInitConfig(_EGLConfig *config, EGLint id);
 
 
+extern EGLConfig
+_eglGetConfigHandle(_EGLConfig *config);
+
+
 extern _EGLConfig *
 _eglLookupConfig(_EGLDriver *drv, EGLDisplay dpy, EGLConfig config);
 
index 59d0bd3dc3ed51ef9046ba80d24e4174e23650cc..fd24f22273985d13cde0497f89b997ff157ec419 100644 (file)
@@ -39,9 +39,24 @@ _eglNewDisplay(NativeDisplayType displayName)
 }
 
 
+/**
+ * Return the public handle for an internal _EGLDisplay.
+ * This is the inverse of _eglLookupDisplay().
+ */
+EGLDisplay
+_eglGetDisplayHandle(_EGLDisplay *display)
+{
+   if (display)
+      return display->Handle;
+   else
+      return EGL_NO_DISPLAY;
+}
+
 /**
  * Return the _EGLDisplay object that corresponds to the given public/
  * opaque display handle.
+ * This is the inverse of _eglGetDisplayHandle().
  */
 _EGLDisplay *
 _eglLookupDisplay(EGLDisplay dpy)
index 1a03fdd4ad906304a7ff0fcb7ffff1d7f10b8716..fe7b788455556b5feb9a6532c3c5717b95246ff6 100644 (file)
@@ -24,6 +24,10 @@ extern _EGLDisplay *
 _eglNewDisplay(NativeDisplayType displayName);
 
 
+EGLDisplay
+_eglGetDisplayHandle(_EGLDisplay *display);
+
+
 extern _EGLDisplay *
 _eglLookupDisplay(EGLDisplay dpy);
 
index 134afa7cbd89a3f1e553481de8c22956363ff296..1dbb12ecfe0cd54fb2fcd27c49160add62f47286 100644 (file)
@@ -223,6 +223,26 @@ _eglRemoveSurface(_EGLSurface *surf)
 }
 
 
+
+/**
+ * Return the public handle for an internal _EGLSurface.
+ * This is the inverse of _eglLookupSurface().
+ */
+EGLSurface
+_eglGetSurfaceHandle(_EGLSurface *surface)
+{
+   if (surface)
+      return surface->Handle;
+   else
+      return EGL_NO_SURFACE;
+}
+
+
+/**
+ * Return the private _EGLSurface which corresponds to a public EGLSurface
+ * handle.
+ * This is the inverse of _eglGetSurfaceHandle().
+ */
 _EGLSurface *
 _eglLookupSurface(EGLSurface surf)
 {
index 79abeca0b2acf60a294509f5d93f96091c55008f..df1e70122e25c5c5d746206d3bc4b96c9f0c25e8 100644 (file)
@@ -51,6 +51,10 @@ extern void
 _eglRemoveSurface(_EGLSurface *surf);
 
 
+extern EGLSurface
+_eglGetSurfaceHandle(_EGLSurface *surface);
+
+
 extern _EGLSurface *
 _eglLookupSurface(EGLSurface surf);