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.

See Also

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