meson: produce summary(), require meson 0.53
[mesa-waffle.git] / www / features.html
blob6e2a47ff56af32ffe8136eeab66b82f8ef84dfaf
1 <!DOCTYPE html>
2 <html>
4 <head>
5 <title>Waffle/Features</title>
6 <link href="waffle.css" rel="stylesheet" type="text/css">
7 <meta http-equiv="Content-Type" content="text/html;charset=utf-8">
8 </head>
10 <body>
11 <h1><img src="waffle.jpg" alt="Yummy waffles"/></h1>
13 <h2><a href="index.html">Waffle</a>/Features</h2>
15 <h3>Supported Platforms</h3>
17 <p>Waffle supports the following OpenGL platforms.</p>
19 <ul>
20 <li>Linux Platforms
21 <ul>
22 <li>gbm</em></li>
23 <li>GLX</li>
24 <li>surfaceless</li>
25 <li>X11/EGL</li>
26 <li>Wayland</li>
27 </ul>
28 </li>
29 <li>Windows Platforms
30 <ul>
31 <li>WGL (experimental)</li>
32 </ul>
33 <li>Apple Platforms
34 <ul>
35 <li>MacOS CGL (experimental)</li>
36 </ul>
37 </li>
38 <li>Android (experimental)</li>
39 </ul>
41 <h3>OpenGL API's</h3>
43 <p>Waffle supports creating and managing contexts from the API's below
45 in a platform-independent manner.
47 Of course, the set of supported API's, and the available contexts that can be created for each,
49 are dependent on the native OpenGL platform.
51 For details on the relationship among native system, OpenGL API, and context creation,
53 see the manual page for
55 <a href="man/waffle_config.3.html">waffle_config(3)</a>. </p>
57 <ul>
58 <li>OpenGL</li>
59 <li>OpenGL ES1</li>
60 <li>OpenGL ES2</li>
61 <li>OpenGL ES3</li>
62 </ul>
64 <h3>Access to Backing Native Objects</h3>
66 <p>
67 For selected platforms (currently only Linux), Waffle allows clients to
68 access the backing native objects of each Waffle object. For example, if
69 you create a waffle_window on the X/EGL platform, then you can retrieve
70 the Xlib <tt>Display</tt>, Xlib <tt>Window</tt>, <tt>EGLDisplay</tt>, and
71 <tt>EGLSurface</tt>. Here is a small example for X/EGL:
72 </p>
74 <pre>
75 // Assume we've initialized the Waffle with X/EGL.
76 struct waffle_window *window = waffle_window_create(...);
77 struct waffle_x11_egl_window *n_window = waffle_window_get_native(window)->x11_egl;
79 Display *xlib_dpy = n_window->display.xlib_display;
80 EGLDisplay *egl_dpy = n_window->display.egl_display;
81 Window xlib_window = n_window->xlib_window;
82 EGLSurface egl_surface = n_window->egl_surface;</pre>
84 <p>
85 This feature allows clients to implement behvaior, such as input and
86 window manager hints, that is outside of Waffle's scope. Piglit currently
87 uses this feature to implement input for X windows.
88 </p>
90 <p>
91 In the future, Waffle will also support the inverse direction. It will
92 allow clients to create Waffle objects from pre-existing native objects.
93 </p>
94 </body>
95 </html>
97 <!--
98 vim:et sw=2 ts=2:
99 -->