diff options
author | Hans de Goede <[email protected]> | 2017-03-20 08:41:26 +0100 |
---|---|---|
committer | Hans de Goede <[email protected]> | 2017-05-17 20:02:18 +0200 |
commit | 84f764a7591715104b28c035c837ce9fd86157ad (patch) | |
tree | 66f0da85d15684053d8f78582e22c74a6421c778 /src/glx/g_glxglvnddispatchfuncs.c | |
parent | dce41f7728913aecaecbc318889cabd6dda9d8db (diff) |
glxglvnddispatch: Add missing dispatch for GetDriverConfig
Together with some fixes to xdriinfo this fixes xdriinfo not working
with glvnd.
Since apps (xdriinfo) expect GetDriverConfig to work without going to
need through the dance to setup a glxcontext (which is a reasonable
expectation IMHO), the dispatch for this ends up significantly different
then any other dispatch function.
This patch gets the job done, but I'm not really happy with how this
patch turned out, suggestions for a better fix are welcome.
Cc: Kyle Brenneman <[email protected]>
Signed-off-by: Hans de Goede <[email protected]>
Reviewed-by: Emil Velikov <[email protected]>
Cc: [email protected]
Diffstat (limited to 'src/glx/g_glxglvnddispatchfuncs.c')
-rw-r--r-- | src/glx/g_glxglvnddispatchfuncs.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/glx/g_glxglvnddispatchfuncs.c b/src/glx/g_glxglvnddispatchfuncs.c index b5e33981ade..56d894eda72 100644 --- a/src/glx/g_glxglvnddispatchfuncs.c +++ b/src/glx/g_glxglvnddispatchfuncs.c @@ -4,6 +4,7 @@ */ #include <stdlib.h> +#include "glxclient.h" #include "glxglvnd.h" #include "glxglvnddispatchfuncs.h" #include "g_glxglvnddispatchindices.h" @@ -50,6 +51,7 @@ const char * const __glXDispatchTableStrings[DI_LAST_INDEX] = { __ATTRIB(GetCurrentDisplayEXT), // glXGetCurrentDrawable implemented by libglvnd // glXGetCurrentReadDrawable implemented by libglvnd + __ATTRIB(GetDriverConfig), // glXGetFBConfigAttrib implemented by libglvnd __ATTRIB(GetFBConfigAttribSGIX), __ATTRIB(GetFBConfigFromVisualSGIX), @@ -334,6 +336,17 @@ static Display *dispatch_GetCurrentDisplayEXT(void) +static const char *dispatch_GetDriverConfig(const char *driverName) +{ + /* + * The options are constant for a given driverName, so we do not need + * a context (and apps expect to be able to call this without one). + */ + return glXGetDriverConfig(driverName); +} + + + static int dispatch_GetFBConfigAttribSGIX(Display *dpy, GLXFBConfigSGIX config, int attribute, int *value_return) { @@ -939,6 +952,7 @@ const void * const __glXDispatchFunctions[DI_LAST_INDEX + 1] = { __ATTRIB(DestroyGLXPbufferSGIX), __ATTRIB(GetContextIDEXT), __ATTRIB(GetCurrentDisplayEXT), + __ATTRIB(GetDriverConfig), __ATTRIB(GetFBConfigAttribSGIX), __ATTRIB(GetFBConfigFromVisualSGIX), __ATTRIB(GetMscRateOML), |