1*61046927SAndroid Build Coastguard Worker #ifndef __glx_glvnd_dispatch_funcs_h__
2*61046927SAndroid Build Coastguard Worker #define __glx_glvnd_dispatch_funcs_h__
3*61046927SAndroid Build Coastguard Worker /*
4*61046927SAndroid Build Coastguard Worker * Helper functions used by g_glxglvnddispatchfuncs.c.
5*61046927SAndroid Build Coastguard Worker */
6*61046927SAndroid Build Coastguard Worker #include "glvnd/libglxabi.h"
7*61046927SAndroid Build Coastguard Worker #include "glxglvnd.h"
8*61046927SAndroid Build Coastguard Worker
9*61046927SAndroid Build Coastguard Worker #define __VND __glXGLVNDAPIExports
10*61046927SAndroid Build Coastguard Worker
AddFBConfigMapping(Display * dpy,GLXFBConfig config,__GLXvendorInfo * vendor)11*61046927SAndroid Build Coastguard Worker static inline int AddFBConfigMapping(Display *dpy, GLXFBConfig config,
12*61046927SAndroid Build Coastguard Worker __GLXvendorInfo *vendor)
13*61046927SAndroid Build Coastguard Worker {
14*61046927SAndroid Build Coastguard Worker return __VND->addVendorFBConfigMapping(dpy, config, vendor);
15*61046927SAndroid Build Coastguard Worker }
16*61046927SAndroid Build Coastguard Worker
AddFBConfigsMapping(Display * dpy,const GLXFBConfig * ret,int * nelements,__GLXvendorInfo * vendor)17*61046927SAndroid Build Coastguard Worker static inline int AddFBConfigsMapping(Display *dpy, const GLXFBConfig *ret,
18*61046927SAndroid Build Coastguard Worker int *nelements, __GLXvendorInfo *vendor)
19*61046927SAndroid Build Coastguard Worker {
20*61046927SAndroid Build Coastguard Worker int i, r;
21*61046927SAndroid Build Coastguard Worker
22*61046927SAndroid Build Coastguard Worker if (!nelements || !ret)
23*61046927SAndroid Build Coastguard Worker return 0;
24*61046927SAndroid Build Coastguard Worker
25*61046927SAndroid Build Coastguard Worker for (i = 0; i < *nelements; i++) {
26*61046927SAndroid Build Coastguard Worker r = __VND->addVendorFBConfigMapping(dpy, ret[i], vendor);
27*61046927SAndroid Build Coastguard Worker if (r) {
28*61046927SAndroid Build Coastguard Worker for (; i >= 0; i--)
29*61046927SAndroid Build Coastguard Worker __VND->removeVendorFBConfigMapping(dpy, ret[i]);
30*61046927SAndroid Build Coastguard Worker break;
31*61046927SAndroid Build Coastguard Worker }
32*61046927SAndroid Build Coastguard Worker }
33*61046927SAndroid Build Coastguard Worker return r;
34*61046927SAndroid Build Coastguard Worker }
35*61046927SAndroid Build Coastguard Worker
AddDrawableMapping(Display * dpy,GLXDrawable drawable,__GLXvendorInfo * vendor)36*61046927SAndroid Build Coastguard Worker static inline int AddDrawableMapping(Display *dpy, GLXDrawable drawable,
37*61046927SAndroid Build Coastguard Worker __GLXvendorInfo *vendor)
38*61046927SAndroid Build Coastguard Worker {
39*61046927SAndroid Build Coastguard Worker return __VND->addVendorDrawableMapping(dpy, drawable, vendor);
40*61046927SAndroid Build Coastguard Worker }
41*61046927SAndroid Build Coastguard Worker
AddContextMapping(Display * dpy,GLXContext ctx,__GLXvendorInfo * vendor)42*61046927SAndroid Build Coastguard Worker static inline int AddContextMapping(Display *dpy, GLXContext ctx,
43*61046927SAndroid Build Coastguard Worker __GLXvendorInfo *vendor)
44*61046927SAndroid Build Coastguard Worker {
45*61046927SAndroid Build Coastguard Worker return __VND->addVendorContextMapping(dpy, ctx, vendor);
46*61046927SAndroid Build Coastguard Worker }
47*61046927SAndroid Build Coastguard Worker
GetDispatchFromDrawable(Display * dpy,GLXDrawable drawable)48*61046927SAndroid Build Coastguard Worker static inline __GLXvendorInfo *GetDispatchFromDrawable(Display *dpy,
49*61046927SAndroid Build Coastguard Worker GLXDrawable drawable)
50*61046927SAndroid Build Coastguard Worker {
51*61046927SAndroid Build Coastguard Worker return __VND->vendorFromDrawable(dpy, drawable);
52*61046927SAndroid Build Coastguard Worker }
53*61046927SAndroid Build Coastguard Worker
GetDispatchFromContext(GLXContext ctx)54*61046927SAndroid Build Coastguard Worker static inline __GLXvendorInfo *GetDispatchFromContext(GLXContext ctx)
55*61046927SAndroid Build Coastguard Worker {
56*61046927SAndroid Build Coastguard Worker return __VND->vendorFromContext(ctx);
57*61046927SAndroid Build Coastguard Worker }
58*61046927SAndroid Build Coastguard Worker
GetDispatchFromFBConfig(Display * dpy,GLXFBConfig config)59*61046927SAndroid Build Coastguard Worker static inline __GLXvendorInfo *GetDispatchFromFBConfig(Display *dpy, GLXFBConfig config)
60*61046927SAndroid Build Coastguard Worker {
61*61046927SAndroid Build Coastguard Worker return __VND->vendorFromFBConfig(dpy, config);
62*61046927SAndroid Build Coastguard Worker }
63*61046927SAndroid Build Coastguard Worker
GetDispatchFromVisual(Display * dpy,const XVisualInfo * visual)64*61046927SAndroid Build Coastguard Worker static inline __GLXvendorInfo *GetDispatchFromVisual(Display *dpy,
65*61046927SAndroid Build Coastguard Worker const XVisualInfo *visual)
66*61046927SAndroid Build Coastguard Worker {
67*61046927SAndroid Build Coastguard Worker return __VND->getDynDispatch(dpy, visual->screen);
68*61046927SAndroid Build Coastguard Worker }
69*61046927SAndroid Build Coastguard Worker
70*61046927SAndroid Build Coastguard Worker #endif // __glx_glvnd_dispatch_funcs_h__
71