EGL_EXT_platform_query only defines one value for <name> at the moment, so just implement that.
Signed-off-by: Jonny Lamb <[email protected]> --- src/egl/main/eglapi.c | 9 ++++++++- src/egl/main/egldevice.c | 30 ++++++++++++++++++++++++++++++ src/egl/main/egldevice.h | 4 ++++ 3 files changed, 42 insertions(+), 1 deletion(-) diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c index 0b826d4..17ecd8a 100644 --- a/src/egl/main/eglapi.c +++ b/src/egl/main/eglapi.c @@ -1839,7 +1839,14 @@ static const char * EGLAPIENTRY eglQueryDeviceStringEXT(EGLDeviceEXT device, EGLint name) { - RETURN_EGL_SUCCESS(NULL, "eglQueryDeviceStringEXT"); + _EGLDevice *dev; + const char *ret; + + _EGL_CHECK_DEVICE(device, NULL, dev); + + ret = _eglQueryDeviceStringEXT(dev, name); + + RETURN_EGL_SUCCESS(NULL, ret); } static EGLBoolean EGLAPIENTRY diff --git a/src/egl/main/egldevice.c b/src/egl/main/egldevice.c index 5fb3a1a..cf83847 100644 --- a/src/egl/main/egldevice.c +++ b/src/egl/main/egldevice.c @@ -46,6 +46,8 @@ typedef struct { _EGLDevice *devices; EGLBoolean got_devices; + const char *extensions; + #ifdef HAVE_LIBUDEV struct udev *udev; #endif @@ -71,6 +73,10 @@ _eglEnsureDeviceInfo(EGLBoolean get_devices) info->devices = NULL; info->got_devices = EGL_FALSE; + /* update this string like in eglglobals.c to add support for a device + * extension */ + info->extensions = ""; + #ifdef HAVE_LIBUDEV info->udev = NULL; #endif @@ -206,6 +212,30 @@ _eglFiniDeviceInfo(void) _eglGlobal.DeviceInfo = NULL; } +/** + * Get string about a specific device. + */ +const char * +_eglQueryDeviceStringEXT(_EGLDevice *device, EGLint name) +{ + _EGLDeviceInfo *info; + + info =_eglEnsureDeviceInfo(EGL_FALSE); + if (!info) { + _eglError(EGL_BAD_ALLOC, "eglQueryDeviceStringEXT"); + return NULL; + } + + switch (name) { + case EGL_EXTENSIONS: + return info->extensions; + + default: + _eglError(EGL_BAD_PARAMETER, "eglQueryDeviceStringEXT"); + return NULL; + }; +} + static EGLBoolean _eglFillDeviceList(_EGLDeviceInfo *info) { diff --git a/src/egl/main/egldevice.h b/src/egl/main/egldevice.h index 5ea2df8..51c6066 100644 --- a/src/egl/main/egldevice.h +++ b/src/egl/main/egldevice.h @@ -48,6 +48,10 @@ _EGLDevice * _eglLookupDevice(EGLDeviceEXT device); +const char * +_eglQueryDeviceStringEXT(_EGLDevice *device, EGLint name); + + EGLBoolean _eglQueryDevicesEXT(EGLint max_devices, _EGLDevice **devices, EGLint *num_devices); -- 2.4.6 _______________________________________________ mesa-dev mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/mesa-dev
