eglscreen.h revision 6c7e0b95a4a16d268aa3ca74c5c8407779533314
1#ifndef EGLSCREEN_INCLUDED 2#define EGLSCREEN_INCLUDED 3 4 5#include "egltypedefs.h" 6 7 8#ifdef EGL_MESA_screen_surface 9 10 11/** 12 * Per-screen information. 13 * Note that an EGL screen doesn't have a size. A screen may be set to 14 * one of several display modes (width/height/scanrate). The screen 15 * then displays a drawing surface. The drawing surface must be at least 16 * as large as the display mode's resolution. If it's larger, the 17 * OriginX and OriginY fields control what part of the surface is visible 18 * on the screen. 19 */ 20struct _egl_screen 21{ 22 EGLScreenMESA Handle; /* The public/opaque handle which names this object */ 23 24 _EGLMode *CurrentMode; 25 _EGLSurface *CurrentSurface; 26 27 EGLint OriginX, OriginY; /**< Origin of scan-out region w.r.t. surface */ 28 EGLint StepX, StepY; /**< Screen position/origin granularity */ 29 30 EGLint NumModes; 31 _EGLMode *Modes; /**< array [NumModes] */ 32}; 33 34 35PUBLIC void 36_eglInitScreen(_EGLScreen *screen); 37 38 39extern _EGLScreen * 40_eglLookupScreen(EGLScreenMESA screen, _EGLDisplay *dpy); 41 42 43PUBLIC void 44_eglAddScreen(_EGLDisplay *display, _EGLScreen *screen); 45 46 47extern EGLBoolean 48_eglGetScreensMESA(_EGLDriver *drv, _EGLDisplay *dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens); 49 50 51extern _EGLSurface * 52_eglCreateScreenSurfaceMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, const EGLint *attrib_list); 53 54 55extern EGLBoolean 56_eglShowScreenSurfaceMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *scrn, _EGLSurface *surf, _EGLMode *m); 57 58 59extern EGLBoolean 60_eglScreenModeMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *scrn, _EGLMode *m); 61 62 63extern EGLBoolean 64_eglScreenPositionMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *scrn, EGLint x, EGLint y); 65 66 67extern EGLBoolean 68_eglQueryDisplayMESA(_EGLDriver *drv, _EGLDisplay *dpy, EGLint attribute, EGLint *value); 69 70 71extern EGLBoolean 72_eglQueryScreenSurfaceMESA(_EGLDriver *drv, _EGLDisplay *dpy, 73 _EGLScreen *scrn, _EGLSurface **surface); 74 75 76extern EGLBoolean 77_eglQueryScreenModeMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *scrn, _EGLMode **m); 78 79 80extern EGLBoolean 81_eglQueryScreenMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *scrn, EGLint attribute, EGLint *value); 82 83 84extern void 85_eglDestroyScreenModes(_EGLScreen *scrn); 86 87 88PUBLIC void 89_eglDestroyScreen(_EGLScreen *scrn); 90 91 92#endif /* EGL_MESA_screen_surface */ 93 94 95#endif /* EGLSCREEN_INCLUDED */ 96