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">
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>
32 <li>WGL (experimental)
</li>
36 <li>MacOS CGL (experimental)
</li>
39 <li>Android (experimental)
</li>
44 <p>Waffle supports creating and managing contexts from the API's below
46 in a platform-independent manner.
48 Of course, the set of supported API's, and the available contexts that can be created for each,
50 are dependent on the native OpenGL platform.
52 For details on the relationship among native system, OpenGL API, and context creation,
54 see the manual page for
56 <a href=
"man/waffle_config.3.html">waffle_config(
3)
</a>.
</p>
65 <h3>Access to Backing Native Objects
</h3>
68 For selected platforms (currently only Linux), Waffle allows clients to
69 access the backing native objects of each Waffle object. For example, if
70 you create a waffle_window on the X/EGL platform, then you can retrieve
71 the Xlib
<tt>Display
</tt>, Xlib
<tt>Window
</tt>,
<tt>EGLDisplay
</tt>, and
72 <tt>EGLSurface
</tt>. Here is a small example for X/EGL:
76 // Assume we've initialized the Waffle with X/EGL.
77 struct waffle_window *window = waffle_window_create(...);
78 struct waffle_x11_egl_window *n_window = waffle_window_get_native(window)-
>x11_egl;
80 Display *xlib_dpy = n_window-
>display.xlib_display;
81 EGLDisplay *egl_dpy = n_window-
>display.egl_display;
82 Window xlib_window = n_window-
>xlib_window;
83 EGLSurface egl_surface = n_window-
>egl_surface;
</pre>
86 This feature allows clients to implement behvaior, such as input and
87 window manager hints, that is outside of Waffle's scope. Piglit currently
88 uses this feature to implement input for X windows.
92 In the future, Waffle will also support the inverse direction. It will
93 allow clients to create Waffle objects from pre-existing native objects.