Lines Matching +full:vendor +full:- +full:id

33  * Defines the interface between the libglvnd server module and a vendor
36 * Each screen may have one vendor library assigned to it. The GLVND module
38 * it will forward that request to whichever vendor is assigned to that screen.
40 * Each vendor library is represented by an opaque __GLXServerVendor handle.
45 * InitExtensions. Drivers should use that callback to assign a vendor
49 * - If a request has one or more GLXContextTag values, then the dispatch stub
50 * must ensure that all of the tags belong to the vendor that it forwards the
51 * request to. Otherwise, if a vendor library tries to look up the private
52 * data for the tag, it could get the data from another vendor and crash.
53 * - Following from the last point, if a request takes a GLXContextTag value,
54 * then the dispatch stub should use the tag to select a vendor. If the
55 * request takes two or more tags, then the vendor must ensure that they all
56 * map to the same vendor.
69 * This version number contains a major number in the high-order 16 bits, and
70 * a minor version number in the low-order 16 bits.
73 * backwards compatibility with existing vendor libraries. The minor version
74 * number is incremented when there's a change but existing vendor libraries
85 * An opaque pointer representing a vendor library.
94 * Functions exported by libglvnd to the vendor library.
105 * assign a vendor to a screen from this callback.
129 * Creates a new vendor library handle.
134 * Destroys a vendor library handle.
136 * This function may not be called while the vendor handle is assigned to a
140 void (* destroyVendor) (GlxServerVendor *vendor);
143 * Sets the vendor library to use for a screen.
148 Bool (* setScreenVendor) (ScreenPtr screen, GlxServerVendor *vendor);
156 * Client-generated XID's (contexts, drawables, etc) must be added to the
159 * XID's that are generated in the server should be added by the vendor
162 * Vendor libraries are responsible for keeping track of any additional
165 * Note that adding GLXFBConfig ID's appears to be unnecessary -- every GLX
168 * \param id The XID to add to the map. The XID must not already be in the
170 * \param vendor The vendor library to associate with \p id.
173 Bool (* addXIDMap) (XID id, GlxServerVendor *vendor);
176 * Returns the vendor and data for an XID, as added with \c addXIDMap.
178 * If \p id wasn't added with \c addXIDMap (for example, if it's a regular
180 * the vendor for whatever screen it's on.
182 * \param id The XID to look up.
183 * \return The vendor that owns the XID, or \c NULL if no matching vendor
186 GlxServerVendor * (* getXIDMap) (XID id);
191 void (* removeXIDMap) (XID id);
201 * \return The vendor that owns the context tag, or \c NULL if the context
207 * Assigns a pointer to vendor-private data for a context tag.
233 * Forwards a request to a vendor library.
235 * \param vendor The vendor to send the request to.
238 int (* forwardRequest) (GlxServerVendor *vendor, ClientPtr client);
241 * Sets the vendor library to use for a screen for a specific client.
243 * This function changes which vendor should handle GLX requests for a
249 Bool (* setClientScreenVendor) (ClientPtr client, ScreenPtr screen, GlxServerVendor *vendor);
255 * Functions exported by the vendor library to libglvnd.
263 * Note that this is called after freeing all of GLVND's per-screen data,
264 * so the callback may destroy any vendor handles.
266 * If the server is exiting, then GLVND will free any remaining vendor
280 * \param vendorCode The vendor opcode, if \p minorOpcode
282 * \return A dispatch function, or NULL if the vendor doesn't support this
290 * This function is called to handle any MakeCurrent request. The vendor
291 * library should deal with changing the current context. After the vendor
298 * tag and pass it to the vendor library.
300 * The vendor can use \c __GLXserverExports::getContextTagPrivate to look
303 * Likewise, the vendor can use \c __GLXserverExports::setContextTagPrivate