Merge branch '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 #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 */
20 struct _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
35 PUBLIC void
36 _eglInitScreen(_EGLScreen *screen);
37
38
39 extern _EGLScreen *
40 _eglLookupScreen(EGLScreenMESA screen, _EGLDisplay *dpy);
41
42
43 PUBLIC void
44 _eglAddScreen(_EGLDisplay *display, _EGLScreen *screen);
45
46
47 extern EGLBoolean
48 _eglGetScreensMESA(_EGLDriver *drv, _EGLDisplay *dpy, EGLScreenMESA *screens, EGLint max_screens, EGLint *num_screens);
49
50
51 extern _EGLSurface *
52 _eglCreateScreenSurfaceMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLConfig *conf, const EGLint *attrib_list);
53
54
55 extern EGLBoolean
56 _eglShowScreenSurfaceMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *scrn, _EGLSurface *surf, _EGLMode *m);
57
58
59 extern EGLBoolean
60 _eglScreenModeMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *scrn, _EGLMode *m);
61
62
63 extern EGLBoolean
64 _eglScreenPositionMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *scrn, EGLint x, EGLint y);
65
66
67 extern EGLBoolean
68 _eglQueryDisplayMESA(_EGLDriver *drv, _EGLDisplay *dpy, EGLint attribute, EGLint *value);
69
70
71 extern EGLBoolean
72 _eglQueryScreenSurfaceMESA(_EGLDriver *drv, _EGLDisplay *dpy,
73 _EGLScreen *scrn, _EGLSurface **surface);
74
75
76 extern EGLBoolean
77 _eglQueryScreenModeMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *scrn, _EGLMode **m);
78
79
80 extern EGLBoolean
81 _eglQueryScreenMESA(_EGLDriver *drv, _EGLDisplay *dpy, _EGLScreen *scrn, EGLint attribute, EGLint *value);
82
83
84 extern void
85 _eglDestroyScreenModes(_EGLScreen *scrn);
86
87
88 PUBLIC void
89 _eglDestroyScreen(_EGLScreen *scrn);
90
91
92 #endif /* EGL_MESA_screen_surface */
93
94
95 #endif /* EGLSCREEN_INCLUDED */