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

# waffle\_native(3)

Containers for underlying native objects

## NAME

waffle\_native, waffle\_native\_display, waffle\_native\_config, waffle\_native\_context, waffle\_native\_window - Containers for underlying native objects

## SYNOPSIS

```
#include <waffle.h>
union waffle_native_display {
    struct waffle_gbm_display *gbm;
    struct waffle_glx_display *glx;
    struct waffle_wayland_display *wayland;
    struct waffle_x11_egl_display *x11_egl;
};
union waffle_native_config {
    struct waffle_gbm_config *gbm;
    struct waffle_glx_config *glx;
    struct waffle_wayland_config *wayland;
    struct waffle_x11_egl_config *x11_egl;
};
union waffle_native_context {
    struct waffle_gbm_context *gbm;
    struct waffle_glx_context *glx;
    struct waffle_wayland_context *wayland;
    struct waffle_x11_egl_context *x11_egl;
};
union waffle_native_window {
    struct waffle_gbm_window *gbm;
    struct waffle_glx_window *glx;
    struct waffle_wayland_window *wayland;
    struct waffle_x11_egl_window *x11_egl;
};
```

## DESCRIPTION

Each of the **waffle\_${obj}\_get\_native()** functions returns a correspondingly named **union waffle\_native\_${obj}\***. For example, **waffle\_window\_get\_native()** returns **union waffle\_native\_window\***

For each platform, the header \<waffle\_${platform}.h\> defines the native container structs. For example, \<waffle\_glx.h\> defines the structs **waffle\_glx\_${obj}**.

Observerve that native container structs are not defined for all platforms that waffle supports. In particular, waffle supports Android (**WAFFLE\_PLATFORM\_ANDROID**) and MacOS via CGL (**WAFFLE\_PLATFORM\_CGL**), but no container structs are defined for those platforms. Presently, waffle does not expose the native objects for those platforms due to implementation difficulties.

## ISSUES

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

## SEE ALSO

[**waffle**(7)](/waffle/7.md), [**waffle\_gbm**(3)](/waffle_gbm/3.md), [**waffle\_glx**(3)](/waffle_glx/3.md), [**waffle\_wayland**(3)](/waffle_wayland/3.md), [**waffle\_x11\_egl**(3)](/waffle_x11_egl/3.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**.
