summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Paul <[email protected]>2008-05-28 15:43:41 -0600
committerBrian Paul <[email protected]>2008-05-28 15:43:41 -0600
commitc56e15b093c367e7e17ebd2e153baab8cafd213a (patch)
treee71df4230edd8cf46d06821d6941009961d77ffa
parent8cd33faee61626de7320efb4e20d95e4cfb7a573 (diff)
egl: make sure EGL_VERSION_STRING query returns same version as eglInitialize()
-rw-r--r--src/egl/main/eglapi.c11
-rw-r--r--src/egl/main/egldefines.h2
-rw-r--r--src/egl/main/egldriver.c2
-rw-r--r--src/egl/main/egldriver.h11
4 files changed, 16 insertions, 10 deletions
diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c
index 984af4ea22e..3151b35156c 100644
--- a/src/egl/main/eglapi.c
+++ b/src/egl/main/eglapi.c
@@ -64,6 +64,7 @@ EGLBoolean EGLAPIENTRY
eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
{
if (dpy) {
+ EGLBoolean retVal;
_EGLDisplay *dpyPriv = _eglLookupDisplay(dpy);
if (!dpyPriv) {
return EGL_FALSE;
@@ -75,8 +76,14 @@ eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)
return EGL_FALSE;
}
/* Initialize the particular driver now */
- return dpyPriv->Driver->API.Initialize(dpyPriv->Driver, dpy,
- major, minor);
+ retVal = dpyPriv->Driver->API.Initialize(dpyPriv->Driver, dpy,
+ major, minor);
+
+ dpyPriv->Driver->APImajor = *major;
+ dpyPriv->Driver->APIminor = *minor;
+ sprintf(dpyPriv->Driver->Version, "%d.%d", *major, *minor);
+
+ return retVal;
}
return EGL_FALSE;
}
diff --git a/src/egl/main/egldefines.h b/src/egl/main/egldefines.h
index f5d37a2fc06..8fc2301b795 100644
--- a/src/egl/main/egldefines.h
+++ b/src/egl/main/egldefines.h
@@ -38,8 +38,6 @@
#define _EGL_MAX_EXTENSIONS_LEN 1000
-#define _EGL_VERSION_STRING "1.4"
-
#define _EGL_VENDOR_STRING "Mesa Project"
diff --git a/src/egl/main/egldriver.c b/src/egl/main/egldriver.c
index 6d533625b7d..2257a686307 100644
--- a/src/egl/main/egldriver.c
+++ b/src/egl/main/egldriver.c
@@ -306,7 +306,7 @@ _eglQueryString(_EGLDriver *drv, EGLDisplay dpy, EGLint name)
case EGL_VENDOR:
return _EGL_VENDOR_STRING;
case EGL_VERSION:
- return _EGL_VERSION_STRING;
+ return drv->Version;
case EGL_EXTENSIONS:
_eglUpdateExtensionsString(drv);
return drv->Extensions.String;
diff --git a/src/egl/main/egldriver.h b/src/egl/main/egldriver.h
index 67cfb02f46a..9395a667ab3 100644
--- a/src/egl/main/egldriver.h
+++ b/src/egl/main/egldriver.h
@@ -24,17 +24,18 @@ struct _egl_extensions
*/
struct _egl_driver
{
- EGLBoolean Initialized; /* set by driver after initialized */
+ EGLBoolean Initialized; /**< set by driver after initialized */
- void *LibHandle; /* dlopen handle */
+ void *LibHandle; /**< dlopen handle */
_EGLDisplay *Display;
- int ABIversion;
- int APImajor, APIminor; /* returned through eglInitialize */
+ int APImajor, APIminor; /**< as returned by eglInitialize() */
+ char Version[10]; /**< initialized from APImajor/minor */
+
const char *ClientAPIs;
- _EGLAPI API;
+ _EGLAPI API; /**< EGL API dispatch table */
_EGLExtensions Extensions;
};