diff options
Diffstat (limited to 'glx/vndext.c')
-rw-r--r-- | glx/vndext.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/glx/vndext.c b/glx/vndext.c index d7936467b..0513733b6 100644 --- a/glx/vndext.c +++ b/glx/vndext.c @@ -139,8 +139,17 @@ GlxGetClientData(ClientPtr client) { GlxClientPriv *cl = xglvGetClientPrivate(client); if (cl == NULL) { - cl = calloc(1, sizeof(GlxClientPriv)); + cl = calloc(1, sizeof(GlxClientPriv) + + screenInfo.numScreens * sizeof(GlxServerVendor *)); if (cl != NULL) { + int i; + + cl->vendors = (GlxServerVendor **) (cl + 1); + for (i=0; i<screenInfo.numScreens; i++) + { + cl->vendors[i] = GlxGetVendorForScreen(NULL, screenInfo.screens[i]); + } + xglvSetClientPrivate(client, cl); } } @@ -295,8 +304,8 @@ GlxFreeServerImports(GlxServerImports *imports) } _X_EXPORT const GlxServerExports glxServer = { - .majorVersion = 0, - .minorVersion = 0, + .majorVersion = GLXSERVER_VENDOR_ABI_MAJOR_VERSION, + .minorVersion = GLXSERVER_VENDOR_ABI_MINOR_VERSION, .extensionInitCallback = &vndInitCallbackListPtr, @@ -315,6 +324,7 @@ _X_EXPORT const GlxServerExports glxServer = { .getContextTagPrivate = GlxGetContextTagPrivate, .getVendorForScreen = GlxGetVendorForScreen, .forwardRequest = GlxForwardRequest, + .setClientScreenVendor = GlxSetClientScreenVendor, }; const GlxServerExports * |