Redo _eglInitSurface() so it can be used with all surface types.
[mesa.git] / src / egl / main / eglscreen.h
1 #ifndef EGLSCREEN_INCLUDED
2 #define EGLSCREEN_INCLUDED
3
4
5 /* NOTE: there is no public EGLScreen type, we refers to screens with
6 * an integer.
7 */
8
9
10 /**
11 * Per-screen information.
12 * Note that an EGL screen doesn't have a size. A screen may be set to
13 * one of several display modes (width/height/scanrate). The screen
14 * then displays a drawing surface. The drawing surface must be at least
15 * as large as the display mode's resolution. If it's larger, the
16 * OriginX and OriginY fields control what part of the surface is visible
17 * on the screen.
18 */
19 struct _egl_screen
20 {
21 EGLScreenMESA Handle; /* The public/opaque handle which names this object */
22
23 _EGLMode *CurrentMode;
24 _EGLSurface *CurrentSurface;
25 EGLint OriginX, OriginY;
26
27 EGLint NumModes;
28 _EGLMode *Modes; /* array [NumModes] */
29 };
30
31
32 extern void
33 _eglInitScreen(_EGLScreen *screen);
34
35
36 extern _EGLScreen *
37 _eglLookupScreen(EGLDisplay dpy, EGLScreenMESA screen);
38
39
40 extern 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 config, const EGLint *attrib_list);
50
51
52 extern EGLBoolean
53 _eglShowSurfaceMESA(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, EGLSurface surface, EGLModeMESA mode);
54
55
56 extern EGLBoolean
57 _eglScreenModeMESA(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA mode);
58
59
60 extern EGLBoolean
61 _eglScreenPositionMESA(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, 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 EGLScreenMESA screen, EGLSurface *surface);
71
72
73 extern EGLBoolean
74 _eglQueryScreenModeMESA(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, EGLModeMESA *mode);
75
76
77 extern EGLBoolean
78 _eglQueryScreenMESA(_EGLDriver *drv, EGLDisplay dpy, EGLScreenMESA screen, EGLint attribute, EGLint *value);
79
80
81 extern void
82 _eglDestroyScreenModes(_EGLScreen *scrn);
83
84
85 extern void
86 _eglDestroyScreen(_EGLScreen *scrn);
87
88
89 #endif /* EGLSCREEN_INCLUDED */