diff options
author | Kyle Brenneman <kbrenneman@nvidia.com> | 2018-01-10 13:05:44 -0500 |
---|---|---|
committer | Adam Jackson <ajax@redhat.com> | 2018-02-14 17:04:35 -0500 |
commit | 8753218beae641e5c5ac2c2ba598cfb99a893cf4 (patch) | |
tree | 86dea0de50f26d27e1bd280035e2f727e9b63219 /glx/vndservervendor.h | |
parent | d1fdddeb76328ab84d9a181a5c72b90013f0f0a6 (diff) |
glx: Import glxvnd server module (v2)
This is based on an out-of-tree module written by Kyle:
https://github.com/kbrenneman/libglvnd/tree/server-libglx
I (ajax) did a bunch of cosmetic fixes, ported it off xfree86 API,
added request length checks, and fixed a minor bug or two.
v2: Use separate functions to set/get a context tag's private data, and
call the backend's MakeCurrent when a client disconnects to unbind the
context. (Kyle Brenneman)
Signed-off-by: Adam Jackson <ajax@redhat.com>
Diffstat (limited to 'glx/vndservervendor.h')
-rw-r--r-- | glx/vndservervendor.h | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/glx/vndservervendor.h b/glx/vndservervendor.h new file mode 100644 index 000000000..77cb983a6 --- /dev/null +++ b/glx/vndservervendor.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2016, NVIDIA CORPORATION. + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and/or associated documentation files (the + * "Materials"), to deal in the Materials without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Materials, and to + * permit persons to whom the Materials are furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be included + * unaltered in all copies or substantial portions of the Materials. + * Any additions, deletions, or changes to the original source files + * must be clearly indicated in accompanying documentation. + * + * If only executable code is distributed, then the accompanying + * documentation must state that "this software is based in part on the + * work of the Khronos Group." + * + * THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. + */ + +#ifndef VND_SERVER_VENDOR_H +#define VND_SERVER_VENDOR_H + +#include <dix-config.h> + +#include "glxvndabi.h" +#include "list.h" + +#if defined(__cplusplus) +extern "C" { +#endif + +/** + * Info related to a single vendor library. + */ +struct GlxServerVendorRec { + GlxServerImports glxvc; + + struct xorg_list entry; +}; + +/** + * A linked list of vendor libraries. + * + * Note that this list only includes vendor libraries that were successfully + * initialized. + */ +extern struct xorg_list GlxVendorList; + +GlxServerVendor *GlxCreateVendor(const GlxServerImports *imports); +void GlxDestroyVendor(GlxServerVendor *vendor); + +void GlxVendorExtensionReset(const ExtensionEntry *extEntry); + +#if defined(__cplusplus) +} +#endif + +#endif // VND_SERVER_VENDOR_H |