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