Path: blob/21.2-virgl/src/glx/glxglvnddispatchfuncs.h
4558 views
#ifndef __glx_glvnd_dispatch_funcs_h__1#define __glx_glvnd_dispatch_funcs_h__2/*3* Helper functions used by g_glxglvnddispatchfuncs.c.4*/5#include "glvnd/libglxabi.h"6#include "glxglvnd.h"78#define __VND __glXGLVNDAPIExports910static inline int AddFBConfigMapping(Display *dpy, GLXFBConfig config,11__GLXvendorInfo *vendor)12{13return __VND->addVendorFBConfigMapping(dpy, config, vendor);14}1516static inline int AddFBConfigsMapping(Display *dpy, const GLXFBConfig *ret,17int *nelements, __GLXvendorInfo *vendor)18{19int i, r;2021if (!nelements || !ret)22return 0;2324for (i = 0; i < *nelements; i++) {25r = __VND->addVendorFBConfigMapping(dpy, ret[i], vendor);26if (r) {27for (; i >= 0; i--)28__VND->removeVendorFBConfigMapping(dpy, ret[i]);29break;30}31}32return r;33}3435static inline int AddDrawableMapping(Display *dpy, GLXDrawable drawable,36__GLXvendorInfo *vendor)37{38return __VND->addVendorDrawableMapping(dpy, drawable, vendor);39}4041static inline int AddContextMapping(Display *dpy, GLXContext ctx,42__GLXvendorInfo *vendor)43{44return __VND->addVendorContextMapping(dpy, ctx, vendor);45}4647static inline __GLXvendorInfo *GetDispatchFromDrawable(Display *dpy,48GLXDrawable drawable)49{50return __VND->vendorFromDrawable(dpy, drawable);51}5253static inline __GLXvendorInfo *GetDispatchFromContext(GLXContext ctx)54{55return __VND->vendorFromContext(ctx);56}5758static inline __GLXvendorInfo *GetDispatchFromFBConfig(Display *dpy, GLXFBConfig config)59{60return __VND->vendorFromFBConfig(dpy, config);61}6263static inline __GLXvendorInfo *GetDispatchFromVisual(Display *dpy,64const XVisualInfo *visual)65{66return __VND->getDynDispatch(dpy, visual->screen);67}6869#endif // __glx_glvnd_dispatch_funcs_h__707172