2a99f23c50a24952e0c3d1b05ebd85c41e503a3b
1 #ifndef EGLSCREEN_INCLUDED
2 #define EGLSCREEN_INCLUDED
5 #include "egltypedefs.h"
8 #ifdef EGL_MESA_screen_surface
11 #define _EGL_SCREEN_MAX_MODES 16
15 * Per-screen information.
16 * Note that an EGL screen doesn't have a size. A screen may be set to
17 * one of several display modes (width/height/scanrate). The screen
18 * then displays a drawing surface. The drawing surface must be at least
19 * as large as the display mode's resolution. If it's larger, the
20 * OriginX and OriginY fields control what part of the surface is visible
27 EGLScreenMESA Handle
; /* The public/opaque handle which names this object */
29 _EGLMode
*CurrentMode
;
30 _EGLSurface
*CurrentSurface
;
32 EGLint OriginX
, OriginY
; /**< Origin of scan-out region w.r.t. surface */
33 EGLint StepX
, StepY
; /**< Screen position/origin granularity */
36 _EGLMode
*Modes
; /**< array [NumModes] */
41 _eglInitScreen(_EGLScreen
*screen
, _EGLDisplay
*dpy
, EGLint num_modes
);
45 _eglLinkScreen(_EGLScreen
*screen
);
49 _eglLookupScreen(EGLScreenMESA screen
, _EGLDisplay
*dpy
);
53 * Return the handle of a linked screen.
55 static INLINE EGLScreenMESA
56 _eglGetScreenHandle(_EGLScreen
*screen
)
58 return (screen
) ? screen
->Handle
: (EGLScreenMESA
) 0;
63 _eglGetScreensMESA(_EGLDriver
*drv
, _EGLDisplay
*dpy
, EGLScreenMESA
*screens
, EGLint max_screens
, EGLint
*num_screens
);
67 _eglScreenPositionMESA(_EGLDriver
*drv
, _EGLDisplay
*dpy
, _EGLScreen
*scrn
, EGLint x
, EGLint y
);
71 _eglQueryScreenSurfaceMESA(_EGLDriver
*drv
, _EGLDisplay
*dpy
,
72 _EGLScreen
*scrn
, _EGLSurface
**surface
);
76 _eglQueryScreenModeMESA(_EGLDriver
*drv
, _EGLDisplay
*dpy
, _EGLScreen
*scrn
, _EGLMode
**m
);
80 _eglQueryScreenMESA(_EGLDriver
*drv
, _EGLDisplay
*dpy
, _EGLScreen
*scrn
, EGLint attribute
, EGLint
*value
);
83 #endif /* EGL_MESA_screen_surface */
86 #endif /* EGLSCREEN_INCLUDED */