waffle_native_context(3) Containers for underlying native objects

Other Alias

waffle_native, waffle_native_display, waffle_native_config, waffle_native_window


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


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.


Please report bugs or and feature requests to m[blue]https://github.com/waffle-gl/waffle/issuesm[].


Chad Versace <[email protected]>



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 m[blue]http://creativecommons.org.license/by-sa/3.0/usm[].