#pragma once #include #include #include #include "xdg-shell.h" #include typedef uint8_t u8; typedef uint16_t u16; typedef uint32_t u32; typedef uint64_t u64; typedef int8_t i8; typedef int16_t i16; typedef int32_t i32; typedef int64_t i64; typedef struct wl_display *wl_display_t; typedef struct wl_registry *wl_registry_t; typedef struct wl_compositor *wl_compositor_t; typedef struct wl_surface *wl_surface_t; typedef struct xdg_wm_base *xdg_wm_base_t; typedef struct xdg_surface *xdg_surface_t; typedef struct xdg_toplevel *xdg_toplevel_t; static inline u32 wayc_min(u32 a, u32 b) { return a > b ? a : b; } [[noreturn]] static inline void wayc_panic_impl(const char *file, int line, const char *func, const char *fmt, ...) { fprintf(stderr, "Panic at %s:%d in %s: ", file, line, func); va_list args; va_start(args, fmt); vfprintf(stderr, fmt, args); va_end(args); fprintf(stderr, "\n"); exit(EXIT_FAILURE); } #define wayc_panic(...) \ wayc_panic_impl(__FILE__, __LINE__, __func__, __VA_ARGS__) #define wayc_assert(expr) \ do { \ if (!(expr)) \ wayc_panic("Assertion failed: %s", #expr); \ } while (0) #define wayc_notnull(expr) wayc_assert(expr != NULL)