---
name: "waffle"
section: "7"
platform: "linux"
package: "libwaffle-doc"
version: "1.8.1-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/waffle"
---

# waffle(7)

a library for selecting an OpenGL API and window system at runtime

## NAME

waffle - a library for selecting an OpenGL API and window system at runtime

## SYNOPSIS

```
#include <waffle.h>
Link with -lwaffle-1.
```

## DESCRIPTION

Waffle is a cross-platform library that allows one to defer selection of an OpenGL API and of window system until runtime. For example, on Linux, Waffle enables an application to select X11/EGL with an OpenGL 3.3 core profile, Wayland with OpenGL ES2, and other window system / API combinations.

Waffle's immediate goal is to enable **Piglit**\[1\], **Mesa**\[2\]'s OpenGL test suite, to test multiple OpenGL flavors in a cross-platform way, and to allow each Piglit test to choose its OpenGL API and window system at runtime. A future goal is to enable the ability to record, with another tool such as **APITrace**\[3\], an application's OpenGL calls on one operating system or window system, and then replay that trace on a different system.

**waffle**\[4\]'s website.

## EXAMPLES

Your distribution should have installed example source code that demonstrates how to use waffle at /usr/share/doc/waffle-${version}/examples. You can also find **examples**\[5\] in Waffle's source repository.

## ISSUES

Please report bugs or and feature requests to **https://gitlab.freedesktop.org/mesa/waffle/issues**.

## SEE ALSO

Website: https://waffle.freedesktop.org/

Source: https://gitlab.freedesktop.org/mesa/waffle

[**waffle\_feature\_test\_macros**(7)](/waffle_feature_test_macros/7.md)

[**waffle\_attrib\_list**(3)](/waffle_attrib_list/3.md),

[**waffle\_config**(3)](/waffle_config/3.md),

[**waffle\_context**(3)](/waffle_context/3.md),

[**waffle\_display**(3)](/waffle_display/3.md),

[**waffle\_dl**(3)](/waffle_dl/3.md),

[**waffle\_enum**(3)](/waffle_enum/3.md),

[**waffle\_error**(3)](/waffle_error/3.md),

[**waffle\_gbm**(3)](/waffle_gbm/3.md),

[**waffle\_get\_proc\_address**(3)](/waffle_get_proc_address/3.md),

[**waffle\_glx**(3)](/waffle_glx/3.md),

[**waffle\_init**(3)](/waffle_init/3.md),

[**waffle\_is\_extension\_in\_string**(3)](/waffle_is_extension_in_string/3.md),

[**waffle\_make\_current**(3)](/waffle_make_current/3.md),

[**waffle\_native**(3)](/waffle_native/3.md),

[**waffle\_wayland**(3)](/waffle_wayland/3.md),

[**waffle\_window**(3)](/waffle_window/3.md),

[**waffle\_x11\_egl**(3)](/waffle_x11_egl/3.md)

[**wflinfo**(1)](/wflinfo/1.md),

## AUTHOR

**Chad Versace** \<chad.versace@linux.intel.com\>

Former maintainer

## COPYRIGHT

Copyright © 2013 Intel\

This manual page is licensed under the Creative Commons Attribution-ShareAlike 3.0 United States License (CC BY-SA 3.0). To view a copy of this license, visit **http://creativecommons.org.license/by-sa/3.0/us**.

## NOTES

- 1\.

  Piglit

  http://piglit.freedesktop.org

- 2\.

  Mesa

  http://mesa3d.org

- 3\.

  APITrace

  http://github.com/apitrace/apitrace#readme

- 4\.

  waffle

  https://waffle.freedesktop.org

- 5\.

  examples

  https://gitlab.freedesktop.org/mesa/waffle/tree/master/examples
