waffle_native 3
waffle_native waffle_native_display waffle_native_config waffle_native_context waffle_native_window Containers for underlying native objects

Waffle Manual

waffle

    #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.

## See Also

waffle 7, waffle_gbm 3, waffle_glx 3, waffle_wayland 3, waffle_x11_egl 3