WAFFLE_NATIVE(3)

πŸŽ€ WAFFLE_NATIVE(3) πŸŽ€

okay bestie, welcome to the waffle_native page πŸ’– this whole family of things lives in the Waffle manual β€” the containers for the underlying native objects. slay.


✨ NAME ✨

waffle_native, waffle_native_display, waffle_native_config, waffle_native_context, waffle_native_window β€” literally just containers for the 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 πŸ’…

so the way this works: every one of the waffle_${obj}_get_native() functions hands you back a correspondingly named union waffle_native_${obj}*. like, for example, waffle_window_get_native() gives you a union waffle_native_window*. it's giving "the name tells you the name" ✨

then, for each platform, the header <waffle_${platform}.h> is what defines the native container structs. example incoming: <waffle_glx.h> defines the structs waffle_glx_${obj}. iykyk πŸ’œ

⚠️ important though, bestie: these native container structs are not defined for all the platforms waffle supports. specifically? waffle supports Android (WAFFLE_PLATFORM_ANDROID) and MacOS via CGL (WAFFLE_PLATFORM_CGL), but no container structs are defined for those platforms. as of right now, waffle does not expose the native objects for those platforms β€” ✨implementation difficulties✨, that's the reason.

😭 ISSUES 😭

found a bug? need a feature? please report bugs or feature requests to:

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

we're listening, fr fr 🫢


πŸ¦‹ SEE ALSO πŸ¦‹


πŸ‘‘ AUTHOR πŸ‘‘

Chad Versace <chad.versace@linux.intel.com> Former maintainer


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.


and that's the whole page, periodt πŸ’– this was the waffle manual's WAFFLE_NATIVE(3) page, dated 07/06/2026 β€” go forth and container-ize your native objects responsibly, mwah πŸŽ€βœ¨

πŸ“¦ where this page comes from