WAFFLE_WAYLAND(3)
π¦ WAFFLE_WAYLAND π¦
hiii bestie, welcome to waffle_wayland(3) β the page that lives in the Waffle Manual, aka your little backstage pass to the actual native Wayland objects that Waffle is holding for you. no gatekeeping here, we're going through every single one π
π NAME π
waffle_wayland, waffle_wayland_display, waffle_wayland_config, waffle_wayland_context, waffle_wayland_window β containers for the underlying native Wayland objects. that's the whole vibe. they're the lil carrying cases, not the objects themselves π«Ά
β¨ SYNOPSIS β¨
first things first, you gotta let the header in:
#include <waffle_wayland.h>
okay so now the four structs, and pls look at them properly because every single member is here for a reason πΈ
π§ waffle_wayland_display
struct waffle_wayland_display {
struct wl_display *wl_display;
struct wl_compositor *wl_compositor;
// DEPRECATED: wl_shell will be NULL when compositor does not support the
// old wl_shell protocol
struct wl_shell *wl_shell;
EGLDisplay egl_display;
// xdg_shell introduced with 1.7. Will be NULL when compositor does not
// support the new xdg-shell protocol
struct xdg_wm_base *xdg_shell;
};
so wl_shell is DEPRECATED, and heads up: it will be NULL when the compositor does not support the old wl_shell protocol. and xdg_shell got introduced with 1.7, and it will be NULL when the compositor does not support the new xdg-shell protocol. icon behavior, honestly π
π waffle_wayland_config
struct waffle_wayland_config {
struct waffle_wayland_display display;
EGLConfig egl_config;
};
a waffle_wayland_display and an EGLConfig, chilling together. simple, clean, slay.
π waffle_wayland_context
struct waffle_wayland_context {
struct waffle_wayland_display display;
EGLContext egl_context;
};
same energy: a waffle_wayland_display plus an EGLContext. the way that it just works π
π waffle_wayland_window
struct waffle_wayland_window {
struct waffle_wayland_display display;
struct wl_surface *wl_surface;
// DEPRECATED: wl_shell_surface will be NULL when compositor does not
// support the old wl_shell protocol
struct wl_shell_surface *wl_shell_surface;
struct wl_egl_window *wl_window;
EGLSurface egl_surface;
// xdg_surface and xdg_toplevel introduced with 1.7. Will be NULL when
// compositor does not support the new xdg-shell protocol
struct xdg_surface *xdg_surface;
struct xdg_toplevel *xdg_toplevel;
};
okay this one is the main character for real. wl_shell_surface is DEPRECATED and will be NULL when the compositor does not support the old wl_shell protocol. and xdg_surface + xdg_toplevel came in with 1.7 β they will be NULL when the compositor does not support the new xdg-shell protocol. so if you're out here dereferencing those nulls, bestie, that's not the move π
π ISSUES π
found a bug? need a feature? don't suffer in silence, pls report bugs or feature requests here:
https://gitlab.freedesktop.org/mesa/waffle/issues
we love a paper trail. and apparently we also love a typo ("bugs or and feature requests") but that's what the original says so we're keeping it, no cap π«Ά
π₯ SEE ALSO π₯
go read those next, iykyk π
π AUTHOR π
Chad Versace <chad.versace@linux.intel.com> Former maintainer
ty for your service, king π
π 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.
and that's the whole page, bestie π¦ this lil love letter is part of the Waffle Manual, waffle edition, dated 07/06/2026 β go forth, link your Wayland objects, and stay hydrated πβ¨πΈ
π¦ where this page comes from
- ubuntu stonking: libwaffle-doc 1.8.3-1 Β· BSD-2-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms