xref: /aosp_15_r20/external/mesa3d/src/glx/glxglvnddispatchfuncs.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
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