egldriver.h revision b2006a40eb22899d38cd31691640555228e36975
1adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#ifndef EGLDRIVER_INCLUDED 2adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#define EGLDRIVER_INCLUDED 3adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 4adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 5adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#include "egltypedefs.h" 6daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul#include "eglapi.h" 7adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 85285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul/* should probably use a dynamic-length string, but this will do */ 951ac95ba8945711cf65e94a2deba6c896dea5f0eBrian Paul#define MAX_EXTENSIONS_LEN 1000 1051ac95ba8945711cf65e94a2deba6c896dea5f0eBrian Paul 11adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 12adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul/** 135285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul * Optional EGL extensions info. 145285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul */ 155285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paulstruct _egl_extensions 165285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul{ 175285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul EGLBoolean MESA_screen_surface; 185285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul EGLBoolean MESA_copy_context; 195285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul 205285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul char String[MAX_EXTENSIONS_LEN]; 215285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul}; 225285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul 235285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul 245285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul/** 25adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul * Base class for device drivers. 26adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul */ 27adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulstruct _egl_driver 28adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul{ 29adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul EGLBoolean Initialized; /* set by driver after initialized */ 30adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 31adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul void *LibHandle; /* dlopen handle */ 32adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 33adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul _EGLDisplay *Display; 34adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 35adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul int ABIversion; 36adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul int APImajor, APIminor; /* returned through eglInitialize */ 37b2006a40eb22899d38cd31691640555228e36975Brian Paul const char *ClientAPIs; 38adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 39daf585d0f00df1d4d2e8dc5b465dad60a4bf0122Brian Paul _EGLAPI API; 4051ac95ba8945711cf65e94a2deba6c896dea5f0eBrian Paul 415285c32a17a8ec260dcb5d412d862e50bced0ce9Brian Paul _EGLExtensions Extensions; 42adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul}; 43adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 44adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 45485528f2acb69940a7c757638127f716c0cb2654Jon Smirlextern _EGLDriver *_eglMain(_EGLDisplay *dpy); 46adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 47adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 48adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern _EGLDriver * 49adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglChooseDriver(EGLDisplay dpy); 50adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 51adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 52adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern _EGLDriver * 53adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglOpenDriver(_EGLDisplay *dpy, const char *driverName); 54adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 55adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 56adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern EGLBoolean 57adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglCloseDriver(_EGLDriver *drv, EGLDisplay dpy); 58adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 59adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 60adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern _EGLDriver * 61adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglLookupDriver(EGLDisplay d); 62adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 63adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 64adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern void 65adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglInitDriverFallbacks(_EGLDriver *drv); 66adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 67adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 68adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern const char * 69adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglQueryString(_EGLDriver *drv, EGLDisplay dpy, EGLint name); 70adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 71adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 72adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern EGLBoolean 73adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglWaitGL(_EGLDriver *drv, EGLDisplay dpy); 74adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 75adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 76adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paulextern EGLBoolean 77adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul_eglWaitNative(_EGLDriver *drv, EGLDisplay dpy, EGLint engine); 78adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 79adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 80adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul 81adbff7e977c7c768e752a24fb643d68bdf961bfeBrian Paul#endif /* EGLDRIVER_INCLUDED */ 82