egldriver.h revision daf585d0f00df1d4d2e8dc5b465dad60a4bf0122
15a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org#ifndef EGLDRIVER_INCLUDED
25a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org#define EGLDRIVER_INCLUDED
35a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
45a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
55a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org#include "egltypedefs.h"
65a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org#include "eglapi.h"
75a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
85a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org/* should probably use a dynamic-lengh string, but this will do */
95a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org#define MAX_EXTENSIONS_LEN 1000
105a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
115a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
125a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org/**
135a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org * Base class for device drivers.
145a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org */
155a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.orgstruct _egl_driver
165a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org{
175a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org   EGLBoolean Initialized; /* set by driver after initialized */
185a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
195a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org   void *LibHandle; /* dlopen handle */
205a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
215a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org   _EGLDisplay *Display;
225a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
235a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org   int ABIversion;
245a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org   int APImajor, APIminor; /* returned through eglInitialize */
255a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
265a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org   _EGLAPI API;
275a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
285a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org   /* Extension enable flags */
29a74f0daeb278665869b4b6a3bc2739e88fed93b1ager@chromium.org   EGLBoolean MESA_screen_surface;
30bb29dc9819bb6f495ab6eddd2543965eb97a8e43ager@chromium.org   EGLBoolean MESA_copy_context;
31a74f0daeb278665869b4b6a3bc2739e88fed93b1ager@chromium.org
325a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org   /* Extensions string */
3337abdec9cad6edeba05b5c7a9ff73c25f5df2b70christian.plesner.hansen@gmail.com   char Extensions[MAX_EXTENSIONS_LEN];
345a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org};
355a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
365a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
37ddb913d619a6e602f53dd17b0fe71158ce66888dager@chromium.orgextern _EGLDriver *_eglMain(_EGLDisplay *dpy);
385a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
395a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
405a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.orgextern _EGLDriver *
415a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org_eglChooseDriver(EGLDisplay dpy);
425a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
435a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
445a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.orgextern _EGLDriver *
455a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org_eglOpenDriver(_EGLDisplay *dpy, const char *driverName);
465a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
475a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
485a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.orgextern EGLBoolean
495a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org_eglCloseDriver(_EGLDriver *drv, EGLDisplay dpy);
505a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
515a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
525a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.orgextern _EGLDriver *
535a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org_eglLookupDriver(EGLDisplay d);
545a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
555a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
565a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.orgextern void
575a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org_eglInitDriverFallbacks(_EGLDriver *drv);
585a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
595a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
605a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.orgextern const char *
615a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org_eglQueryString(_EGLDriver *drv, EGLDisplay dpy, EGLint name);
625a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
635a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
645a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.orgextern EGLBoolean
655a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org_eglWaitGL(_EGLDriver *drv, EGLDisplay dpy);
665a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
675a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
685a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.orgextern EGLBoolean
695a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org_eglWaitNative(_EGLDriver *drv, EGLDisplay dpy, EGLint engine);
705a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
715a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
725a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org
735a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org#endif /* EGLDRIVER_INCLUDED */
745a8ca6c70c6fc9716f18f6223c98d1fef5752cf6kasperl@chromium.org