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