#include <stdarg.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdlib.h>
enum rwhf_Error {
RWHF_ERROR_UNKNOWN_UNEXAUSTIVE_VARIANT,
};
typedef uint8_t rwhf_Error;
enum rwhf_RawWindowHandleKind {
RWHF_RAW_WINDOW_HANDLE_KIND_UI_KIT_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_APP_KIT_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_ORBITAL_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_OHOS_NDK_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_XLIB_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_XCB_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_WAYLAND_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_DRM_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_GBM_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_WIN32_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_WIN_RT_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_WEB_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_WEB_CANVAS_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_WEB_OFFSCREEN_CANVAS_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_ANDROID_NDK_WINDOW_HANDLE,
RWHF_RAW_WINDOW_HANDLE_KIND_HAIKU_WINDOW_HANDLE,
};
typedef uint8_t rwhf_RawWindowHandleKind;
typedef struct rwhf_UiKitWindowHandle {
void *ui_view;
void *ui_view_controller;
} rwhf_UiKitWindowHandle;
typedef struct rwhf_WinRtWindowHandle {
void *core_window;
} rwhf_WinRtWindowHandle;
typedef struct rwhf_HaikuWindowHandle {
void *b_window;
void *b_direct_window;
} rwhf_HaikuWindowHandle;
typedef struct rwhf_AppKitWindowHandle {
void *ns_view;
} rwhf_AppKitWindowHandle;
typedef struct rwhf_OrbitalWindowHandle {
void *window;
} rwhf_OrbitalWindowHandle;
typedef struct rwhf_OhosNdkWindowHandle {
void *native_window;
} rwhf_OhosNdkWindowHandle;
typedef struct rwhf_XlibWindowHandle {
unsigned long window;
unsigned long visual_id;
} rwhf_XlibWindowHandle;
typedef struct rwhf_XcbWindowHandle {
uint32_t window;
uint32_t visual_id;
} rwhf_XcbWindowHandle;
typedef struct rwhf_WaylandWindowHandle {
void *surface;
} rwhf_WaylandWindowHandle;
typedef struct rwhf_DrmWindowHandle {
uint32_t plane;
} rwhf_DrmWindowHandle;
typedef struct rwhf_GbmWindowHandle {
void *gbm_surface;
} rwhf_GbmWindowHandle;
typedef struct rwhf_Win32WindowHandle {
intptr_t hwnd;
intptr_t hinstance;
} rwhf_Win32WindowHandle;
typedef struct rwhf_WebWindowHandle {
uint32_t id;
} rwhf_WebWindowHandle;
typedef struct rwhf_WebCanvasWindowHandle {
void *obj;
} rwhf_WebCanvasWindowHandle;
typedef struct rwhf_WebOffscreenCanvasWindowHandle {
void *obj;
} rwhf_WebOffscreenCanvasWindowHandle;
typedef struct rwhf_AndroidNdkWindowHandle {
void *a_native_window;
} rwhf_AndroidNdkWindowHandle;
typedef union rwhf_RawWindowHandleData {
struct rwhf_UiKitWindowHandle ui_kit;
struct rwhf_AppKitWindowHandle app_kit;
struct rwhf_OrbitalWindowHandle orbital;
struct rwhf_OhosNdkWindowHandle ohos_ndk;
struct rwhf_XlibWindowHandle xlib;
struct rwhf_XcbWindowHandle xcb;
struct rwhf_WaylandWindowHandle wayland;
struct rwhf_DrmWindowHandle drm;
struct rwhf_GbmWindowHandle gbm;
struct rwhf_Win32WindowHandle win32;
struct rwhf_WinRtWindowHandle win_rt;
struct rwhf_WebWindowHandle web;
struct rwhf_WebCanvasWindowHandle web_canvas;
struct rwhf_WebOffscreenCanvasWindowHandle web_offscreen_canvas;
struct rwhf_AndroidNdkWindowHandle android_ndk;
struct rwhf_HaikuWindowHandle haiku;
} rwhf_RawWindowHandleData;
typedef struct rwhf_RawWindowHandle {
rwhf_RawWindowHandleKind kind;
union rwhf_RawWindowHandleData data;
} rwhf_RawWindowHandle;