libglvnd/src/EGL/libeglvendor.h
Emil Velikov b559273fbd EGL: detect platform gbm vendor capability
Signed-off-by: Emil Velikov <emil.velikov@collabora.com>
2017-06-07 17:43:56 +01:00

52 lines
1.2 KiB
C

#ifndef LIBEGLVENDOR_H
#define LIBEGLVENDOR_H
#include "libeglabipriv.h"
#include "GLdispatch.h"
#include "lkdhash.h"
#include "glvnd_list.h"
#include "winsys_dispatch.h"
extern const __EGLapiExports __eglExportsTable;
/*!
* Structure containing relevant per-vendor information.
*/
struct __EGLvendorInfoRec {
int vendorID; //< unique GLdispatch ID
void *dlhandle; //< shared library handle
__GLVNDwinsysVendorDispatch *dynDispatch;
// TODO: Should this have a separate dispatch table for GL and GLES?
__GLdispatchTable *glDispatch; //< GL dispatch table
__EGLapiImports eglvc;
__EGLdispatchTableStatic staticDispatch; //< static EGL dispatch table
EGLBoolean patchSupported;
__GLdispatchPatchCallbacks patchCallbacks;
EGLBoolean supportsGL;
EGLBoolean supportsGLES;
EGLBoolean supportsDevice;
EGLBoolean supportsPlatformDevice;
EGLBoolean supportsPlatformGbm;
EGLBoolean supportsPlatformX11;
EGLBoolean supportsPlatformWayland;
struct glvnd_list entry;
};
void __eglInitVendors(void);
void __eglTeardownVendors(void);
/**
* Selects and loads the vendor libraries.
*
* \return A linked list of __EGLvendorInfo structs.
*/
struct glvnd_list *__eglLoadVendors(void);
#endif // LIBEGLVENDOR_H