egldriver.h revision c56e15b093c367e7e17ebd2e153baab8cafd213a
1adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#ifndef EGLDRIVER_INCLUDED 2adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#define EGLDRIVER_INCLUDED 3adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 4adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 5adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#include "egltypedefs.h" 6daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul#include "eglapi.h" 7e084fe54f93c9d51df99812b76d3299b0cff57a3Brian Paul#include "egldefines.h" 851ac95ba8945711cf65e94a2deba6c896dea5f0eBrian Paul 9adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 10adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul/** 115285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul * Optional EGL extensions info. 125285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul */ 135285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paulstruct _egl_extensions 145285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul{ 155285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul EGLBoolean MESA_screen_surface; 165285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul EGLBoolean MESA_copy_context; 175285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul 18e084fe54f93c9d51df99812b76d3299b0cff57a3Brian Paul char String[_EGL_MAX_EXTENSIONS_LEN]; 195285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul}; 205285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul 215285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul 225285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul/** 23adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul * Base class for device drivers. 24adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul */ 25adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulstruct _egl_driver 26adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul{ 27c56e15b093c367e7e17ebd2e153baab8cafd213aBrian Paul EGLBoolean Initialized; /**< set by driver after initialized */ 28adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 29c56e15b093c367e7e17ebd2e153baab8cafd213aBrian Paul void *LibHandle; /**< dlopen handle */ 30adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 31adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul _EGLDisplay *Display; 32adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 33c56e15b093c367e7e17ebd2e153baab8cafd213aBrian Paul int APImajor, APIminor; /**< as returned by eglInitialize() */ 34c56e15b093c367e7e17ebd2e153baab8cafd213aBrian Paul char Version[10]; /**< initialized from APImajor/minor */ 35c56e15b093c367e7e17ebd2e153baab8cafd213aBrian Paul 36b2006a40eb22899d38cd31691640555228e36975Brian Paul const char *ClientAPIs; 37adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 38c56e15b093c367e7e17ebd2e153baab8cafd213aBrian Paul _EGLAPI API; /**< EGL API dispatch table */ 3951ac95ba8945711cf65e94a2deba6c896dea5f0eBrian Paul 405285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul _EGLExtensions Extensions; 41adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul}; 42adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 43adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 440c8908c411c434eda318b41b4f2a370a1e794831Brian Paulextern _EGLDriver *_eglMain(_EGLDisplay *dpy, const char *args); 45adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 46adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 476052af172f0241e6678cd16efac0a0f14f40146cBrian Paulextern const char * 486052af172f0241e6678cd16efac0a0f14f40146cBrian Paul_eglChooseDriver(_EGLDisplay *dpy); 49adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 50adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 51adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern _EGLDriver * 520c8908c411c434eda318b41b4f2a370a1e794831Brian Paul_eglOpenDriver(_EGLDisplay *dpy, const char *driverName, const char *args); 53adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 54adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 55adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern EGLBoolean 56adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglCloseDriver(_EGLDriver *drv, EGLDisplay dpy); 57adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 58adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 59adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern _EGLDriver * 60adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglLookupDriver(EGLDisplay d); 61adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 62adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 63adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern void 64adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglInitDriverFallbacks(_EGLDriver *drv); 65adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 66adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 67adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern const char * 68adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglQueryString(_EGLDriver *drv, EGLDisplay dpy, EGLint name); 69adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 70adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 71adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern EGLBoolean 72adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglWaitGL(_EGLDriver *drv, EGLDisplay dpy); 73adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 74adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 75adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern EGLBoolean 76adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglWaitNative(_EGLDriver *drv, EGLDisplay dpy, EGLint engine); 77adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 78adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 79adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 80adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#endif /* EGLDRIVER_INCLUDED */ 81