~mmach/netext73/mesa-haswell

« back to all changes in this revision

Viewing changes to src/glx/glxglvnddispatchfuncs.h

  • Committer: mmach
  • Date: 2022-09-22 19:56:13 UTC
  • Revision ID: netbit73@gmail.com-20220922195613-wtik9mmy20tmor0i
2022-09-22 21:17:09

Show diffs side-by-side

added added

removed removed

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