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