use @import("SDL_stdinc.zig");

pub const SDL_HINT_ACCELEROMETER_AS_JOYSTICK = c"SDL_ACCELEROMETER_AS_JOYSTICK";
pub const SDL_HINT_ALLOW_TOPMOST = c"SDL_ALLOW_TOPMOST";
pub const SDL_HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION = c"SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION";
pub const SDL_HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION = c"SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION";
pub const SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH = c"SDL_ANDROID_SEPARATE_MOUSE_AND_TOUCH";
pub const SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS = c"SDL_APPLE_TV_CONTROLLER_UI_EVENTS";
pub const SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION = c"SDL_APPLE_TV_REMOTE_ALLOW_ROTATION";
pub const SDL_HINT_AUDIO_CATEGORY = c"SDL_AUDIO_CATEGORY";
pub const SDL_HINT_AUDIO_RESAMPLING_MODE = c"SDL_AUDIO_RESAMPLING_MODE";
pub const SDL_HINT_BMP_SAVE_LEGACY_FORMAT = c"SDL_BMP_SAVE_LEGACY_FORMAT";
pub const SDL_HINT_EMSCRIPTEN_KEYBOARD_ELEMENT = c"SDL_EMSCRIPTEN_KEYBOARD_ELEMENT";
pub const SDL_HINT_FRAMEBUFFER_ACCELERATION = c"SDL_FRAMEBUFFER_ACCELERATION";
pub const SDL_HINT_GAMECONTROLLERCONFIG = c"SDL_GAMECONTROLLERCONFIG";
pub const SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES = c"SDL_GAMECONTROLLER_IGNORE_DEVICES";
pub const SDL_HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT = c"SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT";
pub const SDL_HINT_GRAB_KEYBOARD = c"SDL_GRAB_KEYBOARD";
pub const SDL_HINT_IDLE_TIMER_DISABLED = c"SDL_IOS_IDLE_TIMER_DISABLED";
pub const SDL_HINT_IME_INTERNAL_EDITING = c"SDL_IME_INTERNAL_EDITING";
pub const SDL_HINT_IOS_HIDE_HOME_INDICATOR = c"SDL_IOS_HIDE_HOME_INDICATOR";
pub const SDL_HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS = c"SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS";
pub const SDL_HINT_MAC_BACKGROUND_APP = c"SDL_MAC_BACKGROUND_APP";
pub const SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK = c"SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK";
pub const SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH = c"SDL_MOUSE_FOCUS_CLICKTHROUGH";
pub const SDL_HINT_MOUSE_NORMAL_SPEED_SCALE = c"SDL_MOUSE_NORMAL_SPEED_SCALE";
pub const SDL_HINT_MOUSE_RELATIVE_MODE_WARP = c"SDL_MOUSE_RELATIVE_MODE_WARP";
pub const SDL_HINT_MOUSE_RELATIVE_SPEED_SCALE = c"SDL_MOUSE_RELATIVE_SPEED_SCALE";
pub const SDL_HINT_NO_SIGNAL_HANDLERS = c"SDL_NO_SIGNAL_HANDLERS";
pub const SDL_HINT_OPENGL_ES_DRIVER = c"SDL_OPENGL_ES_DRIVER";
pub const SDL_HINT_ORIENTATIONS = c"SDL_IOS_ORIENTATIONS";
pub const SDL_HINT_QTWAYLAND_CONTENT_ORIENTATION = c"SDL_QTWAYLAND_CONTENT_ORIENTATION";
pub const SDL_HINT_QTWAYLAND_WINDOW_FLAGS = c"SDL_QTWAYLAND_WINDOW_FLAGS";
pub const SDL_HINT_RENDER_DIRECT3D11_DEBUG = c"SDL_RENDER_DIRECT3D11_DEBUG";
pub const SDL_HINT_RENDER_DIRECT3D_THREADSAFE = c"SDL_RENDER_DIRECT3D_THREADSAFE";
pub const SDL_HINT_RENDER_DRIVER = c"SDL_RENDER_DRIVER";
pub const SDL_HINT_RENDER_LOGICAL_SIZE_MODE = c"SDL_RENDER_LOGICAL_SIZE_MODE";
pub const SDL_HINT_RENDER_OPENGL_SHADERS = c"SDL_RENDER_OPENGL_SHADERS";
pub const SDL_HINT_RENDER_SCALE_QUALITY = c"SDL_RENDER_SCALE_QUALITY";
pub const SDL_HINT_RENDER_VSYNC = c"SDL_RENDER_VSYNC";
pub const SDL_HINT_RETURN_KEY_HIDES_IME = c"SDL_RETURN_KEY_HIDES_IME";
pub const SDL_HINT_RPI_VIDEO_LAYER = c"SDL_RPI_VIDEO_LAYER";
pub const SDL_HINT_THREAD_STACK_SIZE = c"SDL_THREAD_STACK_SIZE";
pub const SDL_HINT_TIMER_RESOLUTION = c"SDL_TIMER_RESOLUTION";
pub const SDL_HINT_TOUCH_MOUSE_EVENTS = c"SDL_TOUCH_MOUSE_EVENTS";
pub const SDL_HINT_TV_REMOTE_AS_JOYSTICK = c"SDL_TV_REMOTE_AS_JOYSTICK";
pub const SDL_HINT_VIDEO_ALLOW_SCREENSAVER = c"SDL_VIDEO_ALLOW_SCREENSAVER";
pub const SDL_HINT_VIDEO_DOUBLE_BUFFER = c"SDL_VIDEO_DOUBLE_BUFFER";
pub const SDL_HINT_VIDEO_HIGHDPI_DISABLED = c"SDL_VIDEO_HIGHDPI_DISABLED";
pub const SDL_HINT_VIDEO_MAC_FULLSCREEN_SPACES = c"SDL_VIDEO_MAC_FULLSCREEN_SPACES";
pub const SDL_HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS = c"SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS";
pub const SDL_HINT_VIDEO_WIN_D3DCOMPILER = c"SDL_VIDEO_WIN_D3DCOMPILER";
pub const SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT = c"SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT";
pub const SDL_HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR = c"SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR";
pub const SDL_HINT_VIDEO_X11_NET_WM_PING = c"SDL_VIDEO_X11_NET_WM_PING";
pub const SDL_HINT_VIDEO_X11_XINERAMA = c"SDL_VIDEO_X11_XINERAMA";
pub const SDL_HINT_VIDEO_X11_XRANDR = c"SDL_VIDEO_X11_XRANDR";
pub const SDL_HINT_VIDEO_X11_XVIDMODE = c"SDL_VIDEO_X11_XVIDMODE";
pub const SDL_HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN = c"SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN";
pub const SDL_HINT_WINDOWS_DISABLE_THREAD_NAMING = c"SDL_WINDOWS_DISABLE_THREAD_NAMING";
pub const SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP = c"SDL_WINDOWS_ENABLE_MESSAGELOOP";
pub const SDL_HINT_WINDOWS_INTRESOURCE_ICON = c"SDL_WINDOWS_INTRESOURCE_ICON";
pub const SDL_HINT_WINDOWS_INTRESOURCE_ICON_SMALL = c"SDL_WINDOWS_INTRESOURCE_ICON_SMALL";
pub const SDL_HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 = c"SDL_WINDOWS_NO_CLOSE_ON_ALT_F4";
pub const SDL_HINT_WINRT_HANDLE_BACK_BUTTON = c"SDL_WINRT_HANDLE_BACK_BUTTON";
pub const SDL_HINT_WINRT_PRIVACY_POLICY_LABEL = c"SDL_WINRT_PRIVACY_POLICY_LABEL";
pub const SDL_HINT_WINRT_PRIVACY_POLICY_URL = c"SDL_WINRT_PRIVACY_POLICY_URL";
pub const SDL_HINT_XINPUT_ENABLED = c"SDL_XINPUT_ENABLED";
pub const SDL_HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING = c"SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING";

pub const SDL_HINT_DEFAULT = 0;
pub const SDL_HINT_NORMAL = 1;
pub const SDL_HINT_OVERRIDE = 2;

pub const SDL_HintPriority = extern enum {
    SDL_HINT_DEFAULT = 0,
    SDL_HINT_NORMAL = 1,
    SDL_HINT_OVERRIDE = 2,
};

pub const SDL_HintCallback = ?extern fn (?*c_void, [*]const u8, [*]const u8, [*]const u8) void;

pub extern fn SDL_AddHintCallback(name: [*]const u8, callback: SDL_HintCallback, userdata: ?*c_void) void;
pub extern fn SDL_ClearHints() void;
pub extern fn SDL_DelHintCallback(name: [*]const u8, callback: SDL_HintCallback, userdata: ?*c_void) void;
pub extern fn SDL_GetHint(name: [*]const u8) ?[*]const u8;
pub extern fn SDL_GetHintBoolean(name: [*]const u8, default_value: SDL_bool) SDL_bool;
pub extern fn SDL_SetHint(name: [*]const u8, value: ?[*]const u8) SDL_bool;
pub extern fn SDL_SetHintWithPriority(name: [*]const u8, value: ?[*]const u8, priority: SDL_HintPriority) SDL_bool;
