package vendor:sdl3

⌘K
Ctrl+K
or
/

    Index

    Types (360)
    Constants (929)
    Variables (1)
    Procedures (1324)
    Procedure Groups (0)

    This section is empty.

    Types

    AppEvent_func ¶

    AppEvent_func :: proc "c" (appstate: rawptr, event: ^Event) -> AppResult
    Related Procedures With Parameters

    AppInit_func ¶

    AppInit_func :: proc "c" (appstate: ^rawptr, argc: i32, argv: [^]cstring) -> AppResult
    Related Procedures With Parameters

    AppIterate_func ¶

    AppIterate_func :: proc "c" (appstate: rawptr) -> AppResult
    Related Procedures With Parameters

    AppQuit_func ¶

    AppQuit_func :: proc "c" (appstate: rawptr, result: AppResult)
    Related Procedures With Parameters

    AppResult ¶

    AppResult :: enum i32 {
    	CONTINUE, // *< Value that requests that the app continue from the main callbacks.
    	SUCCESS,  // *< Value that requests termination with success from the main callbacks.
    	FAILURE,  // *< Value that requests termination with error from the main callbacks.
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    ArrayOrder ¶

    ArrayOrder :: enum i32 {
    	NONE, 
    	RGB, 
    	RGBA, 
    	ARGB, 
    	BGR, 
    	BGRA, 
    	ABGR, 
    }
    Related Procedures With Returns

    AssertData ¶

    AssertData :: struct {
    	always_ignore: bool,
    	// *< true if app should always continue when assertion is triggered. 
    	trigger_count: u32,
    	// *< Number of times this assertion has been triggered. 
    	condition:     cstring,
    	// *< A string of this assert's test code. 
    	filename:      cstring,
    	// *< The source file where this assert lives. 
    	linenum:       i32,
    	// *< The line in `filename` where this assert lives. 
    	function:      cstring,
    	// *< The name of the function where this assert lives. 
    	next:          ^AssertData,
    }
     

    * * Information about an assertion failure. * * This structure is filled in with information about a triggered assertion, * used by the assertion handler, then added to the assertion report. This is * returned as a linked list from SDL_GetAssertionReport(). * * \since This struct is available since SDL 3.2.0.

    Related Procedures With Parameters
    Related Procedures With Returns

    AssertState ¶

    AssertState :: enum i32 {
    	RETRY,         // *< Retry the assert immediately.
    	BREAK,         // *< Make the debugger trigger a breakpoint.
    	ABORT,         // *< Terminate the program.
    	IGNORE,        // *< Ignore the assert.
    	ALWAYS_IGNORE, // *< Ignore the assert from now on.
    }
     

    * * Possible outcomes from a triggered assertion. * * When an enabled assertion triggers, it may call the assertion handler * (possibly one provided by the app via SDL_SetAssertionHandler), which will * return one of these values, possibly after asking the user. * * Then SDL will respond based on this outcome (loop around to retry the * condition, try to break in a debugger, kill the program, or ignore the * problem). * * \since This enum is available since SDL 3.2.0.

    Related Procedures With Returns

    AssertionHandler ¶

    AssertionHandler :: proc "c" (data: ^AssertData, userdata: rawptr) -> AssertState
    Related Procedures With Parameters
    Related Procedures With Returns

    AsyncIO ¶

    AsyncIO :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    AsyncIOOutcome ¶

    AsyncIOOutcome :: struct {
    	asyncio:           ^AsyncIO,
    	// *< what generated this task. This pointer will be invalid if it was closed! 
    	type:              AsyncIOTaskType,
    	// *< What sort of task was this? Read, write, etc? 
    	result:            AsyncIOResult,
    	// *< the result of the work (success, failure, cancellation). 
    	buffer:            rawptr,
    	// *< buffer where data was read/written. 
    	offset:            u64,
    	// *< offset in the SDL_AsyncIO where data was read/written. 
    	bytes_requested:   u64,
    	// *< number of bytes the task was to read/write. 
    	bytes_transferred: u64,
    	// *< actual number of bytes that were read/written. 
    	userdata:          rawptr,
    }
    Related Procedures With Parameters

    AsyncIOResult ¶

    AsyncIOResult :: enum i32 {
    	COMPLETE, // *< request was completed without error
    	FAILURE,  // *< request failed for some reason; check SDL_GetError()!
    	CANCELED, // *< request was canceled before completing.
    }

    AsyncIOTaskType ¶

    AsyncIOTaskType :: enum i32 {
    	READ,  // *< A read operation.
    	WRITE, // *< A write operation.
    	CLOSE, // *< A close operation.
    }

    AtomicInt ¶

    AtomicInt :: distinct i32
    Related Procedures With Parameters

    AtomicU32 ¶

    AtomicU32 :: distinct u32
    Related Procedures With Parameters

    AudioDeviceEvent ¶

    AudioDeviceEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_AUDIO_DEVICE_ADDED, or SDL_EVENT_AUDIO_DEVICE_REMOVED, or SDL_EVENT_AUDIO_DEVICE_FORMAT_CHANGED 
    	which:       AudioDeviceID,
    	// *< SDL_AudioDeviceID for the device being added or removed or changing 
    	recording:   bool,
    	// *< false if a playback device, true if a recording device. 
    	_:           u8,
    	_:           u8,
    	_:           u8,
    }

    AudioFormat ¶

    AudioFormat :: enum i32 {
    	UNKNOWN = 0,     // *< Unspecified audio format
    	U8      = 8,     // *< Unsigned 8-bit samples
    	// DEFINE_AUDIO_FORMAT(0, 0, 0, 8), 
    	S8      = 32776, // *< Signed 8-bit samples
    	// DEFINE_AUDIO_FORMAT(1, 0, 0, 8), 
    	S16LE   = 32784, // *< Signed 16-bit samples
    	// DEFINE_AUDIO_FORMAT(1, 0, 0, 16), 
    	S16BE   = 36880, // *< As above, but big-endian byte order
    	// DEFINE_AUDIO_FORMAT(1, 1, 0, 16), 
    	S32LE   = 32800, // *< 32-bit integer samples
    	// DEFINE_AUDIO_FORMAT(1, 0, 0, 32), 
    	S32BE   = 36896, // *< As above, but big-endian byte order
    	// DEFINE_AUDIO_FORMAT(1, 1, 0, 32), 
    	F32LE   = 33056, // *< 32-bit floating point samples
    	// DEFINE_AUDIO_FORMAT(1, 0, 1, 32), 
    	F32BE   = 37152, // *< As above, but big-endian byte order
    	// These represent the current system's byteorder. 
    	S16     = 32784, 
    	S32     = 32800, 
    	F32     = 33056, 
    }
    Related Procedures With Parameters

    AudioPostmixCallback ¶

    AudioPostmixCallback :: proc "c" (userdata: rawptr, spec: ^AudioSpec, buffer: [^]f32, buflen: i32)
    Related Procedures With Parameters

    AudioSpec ¶

    AudioSpec :: struct {
    	format:   AudioFormat,
    	// *< Audio data format 
    	channels: i32,
    	// *< Number of channels: 1 mono, 2 stereo, etc 
    	freq:     i32,
    }
    Related Procedures With Parameters

    AudioStreamCallback ¶

    AudioStreamCallback :: proc "c" (userdata: rawptr, stream: ^AudioStream, additional_amount, total_amount: i32)
    Related Procedures With Parameters

    BitmapOrder ¶

    BitmapOrder :: enum i32 {
    	NONE, 
    	ORDER_4321, 
    	ORDER_1234, 
    }

    BlendFactor ¶

    BlendFactor :: enum i32 {
    	ZERO                = 1,  // *< 0, 0, 0, 0
    	ONE                 = 2,  // *< 1, 1, 1, 1
    	SRC_COLOR           = 3,  // *< srcR, srcG, srcB, srcA
    	ONE_MINUS_SRC_COLOR = 4,  // *< 1-srcR, 1-srcG, 1-srcB, 1-srcA
    	SRC_ALPHA           = 5,  // *< srcA, srcA, srcA, srcA
    	ONE_MINUS_SRC_ALPHA = 6,  // *< 1-srcA, 1-srcA, 1-srcA, 1-srcA
    	DST_COLOR           = 7,  // *< dstR, dstG, dstB, dstA
    	ONE_MINUS_DST_COLOR = 8,  // *< 1-dstR, 1-dstG, 1-dstB, 1-dstA
    	DST_ALPHA           = 9,  // *< dstA, dstA, dstA, dstA
    	ONE_MINUS_DST_ALPHA = 10, // *< 1-dstA, 1-dstA, 1-dstA, 1-dstA
    }
    Related Procedures With Parameters

    BlendModeFlag ¶

    BlendModeFlag :: enum u32 {
    	BLEND               = 0, // log2(0x00000001)
    	BLEND_PREMULTIPLIED = 4, // log2(0x00000010)
    	ADD                 = 1, // log2(0x00000002)
    	ADD_PREMULTIPLIED   = 5, // log2(0x00000020)
    	MOD                 = 2, // log2(0x00000004)
    	MUL                 = 3, // log2(0x00000008)
    }

    BlendOperation ¶

    BlendOperation :: enum i32 {
    	ADD          = 1, // *< dst + src: supported by all renderers
    	SUBTRACT     = 2, // *< src - dst : supported by D3D, OpenGL, OpenGLES, and Vulkan
    	REV_SUBTRACT = 3, // *< dst - src : supported by D3D, OpenGL, OpenGLES, and Vulkan
    	MINIMUM      = 4, // *< min(dst, src) : supported by D3D, OpenGL, OpenGLES, and Vulkan
    	MAXIMUM      = 5, // *< max(dst, src) : supported by D3D, OpenGL, OpenGLES, and Vulkan
    }
    Related Procedures With Parameters

    Camera ¶

    Camera :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    CameraDeviceEvent ¶

    CameraDeviceEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_CAMERA_DEVICE_ADDED, SDL_EVENT_CAMERA_DEVICE_REMOVED, SDL_EVENT_CAMERA_DEVICE_APPROVED, SDL_EVENT_CAMERA_DEVICE_DENIED 
    	which:       CameraID,
    }

    CameraID ¶

    CameraID :: distinct u32
    Related Procedures With Parameters
    Related Procedures With Returns

    CameraPosition ¶

    CameraPosition :: enum i32 {
    	UNKNOWN, 
    	FRONT_FACING, 
    	BACK_FACING, 
    }
    Related Procedures With Returns

    CameraSpec ¶

    CameraSpec :: struct {
    	format:                PixelFormat,
    	// *< Frame format 
    	colorspace:            Colorspace,
    	// *< Frame colorspace 
    	width:                 i32,
    	// *< Frame width 
    	height:                i32,
    	// *< Frame height 
    	framerate_numerator:   i32,
    	// *< Frame rate numerator ((num / denom) == FPS, (denom / num) == duration in seconds) 
    	framerate_denominator: i32,
    }
    Related Procedures With Parameters

    Capitalization ¶

    Capitalization :: enum i32 {
    	NONE,      // *< No auto-capitalization will be done
    	SENTENCES, // *< The first letter of sentences will be capitalized
    	WORDS,     // *< The first letter of words will be capitalized
    	LETTERS,   // *< All letters will be capitalized
    }

    ChromaLocation ¶

    ChromaLocation :: enum i32 {
    	NONE    = 0, // *< RGB, no chroma sampling
    	LEFT    = 1, // *< In MPEG-2, MPEG-4, and AVC, Cb and Cr are taken on midpoint of the left-edge of the 2x2 square. In other words, they have the same horizontal location as the top-left pixel, but is shifted one-half pixel down vertically.
    	CENTER  = 2, // *< In JPEG/JFIF, H.261, and MPEG-1, Cb and Cr are taken at the center of the 2x2 square. In other words, they are offset one-half pixel to the right and one-half pixel down compared to the top-left pixel.
    	TOPLEFT = 3, // *< In HEVC for BT.2020 and BT.2100 content (in particular on Blu-rays), Cb and Cr are sampled at the same location as the group's top-left Y pixel ("co-sited", "co-located").
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    CleanupPropertyCallback ¶

    CleanupPropertyCallback :: proc "c" (userdata: rawptr, value: rawptr)
    Related Procedures With Parameters

    ClipboardCleanupCallback ¶

    ClipboardCleanupCallback :: proc "c" (userdata: rawptr)
    Related Procedures With Parameters

    ClipboardDataCallback ¶

    ClipboardDataCallback :: proc "c" (userdata: rawptr, mime_type: cstring, size: ^uint) -> rawptr
    Related Procedures With Parameters

    ClipboardEvent ¶

    ClipboardEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_CLIPBOARD_UPDATE 
    	owner:          bool,
    	// *< are we owning the clipboard (internal update) 
    	num_mime_types: i32,
    	// *< number of mime types 
    	mime_types:     [^]cstring `fmt:"v,num_mime_types"`,
    }

    Color ¶

    Color :: distinct [4]u8
    Related Procedures With Parameters

    ColorPrimaries ¶

    ColorPrimaries :: enum i32 {
    	UNKNOWN      = 0, 
    	BT709        = 1,  // *< ITU-R BT.709-6
    	UNSPECIFIED  = 2, 
    	BT470M       = 4,  // *< ITU-R BT.470-6 System M
    	BT470BG      = 5,  // *< ITU-R BT.470-6 System B, G / ITU-R BT.601-7 625
    	BT601        = 6,  // *< ITU-R BT.601-7 525, SMPTE 170M
    	SMPTE240     = 7,  // *< SMPTE 240M, functionally the same as SDL_COLOR_PRIMARIES_BT601
    	GENERIC_FILM = 8,  // *< Generic film (color filters using Illuminant C)
    	BT2020       = 9,  // *< ITU-R BT.2020-2 / ITU-R BT.2100-0
    	XYZ          = 10, // *< SMPTE ST 428-1
    	SMPTE431     = 11, // *< SMPTE RP 431-2
    	SMPTE432     = 12, // *< SMPTE EG 432-1 / DCI P3
    	EBU3213      = 22, // *< EBU Tech. 3213-E
    	CUSTOM       = 31, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    ColorRange ¶

    ColorRange :: enum i32 {
    	UNKNOWN = 0, 
    	LIMITED = 1, // *< Narrow range, e.g. 16-235 for 8-bit RGB and luma, and 16-240 for 8-bit chroma
    	FULL    = 2, // *< Full range, e.g. 0-255 for 8-bit RGB and luma, and 1-255 for 8-bit chroma
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    ColorType ¶

    ColorType :: enum i32 {
    	UNKNOWN = 0, 
    	RGB     = 1, 
    	YCBCR   = 2, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    Colorspace ¶

    Colorspace :: enum i32 {
    	UNKNOWN        = 0, 
    	// sRGB is a gamma corrected colorspace, and the default colorspace for SDL rendering and 8-bit RGB surfaces 
    	SRGB           = 301991328, // *< Equivalent to DXGI_COLOR_SPACE_RGB_FULL_G22_NONE_P709
    	// This is a linear colorspace and the default colorspace for floating point surfaces. On Windows this is the scRGB colorspace, and on Apple platforms this is kCGColorSpaceExtendedLinearSRGB for EDR content 
    	SRGB_LINEAR    = 301991168, // *< Equivalent to DXGI_COLOR_SPACE_RGB_FULL_G10_NONE_P709
    	// HDR10 is a non-linear HDR colorspace and the default colorspace for 10-bit surfaces 
    	HDR10          = 301999616, // *< Equivalent to DXGI_COLOR_SPACE_RGB_FULL_G2084_NONE_P2020
    	JPEG           = 570426566, // *< Equivalent to DXGI_COLOR_SPACE_YCBCR_FULL_G22_NONE_P709_X601
    	BT601_LIMITED  = 554703046, // *< Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601
    	BT601_FULL     = 571480262, // *< Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P601
    	BT709_LIMITED  = 554697761, // *< Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709
    	BT709_FULL     = 571474977, // *< Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P709
    	BT2020_LIMITED = 554706441, // *< Equivalent to DXGI_COLOR_SPACE_YCBCR_STUDIO_G22_LEFT_P2020
    	BT2020_FULL    = 571483657, // *< Equivalent to DXGI_COLOR_SPACE_YCBCR_FULL_G22_LEFT_P2020
    	RGB_DEFAULT    = 301991328, // *< The default colorspace for RGB surfaces if no colorspace is specified
    	YUV_DEFAULT    = 570426566, // *< The default colorspace for YUV surfaces if no colorspace is specified
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    CommonEvent ¶

    CommonEvent :: struct {
    	type:      EventType,
    	// *< Event type, shared with all events, Uint32 to cover user events which are not in the SDL_EventType enumeration 
    	_:         u32,
    	timestamp: u64,
    }

    CompareCallback ¶

    CompareCallback :: proc "c" (a, b: rawptr) -> i32
    Related Procedures With Parameters

    CompareCallback_r ¶

    CompareCallback_r :: proc "c" (userdata: rawptr, a, b: rawptr) -> i32
    Related Procedures With Parameters

    Cursor ¶

    Cursor :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    DateFormat ¶

    DateFormat :: enum i32 {
    	YYYYMMDD = 0, // *< Year/Month/Day
    	DDMMYYYY = 1, // *< Day/Month/Year
    	MMDDYYYY = 2, // *< Month/Day/Year
    }
    Related Procedures With Parameters

    DateTime ¶

    DateTime :: struct {
    	year:        i32,
    	// *< Year 
    	month:       i32,
    	// *< Month [01-12] 
    	day:         i32,
    	// *< Day of the month [01-31] 
    	hour:        i32,
    	// *< Hour [0-23] 
    	minute:      i32,
    	// *< Minute [0-59] 
    	second:      i32,
    	// *< Seconds [0-60] 
    	nanosecond:  i32,
    	// *< Nanoseconds [0-999999999] 
    	day_of_week: i32,
    	// *< Day of the week [0-6] (0 being Sunday) 
    	utc_offset:  i32,
    }
    Related Procedures With Parameters

    DialogFileCallback ¶

    DialogFileCallback :: proc "c" (userdata: rawptr, filelist: [^]cstring, filter: i32)
    Related Procedures With Parameters

    DialogFileFilter ¶

    DialogFileFilter :: struct {
    	name:    cstring,
    	pattern: cstring,
    }
    Related Procedures With Parameters

    DisplayEvent ¶

    DisplayEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_DISPLAYEVENT_* 
    	displayID:   DisplayID,
    	// *< The associated display 
    	data1:       i32,
    	// *< event dependent data 
    	data2:       i32,
    }

    DisplayMode ¶

    DisplayMode :: struct {
    	displayID:                DisplayID,
    	// *< the display this mode is associated with 
    	format:                   PixelFormat,
    	// *< pixel format 
    	w:                        i32,
    	// *< width 
    	h:                        i32,
    	// *< height 
    	pixel_density:            f32,
    	// *< scale converting size to pixels (e.g. a 1920x1080 mode with 2.0 scale would have 3840x2160 pixels) 
    	refresh_rate:             f32,
    	// *< refresh rate (or 0.0f for unspecified) 
    	refresh_rate_numerator:   i32,
    	// *< precise refresh rate numerator (or 0 for unspecified) 
    	refresh_rate_denominator: i32,
    	// *< precise refresh rate denominator 
    	internal:                 ^DisplayModeData,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    DisplayModeData ¶

    DisplayModeData :: struct {}

    DisplayOrientation ¶

    DisplayOrientation :: enum i32 {
    	UNKNOWN,           // *< The display orientation can't be determined
    	LANDSCAPE,         // *< The display is in landscape mode, with the right side up, relative to portrait mode
    	LANDSCAPE_FLIPPED, // *< The display is in landscape mode, with the left side up, relative to portrait mode
    	PORTRAIT,          // *< The display is in portrait mode
    	PORTRAIT_FLIPPED,  // *< The display is in portrait mode, upside down
    }
    Related Procedures With Returns

    DropEvent ¶

    DropEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_DROP_BEGIN or SDL_EVENT_DROP_FILE or SDL_EVENT_DROP_TEXT or SDL_EVENT_DROP_COMPLETE or SDL_EVENT_DROP_POSITION 
    	windowID:    WindowID,
    	// *< The window that was dropped on, if any 
    	x:           f32,
    	// *< X coordinate, relative to window (not on begin) 
    	y:           f32,
    	// *< Y coordinate, relative to window (not on begin) 
    	source:      cstring,
    	// *< The source app that sent this drop event, or NULL if that isn't available 
    	data:        cstring,
    }

    EGLAttrib ¶

    EGLAttrib :: distinct uintptr

    EGLAttribArrayCallback ¶

    EGLAttribArrayCallback :: proc "c" (userdata: rawptr) -> ^EGLint
    Related Procedures With Parameters

    EGLConfig ¶

    EGLConfig :: distinct rawptr
    Related Procedures With Returns

    EGLDisplay ¶

    EGLDisplay :: distinct rawptr
    Related Procedures With Returns

    EGLIntArrayCallback ¶

    EGLIntArrayCallback :: proc "c" (userdata: rawptr, display: EGLDisplay, config: EGLConfig) -> [^]EGLint
    Related Procedures With Parameters

    EGLSurface ¶

    EGLSurface :: distinct rawptr
    Related Procedures With Returns

    EGLint ¶

    EGLint :: distinct i32

    EnumerateDirectoryCallback ¶

    EnumerateDirectoryCallback :: proc "c" (userdata: rawptr, dirname, fname: cstring) -> EnumerationResult
    Related Procedures With Parameters

    EnumeratePropertiesCallback ¶

    EnumeratePropertiesCallback :: proc "c" (userdata: rawptr, props: PropertiesID, name: cstring)
    Related Procedures With Parameters

    EnumerationResult ¶

    EnumerationResult :: enum i32 {
    	CONTINUE, // *< Value that requests that enumeration continue.
    	SUCCESS,  // *< Value that requests that enumeration stop, successfully.
    	FAILURE,  // *< Value that requests that enumeration stop, as a failure.
    }

    Event ¶

    Event :: struct #raw_union {
    	type:            EventType,
    	// *< Event type, shared with all events, Uint32 to cover user events which are not in the SDL_EventType enumeration 
    	common:          CommonEvent,
    	// *< Common event data 
    	display:         DisplayEvent,
    	// *< Display event data 
    	window:          WindowEvent,
    	// *< Window event data 
    	kdevice:         KeyboardDeviceEvent,
    	// *< Keyboard device change event data 
    	key:             KeyboardEvent,
    	// *< Keyboard event data 
    	edit:            TextEditingEvent,
    	// *< Text editing event data 
    	edit_candidates: TextEditingCandidatesEvent,
    	// *< Text editing candidates event data 
    	text:            TextInputEvent,
    	// *< Text input event data 
    	mdevice:         MouseDeviceEvent,
    	// *< Mouse device change event data 
    	motion:          MouseMotionEvent,
    	// *< Mouse motion event data 
    	button:          MouseButtonEvent,
    	// *< Mouse button event data 
    	wheel:           MouseWheelEvent,
    	// *< Mouse wheel event data 
    	jdevice:         JoyDeviceEvent,
    	// *< Joystick device change event data 
    	jaxis:           JoyAxisEvent,
    	// *< Joystick axis event data 
    	jball:           JoyBallEvent,
    	// *< Joystick ball event data 
    	jhat:            JoyHatEvent,
    	// *< Joystick hat event data 
    	jbutton:         JoyButtonEvent,
    	// *< Joystick button event data 
    	jbattery:        JoyBatteryEvent,
    	// *< Joystick battery event data 
    	gdevice:         GamepadDeviceEvent,
    	// *< Gamepad device event data 
    	gaxis:           GamepadAxisEvent,
    	// *< Gamepad axis event data 
    	gbutton:         GamepadButtonEvent,
    	// *< Gamepad button event data 
    	gtouchpad:       GamepadTouchpadEvent,
    	// *< Gamepad touchpad event data 
    	gsensor:         GamepadSensorEvent,
    	// *< Gamepad sensor event data 
    	adevice:         AudioDeviceEvent,
    	// *< Audio device event data 
    	cdevice:         CameraDeviceEvent,
    	// *< Camera device event data 
    	sensor:          SensorEvent,
    	// *< Sensor event data 
    	quit:            QuitEvent,
    	// *< Quit request event data 
    	user:            UserEvent,
    	// *< Custom event data 
    	tfinger:         TouchFingerEvent,
    	// *< Touch finger event data 
    	pproximity:      PenProximityEvent,
    	// *< Pen proximity event data 
    	ptouch:          PenTouchEvent,
    	// *< Pen tip touching event data 
    	pmotion:         PenMotionEvent,
    	// *< Pen motion event data 
    	pbutton:         PenButtonEvent,
    	// *< Pen button event data 
    	paxis:           PenAxisEvent,
    	// *< Pen axis event data 
    	render:          RenderEvent,
    	// *< Render event data 
    	drop:            DropEvent,
    	// *< Drag and drop event data 
    	clipboard:       ClipboardEvent,
    	// This is necessary for ABI compatibility between Visual C++ and GCC.
    	// 	   Visual C++ will respect the push pack pragma and use 52 bytes (size of
    	// 	   SDL_TextEditingEvent, the largest structure for 32-bit and 64-bit
    	// 	   architectures) for this union, and GCC will use the alignment of the
    	// 	   largest datatype within the union, which is 8 bytes on 64-bit
    	// 	   architectures.
    	// 
    	// 	   So... we'll add _to force the size to be the same for both.
    	// 
    	// 	   On architectures where pointers are 16 bytes, this needs rounding up to
    	// 	   the next multiple of 16, 64, and on architectures where pointers are
    	// 	   even larger the size of SDL_UserEvent will dominate as being 3 pointers.
    	padding:         [128]u8,
    }
    Related Procedures With Parameters

    EventAction ¶

    EventAction :: enum i32 {
    	ADDEVENT,  // *< Add events to the back of the queue.
    	PEEKEVENT, // *< Check but don't remove events from the queue front.
    	GETEVENT,  // *< Retrieve/remove events from the front of the queue.
    }
    Related Procedures With Parameters

    EventFilter ¶

    EventFilter :: proc "c" (userdata: rawptr, event: ^Event) -> bool
    Related Procedures With Parameters

    EventType ¶

    EventType :: enum u32 {
    	FIRST                         = 0,     // *< Unused (do not remove)
    	// Application events 
    	QUIT                          = 256,   // *< User-requested quit
    	// These application events have special meaning on iOS and Android, see README-ios.md and README-android.md for details 
    	TERMINATING,                           // *< The application is being terminated by the OS. This event must be handled in a callback set with SDL_AddEventWatch().
    	                             Called on iOS in applicationWillTerminate()
    	                             Called on Android in onDestroy()
    	LOW_MEMORY,                            // *< The application is low on memory, free memory if possible. This event must be handled in a callback set with SDL_AddEventWatch().
    	                             Called on iOS in applicationDidReceiveMemoryWarning()
    	                             Called on Android in onTrimMemory()
    	WILL_ENTER_BACKGROUND,                 // *< The application is about to enter the background. This event must be handled in a callback set with SDL_AddEventWatch().
    	                             Called on iOS in applicationWillResignActive()
    	                             Called on Android in onPause()
    	DID_ENTER_BACKGROUND,                  // *< The application did enter the background and may not get CPU for some time. This event must be handled in a callback set with SDL_AddEventWatch().
    	                             Called on iOS in applicationDidEnterBackground()
    	                             Called on Android in onPause()
    	WILL_ENTER_FOREGROUND,                 // *< The application is about to enter the foreground. This event must be handled in a callback set with SDL_AddEventWatch().
    	                             Called on iOS in applicationWillEnterForeground()
    	                             Called on Android in onResume()
    	DID_ENTER_FOREGROUND,                  // *< The application is now interactive. This event must be handled in a callback set with SDL_AddEventWatch().
    	                             Called on iOS in applicationDidBecomeActive()
    	                             Called on Android in onResume()
    	LOCALE_CHANGED,                        // *< The user's locale preferences have changed.
    	SYSTEM_THEME_CHANGED,                  // *< The system theme changed
    	// Display events 
    	// 0x150 was SDL_DISPLAYEVENT, reserve the number for sdl2-compat 
    	DISPLAY_ORIENTATION           = 337,   // *< Display orientation has changed to data1
    	DISPLAY_ADDED,                         // *< Display has been added to the system
    	DISPLAY_REMOVED,                       // *< Display has been removed from the system
    	DISPLAY_MOVED,                         // *< Display has changed position
    	DISPLAY_DESKTOP_MODE_CHANGED,          // *< Display has changed desktop mode
    	DISPLAY_CURRENT_MODE_CHANGED,          // *< Display has changed current mode
    	DISPLAY_CONTENT_SCALE_CHANGED,         // *< Display has changed content scale
    	DISPLAY_FIRST                 = 337, 
    	DISPLAY_LAST                  = 343, 
    	// Window events 
    	// 0x200 was SDL_WINDOWEVENT, reserve the number for sdl2-compat 
    	// 0x201 was SYSWM, reserve the number for sdl2-compat 
    	WINDOW_SHOWN                  = 514,   // *< Window has been shown
    	WINDOW_HIDDEN,                         // *< Window has been hidden
    	WINDOW_EXPOSED,                        // *< Window has been exposed and should be redrawn, and can be redrawn directly from event watchers for this event
    	WINDOW_MOVED,                          // *< Window has been moved to data1, data2
    	WINDOW_RESIZED,                        // *< Window has been resized to data1xdata2
    	WINDOW_PIXEL_SIZE_CHANGED,             // *< The pixel size of the window has changed to data1xdata2
    	WINDOW_METAL_VIEW_RESIZED,             // *< The pixel size of a Metal view associated with the window has changed
    	WINDOW_MINIMIZED,                      // *< Window has been minimized
    	WINDOW_MAXIMIZED,                      // *< Window has been maximized
    	WINDOW_RESTORED,                       // *< Window has been restored to normal size and position
    	WINDOW_MOUSE_ENTER,                    // *< Window has gained mouse focus
    	WINDOW_MOUSE_LEAVE,                    // *< Window has lost mouse focus
    	WINDOW_FOCUS_GAINED,                   // *< Window has gained keyboard focus
    	WINDOW_FOCUS_LOST,                     // *< Window has lost keyboard focus
    	WINDOW_CLOSE_REQUESTED,                // *< The window manager requests that the window be closed
    	WINDOW_HIT_TEST,                       // *< Window had a hit test that wasn't SDL_HITTEST_NORMAL
    	WINDOW_ICCPROF_CHANGED,                // *< The ICC profile of the window's display has changed
    	WINDOW_DISPLAY_CHANGED,                // *< Window has been moved to display data1
    	WINDOW_DISPLAY_SCALE_CHANGED,          // *< Window display scale has been changed
    	WINDOW_SAFE_AREA_CHANGED,              // *< The window safe area has been changed
    	WINDOW_OCCLUDED,                       // *< The window has been occluded
    	WINDOW_ENTER_FULLSCREEN,               // *< The window has entered fullscreen mode
    	WINDOW_LEAVE_FULLSCREEN,               // *< The window has left fullscreen mode
    	WINDOW_DESTROYED,                      // *< The window with the associated ID is being or has been destroyed. If this message is being handled
    	                                     in an event watcher, the window handle is still valid and can still be used to retrieve any properties
    	                                     associated with the window. Otherwise, the handle has already been destroyed and all resources
    	                                     associated with it are invalid
    	WINDOW_HDR_STATE_CHANGED,              // *< Window HDR properties have changed
    	WINDOW_FIRST                  = 514, 
    	WINDOW_LAST                   = 538, 
    	// Keyboard events 
    	KEY_DOWN                      = 768,   // *< Key pressed
    	KEY_UP,                                // *< Key released
    	TEXT_EDITING,                          // *< Keyboard text editing (composition)
    	TEXT_INPUT,                            // *< Keyboard text input
    	KEYMAP_CHANGED,                        // *< Keymap changed due to a system event such as an
    	                                    input language or keyboard layout change.
    	KEYBOARD_ADDED,                        // *< A new keyboard has been inserted into the system
    	KEYBOARD_REMOVED,                      // *< A keyboard has been removed
    	TEXT_EDITING_CANDIDATES,               // *< Keyboard text editing candidates
    	// Mouse events 
    	MOUSE_MOTION                  = 1024,  // *< Mouse moved
    	MOUSE_BUTTON_DOWN,                     // *< Mouse button pressed
    	MOUSE_BUTTON_UP,                       // *< Mouse button released
    	MOUSE_WHEEL,                           // *< Mouse wheel motion
    	MOUSE_ADDED,                           // *< A new mouse has been inserted into the system
    	MOUSE_REMOVED,                         // *< A mouse has been removed
    	// Joystick events 
    	JOYSTICK_AXIS_MOTION          = 1536,  // *< Joystick axis motion
    	JOYSTICK_BALL_MOTION,                  // *< Joystick trackball motion
    	JOYSTICK_HAT_MOTION,                   // *< Joystick hat position change
    	JOYSTICK_BUTTON_DOWN,                  // *< Joystick button pressed
    	JOYSTICK_BUTTON_UP,                    // *< Joystick button released
    	JOYSTICK_ADDED,                        // *< A new joystick has been inserted into the system
    	JOYSTICK_REMOVED,                      // *< An opened joystick has been removed
    	JOYSTICK_BATTERY_UPDATED,              // *< Joystick battery level change
    	JOYSTICK_UPDATE_COMPLETE,              // *< Joystick update is complete
    	// Gamepad events 
    	GAMEPAD_AXIS_MOTION           = 1616,  // *< Gamepad axis motion
    	GAMEPAD_BUTTON_DOWN,                   // *< Gamepad button pressed
    	GAMEPAD_BUTTON_UP,                     // *< Gamepad button released
    	GAMEPAD_ADDED,                         // *< A new gamepad has been inserted into the system
    	GAMEPAD_REMOVED,                       // *< A gamepad has been removed
    	GAMEPAD_REMAPPED,                      // *< The gamepad mapping was updated
    	GAMEPAD_TOUCHPAD_DOWN,                 // *< Gamepad touchpad was touched
    	GAMEPAD_TOUCHPAD_MOTION,               // *< Gamepad touchpad finger was moved
    	GAMEPAD_TOUCHPAD_UP,                   // *< Gamepad touchpad finger was lifted
    	GAMEPAD_SENSOR_UPDATE,                 // *< Gamepad sensor was updated
    	GAMEPAD_UPDATE_COMPLETE,               // *< Gamepad update is complete
    	GAMEPAD_STEAM_HANDLE_UPDATED,          // *< Gamepad Steam handle has changed
    	// Touch events 
    	FINGER_DOWN                   = 1792, 
    	FINGER_UP, 
    	FINGER_MOTION, 
    	FINGER_CANCELED, 
    	// Clipboard events 
    	CLIPBOARD_UPDATE              = 2304,  // *< The clipboard or primary selection changed
    	// Drag and drop events 
    	DROP_FILE                     = 4096,  // *< The system requests a file open
    	DROP_TEXT,                             // *< text/plain drag-and-drop event
    	DROP_BEGIN,                            // *< A new set of drops is beginning (NULL filename)
    	DROP_COMPLETE,                         // *< Current set of drops is now complete (NULL filename)
    	DROP_POSITION,                         // *< Position while moving over the window
    	// Audio hotplug events 
    	AUDIO_DEVICE_ADDED            = 4352,  // *< A new audio device is available
    	AUDIO_DEVICE_REMOVED,                  // *< An audio device has been removed.
    	AUDIO_DEVICE_FORMAT_CHANGED,           // *< An audio device's format has been changed by the system.
    	// Sensor events 
    	SENSOR_UPDATE                 = 4608,  // *< A sensor was updated
    	// Pressure-sensitive pen events 
    	PEN_PROXIMITY_IN              = 4864,  // *< Pressure-sensitive pen has become available
    	PEN_PROXIMITY_OUT,                     // *< Pressure-sensitive pen has become unavailable
    	PEN_DOWN,                              // *< Pressure-sensitive pen touched drawing surface
    	PEN_UP,                                // *< Pressure-sensitive pen stopped touching drawing surface
    	PEN_BUTTON_DOWN,                       // *< Pressure-sensitive pen button pressed
    	PEN_BUTTON_UP,                         // *< Pressure-sensitive pen button released
    	PEN_MOTION,                            // *< Pressure-sensitive pen is moving on the tablet
    	PEN_AXIS,                              // *< Pressure-sensitive pen angle/pressure/etc changed
    	// Camera hotplug events 
    	CAMERA_DEVICE_ADDED           = 5120,  // *< A new camera device is available
    	CAMERA_DEVICE_REMOVED,                 // *< A camera device has been removed.
    	CAMERA_DEVICE_APPROVED,                // *< A camera device has been approved for use by the user.
    	CAMERA_DEVICE_DENIED,                  // *< A camera device has been denied for use by the user.
    	// Render events 
    	RENDER_TARGETS_RESET          = 8192,  // *< The render targets have been reset and their contents need to be updated
    	RENDER_DEVICE_RESET,                   // *< The device has been reset and all textures need to be recreated
    	RENDER_DEVICE_LOST,                    // *< The device has been lost and can't be recovered.
    	// Reserved events for private platforms 
    	PRIVATE0                      = 16384, 
    	PRIVATE1, 
    	PRIVATE2, 
    	PRIVATE3, 
    	// Internal events 
    	POLL_SENTINEL                 = 32512, // *< Signals the end of an event poll cycle
    	// Events USER through LAST are for your use,
    	// 	*  and should be allocated with SDL_RegisterEvents()
    	USER                          = 32768, 
    	// *
    	// 	*  This last event is only for bounding internal arrays
    	LAST                          = 65535, 
    }
    Related Procedures With Parameters

    FColor ¶

    FColor :: distinct [4]f32
    Related Procedures With Parameters

    FPoint ¶

    FPoint :: distinct [2]f32
    Related Procedures With Parameters

    FileDialogType ¶

    FileDialogType :: enum i32 {
    	OPENFILE, 
    	SAVEFILE, 
    	OPENFOLDER, 
    }
    Related Procedures With Parameters

    Finger ¶

    Finger :: struct {
    	id:       FingerID,
    	// *< the finger ID 
    	x:        f32,
    	// *< the x-axis location of the touch event, normalized (0...1) 
    	y:        f32,
    	// *< the y-axis location of the touch event, normalized (0...1) 
    	pressure: f32,
    }

    FingerID ¶

    FingerID :: distinct u64

    FlashOperation ¶

    FlashOperation :: enum i32 {
    	CANCEL,        // *< Cancel any window flash state
    	BRIEFLY,       // *< Flash the window briefly to get attention
    	UNTIL_FOCUSED, // *< Flash the window until it gets focus
    }
    Related Procedures With Parameters

    FlipMode ¶

    FlipMode :: enum i32 {
    	NONE,       // *< Do not flip
    	HORIZONTAL, // *< flip horizontally
    	VERTICAL,   // *< flip vertically
    }
    Related Procedures With Parameters

    Folder ¶

    Folder :: enum i32 {
    	HOME,        // *< The folder which contains all of the current user's data, preferences, and documents. It usually contains most of the other folders. If a requested folder does not exist, the home folder can be considered a safe fallback to store a user's documents.
    	DESKTOP,     // *< The folder of files that are displayed on the desktop. Note that the existence of a desktop folder does not guarantee that the system does show icons on its desktop; certain GNU/Linux distros with a graphical environment may not have desktop icons.
    	DOCUMENTS,   // *< User document files, possibly application-specific. This is a good place to save a user's projects.
    	DOWNLOADS,   // *< Standard folder for user files downloaded from the internet.
    	MUSIC,       // *< Music files that can be played using a standard music player (mp3, ogg...).
    	PICTURES,    // *< Image files that can be displayed using a standard viewer (png, jpg...).
    	PUBLICSHARE, // *< Files that are meant to be shared with other users on the same computer.
    	SAVEDGAMES,  // *< Save files for games.
    	SCREENSHOTS, // *< Application screenshots.
    	TEMPLATES,   // *< Template files to be used when the user requests the desktop environment to create a new file in a certain folder, such as "New Text File.txt".  Any file in the Templates folder can be used as a starting point for a new file.
    	VIDEOS,      // *< Video files that can be played using a standard video player (mp4, webm...).
    }
    Related Procedures With Parameters

    GLAttr ¶

    GLAttr :: enum i32 {
    	RED_SIZE,                   // *< the minimum number of bits for the red channel of the color buffer; defaults to 3.
    	GREEN_SIZE,                 // *< the minimum number of bits for the green channel of the color buffer; defaults to 3.
    	BLUE_SIZE,                  // *< the minimum number of bits for the blue channel of the color buffer; defaults to 2.
    	ALPHA_SIZE,                 // *< the minimum number of bits for the alpha channel of the color buffer; defaults to 0.
    	BUFFER_SIZE,                // *< the minimum number of bits for frame buffer size; defaults to 0.
    	DOUBLEBUFFER,               // *< whether the output is single or double buffered; defaults to double buffering on.
    	DEPTH_SIZE,                 // *< the minimum number of bits in the depth buffer; defaults to 16.
    	STENCIL_SIZE,               // *< the minimum number of bits in the stencil buffer; defaults to 0.
    	ACCUM_RED_SIZE,             // *< the minimum number of bits for the red channel of the accumulation buffer; defaults to 0.
    	ACCUM_GREEN_SIZE,           // *< the minimum number of bits for the green channel of the accumulation buffer; defaults to 0.
    	ACCUM_BLUE_SIZE,            // *< the minimum number of bits for the blue channel of the accumulation buffer; defaults to 0.
    	ACCUM_ALPHA_SIZE,           // *< the minimum number of bits for the alpha channel of the accumulation buffer; defaults to 0.
    	STEREO,                     // *< whether the output is stereo 3D; defaults to off.
    	MULTISAMPLEBUFFERS,         // *< the number of buffers used for multisample anti-aliasing; defaults to 0.
    	MULTISAMPLESAMPLES,         // *< the number of samples used around the current pixel used for multisample anti-aliasing.
    	ACCELERATED_VISUAL,         // *< set to 1 to require hardware acceleration, set to 0 to force software rendering; defaults to allow either.
    	RETAINED_BACKING,           // *< not used (deprecated).
    	CONTEXT_MAJOR_VERSION,      // *< OpenGL context major version.
    	CONTEXT_MINOR_VERSION,      // *< OpenGL context minor version.
    	CONTEXT_FLAGS,              // *< some combination of 0 or more of elements of the SDL_GLContextFlag enumeration; defaults to 0.
    	CONTEXT_PROFILE_MASK,       // *< type of GL context (Core, Compatibility, ES). See SDL_GLProfile; default value depends on platform.
    	SHARE_WITH_CURRENT_CONTEXT, // *< OpenGL context sharing; defaults to 0.
    	FRAMEBUFFER_SRGB_CAPABLE,   // *< requests sRGB capable visual; defaults to 0.
    	CONTEXT_RELEASE_BEHAVIOR,   // *< sets context the release behavior. See SDL_GLContextReleaseFlag; defaults to FLUSH.
    	CONTEXT_RESET_NOTIFICATION, // *< set context reset notification. See SDL_GLContextResetNotification; defaults to NO_NOTIFICATION.
    	CONTEXT_NO_ERROR, 
    	FLOATBUFFERS, 
    	EGL_PLATFORM, 
    }
    Related Procedures With Parameters
    Related Constants

    GLContextFlagBit ¶

    GLContextFlagBit :: enum u32 {
    	DEBUG              = 0, 
    	FORWARD_COMPATIBLE = 1, 
    	ROBUST_ACCESS      = 2, 
    	RESET_ISOLATION    = 3, 
    }

    GLContextReleaseFlagBit ¶

    GLContextReleaseFlagBit :: enum u32 {
    	BEHAVIOR_FLUSH = 0, 
    }

    GLContextResetNotificationFlag ¶

    GLContextResetNotificationFlag :: enum u32 {
    	LOSE_CONTEXT = 0, 
    }

    GLContextState ¶

    GLContextState :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    GLProfileFlag ¶

    GLProfileFlag :: enum u32 {
    	CORE          = 0, // *< OpenGL Core Profile context
    	COMPATIBILITY = 1, // *< OpenGL Compatibility Profile context
    	ES            = 2, // *< GLX_CONTEXT_ES2_PROFILE_BIT_EXT
    }

    GPUBlendFactor ¶

    GPUBlendFactor :: enum i32 {
    	INVALID, 
    	ZERO,                     // *< 0
    	ONE,                      // *< 1
    	SRC_COLOR,                // *< source color
    	ONE_MINUS_SRC_COLOR,      // *< 1 - source color
    	DST_COLOR,                // *< destination color
    	ONE_MINUS_DST_COLOR,      // *< 1 - destination color
    	SRC_ALPHA,                // *< source alpha
    	ONE_MINUS_SRC_ALPHA,      // *< 1 - source alpha
    	DST_ALPHA,                // *< destination alpha
    	ONE_MINUS_DST_ALPHA,      // *< 1 - destination alpha
    	CONSTANT_COLOR,           // *< blend constant
    	ONE_MINUS_CONSTANT_COLOR, // *< 1 - blend constant
    	SRC_ALPHA_SATURATE,       // *< min(source alpha, 1 - destination alpha)
    }

    GPUBlendOp ¶

    GPUBlendOp :: enum i32 {
    	INVALID, 
    	ADD,              // *< (source * source_factor) + (destination * destination_factor)
    	SUBTRACT,         // *< (source * source_factor) - (destination * destination_factor)
    	REVERSE_SUBTRACT, // *< (destination * destination_factor) - (source * source_factor)
    	MIN,              // *< min(source, destination)
    	MAX,              // *< max(source, destination)
    }

    GPUBlitInfo ¶

    GPUBlitInfo :: struct {
    	source:      GPUBlitRegion,
    	// *< The source region for the blit. 
    	destination: GPUBlitRegion,
    	// *< The destination region for the blit. 
    	load_op:     GPULoadOp,
    	// *< What is done with the contents of the destination before the blit. 
    	clear_color: FColor,
    	// *< The color to clear the destination region to before the blit. Ignored if load_op is not GPU_LOADOP_CLEAR. 
    	flip_mode:   FlipMode,
    	// *< The flip mode for the source region. 
    	filter:      GPUFilter,
    	// *< The filter mode used when blitting. 
    	cycle:       bool,
    	// *< true cycles the destination texture if it is already bound. 
    	_:           u8,
    	_:           u8,
    	_:           u8,
    }
    Related Procedures With Parameters

    GPUBlitRegion ¶

    GPUBlitRegion :: struct {
    	texture:              ^GPUTexture,
    	// *< The texture. 
    	mip_level:            u32,
    	// *< The mip level index of the region. 
    	layer_or_depth_plane: u32,
    	// *< The layer index or depth plane of the region. This value is treated as a layer index on 2D array and cube textures, and as a depth plane on 3D textures. 
    	x:                    u32,
    	// *< The left offset of the region. 
    	y:                    u32,
    	// *< The top offset of the region.  
    	w:                    u32,
    	// *< The width of the region. 
    	h:                    u32,
    }

    GPUBufferBinding ¶

    GPUBufferBinding :: struct {
    	buffer: ^GPUBuffer,
    	// *< The buffer. 
    	offset: u32,
    }
    Related Procedures With Parameters

    GPUBufferCreateInfo ¶

    GPUBufferCreateInfo :: struct {
    	usage: GPUBufferUsageFlags,
    	// *< How the buffer is intended to be used by the client. 
    	size:  u32,
    	// *< The size in bytes of the buffer. 
    	props: PropertiesID,
    }
    Related Procedures With Parameters

    GPUBufferLocation ¶

    GPUBufferLocation :: struct {
    	buffer: ^GPUBuffer,
    	// *< The buffer. 
    	offset: u32,
    }
    Related Procedures With Parameters

    GPUBufferRegion ¶

    GPUBufferRegion :: struct {
    	buffer: ^GPUBuffer,
    	// *< The buffer. 
    	offset: u32,
    	// *< The starting byte within the buffer. 
    	size:   u32,
    }
    Related Procedures With Parameters

    GPUBufferUsageFlag ¶

    GPUBufferUsageFlag :: enum u32 {
    	VERTEX                = 0, // *< Buffer is a vertex buffer.
    	INDEX                 = 1, // *< Buffer is an index buffer.
    	INDIRECT              = 2, // *< Buffer is an indirect buffer.
    	GRAPHICS_STORAGE_READ = 3, // *< Buffer supports storage reads in graphics stages.
    	COMPUTE_STORAGE_READ  = 4, // *< Buffer supports storage reads in the compute stage.
    	COMPUTE_STORAGE_WRITE = 5, // *< Buffer supports storage writes in the compute stage.
    }

    GPUBufferUsageFlags ¶

    GPUBufferUsageFlags :: distinct bit_set[GPUBufferUsageFlag; u32]

    GPUColorComponentFlag ¶

    GPUColorComponentFlag :: enum u8 {
    	R = 0, // *< the red component
    	G = 1, // *< the green component
    	B = 2, // *< the blue component
    	A = 3, // *< the alpha component
    }

    GPUColorComponentFlags ¶

    GPUColorComponentFlags :: distinct bit_set[GPUColorComponentFlag; u8]

    GPUColorTargetBlendState ¶

    GPUColorTargetBlendState :: struct {
    	src_color_blendfactor:   GPUBlendFactor,
    	// *< The value to be multiplied by the source RGB value. 
    	dst_color_blendfactor:   GPUBlendFactor,
    	// *< The value to be multiplied by the destination RGB value. 
    	color_blend_op:          GPUBlendOp,
    	// *< The blend operation for the RGB components. 
    	src_alpha_blendfactor:   GPUBlendFactor,
    	// *< The value to be multiplied by the source alpha. 
    	dst_alpha_blendfactor:   GPUBlendFactor,
    	// *< The value to be multiplied by the destination alpha. 
    	alpha_blend_op:          GPUBlendOp,
    	// *< The blend operation for the alpha component. 
    	color_write_mask:        GPUColorComponentFlags,
    	// *< A bitmask specifying which of the RGBA components are enabled for writing. Writes to all channels if enable_color_write_mask is false. 
    	enable_blend:            bool,
    	// *< Whether blending is enabled for the color target. 
    	enable_color_write_mask: bool,
    	// *< Whether the color write mask is enabled. 
    	_:                       u8,
    	_:                       u8,
    }

    GPUColorTargetDescription ¶

    GPUColorTargetDescription :: struct {
    	format:      GPUTextureFormat,
    	// *< The pixel format of the texture to be used as a color target. 
    	blend_state: GPUColorTargetBlendState,
    }

    GPUColorTargetInfo ¶

    GPUColorTargetInfo :: struct {
    	texture:               ^GPUTexture,
    	// *< The texture that will be used as a color target by a render pass. 
    	mip_level:             u32,
    	// *< The mip level to use as a color target. 
    	layer_or_depth_plane:  u32,
    	// *< The layer index or depth plane to use as a color target. This value is treated as a layer index on 2D array and cube textures, and as a depth plane on 3D textures. 
    	clear_color:           FColor,
    	// *< The color to clear the color target to at the start of the render pass. Ignored if GPU_LOADOP_CLEAR is not used. 
    	load_op:               GPULoadOp,
    	// *< What is done with the contents of the color target at the beginning of the render pass. 
    	store_op:              GPUStoreOp,
    	// *< What is done with the results of the render pass. 
    	resolve_texture:       ^GPUTexture,
    	// *< The texture that will receive the results of a multisample resolve operation. Ignored if a RESOLVE* store_op is not used. 
    	resolve_mip_level:     u32,
    	// *< The mip level of the resolve texture to use for the resolve operation. Ignored if a RESOLVE* store_op is not used. 
    	resolve_layer:         u32,
    	// *< The layer index of the resolve texture to use for the resolve operation. Ignored if a RESOLVE* store_op is not used. 
    	cycle:                 bool,
    	// *< true cycles the texture if the texture is bound and load_op is not LOAD 
    	cycle_resolve_texture: bool,
    	// *< true cycles the resolve texture if the resolve texture is bound. Ignored if a RESOLVE* store_op is not used. 
    	_:                     u8,
    	_:                     u8,
    }
    Related Procedures With Parameters

    GPUCompareOp ¶

    GPUCompareOp :: enum i32 {
    	INVALID, 
    	NEVER,            // *< The comparison always evaluates false.
    	LESS,             // *< The comparison evaluates reference < test.
    	EQUAL,            // *< The comparison evaluates reference == test.
    	LESS_OR_EQUAL,    // *< The comparison evaluates reference <= test.
    	GREATER,          // *< The comparison evaluates reference > test.
    	NOT_EQUAL,        // *< The comparison evaluates reference != test.
    	GREATER_OR_EQUAL, // *< The comparison evalutes reference >= test.
    	ALWAYS,           // *< The comparison always evaluates true.
    }

    GPUComputePipeline ¶

    GPUComputePipeline :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    GPUComputePipelineCreateInfo ¶

    GPUComputePipelineCreateInfo :: struct {
    	code_size:                      uint,
    	// *< The size in bytes of the compute shader code pointed to. 
    	code:                           [^]u8,
    	// *< A pointer to compute shader code. 
    	entrypoint:                     cstring,
    	// *< A pointer to a null-terminated UTF-8 string specifying the entry point function name for the shader. 
    	format:                         GPUShaderFormat,
    	// *< The format of the compute shader code. 
    	num_samplers:                   u32,
    	// *< The number of samplers defined in the shader. 
    	num_readonly_storage_textures:  u32,
    	// *< The number of readonly storage textures defined in the shader. 
    	num_readonly_storage_buffers:   u32,
    	// *< The number of readonly storage buffers defined in the shader. 
    	num_readwrite_storage_textures: u32,
    	// *< The number of read-write storage textures defined in the shader. 
    	num_readwrite_storage_buffers:  u32,
    	// *< The number of read-write storage buffers defined in the shader. 
    	num_uniform_buffers:            u32,
    	// *< The number of uniform buffers defined in the shader. 
    	threadcount_x:                  u32,
    	// *< The number of threads in the X dimension. This should match the value in the shader. 
    	threadcount_y:                  u32,
    	// *< The number of threads in the Y dimension. This should match the value in the shader. 
    	threadcount_z:                  u32,
    	// *< The number of threads in the Z dimension. This should match the value in the shader. 
    	props:                          PropertiesID,
    }
    Related Procedures With Parameters

    GPUCubeMapFace ¶

    GPUCubeMapFace :: enum i32 {
    	POSITIVEX, 
    	NEGATIVEX, 
    	POSITIVEY, 
    	NEGATIVEY, 
    	POSITIVEZ, 
    	NEGATIVEZ, 
    }

    GPUCullMode ¶

    GPUCullMode :: enum i32 {
    	NONE,  // *< No triangles are culled.
    	FRONT, // *< Front-facing triangles are culled.
    	BACK,  // *< Back-facing triangles are culled.
    }

    GPUDepthStencilState ¶

    GPUDepthStencilState :: struct {
    	compare_op:          GPUCompareOp,
    	// *< The comparison operator used for depth testing. 
    	back_stencil_state:  GPUStencilOpState,
    	// *< The stencil op state for back-facing triangles. 
    	front_stencil_state: GPUStencilOpState,
    	// *< The stencil op state for front-facing triangles. 
    	compare_mask:        u8,
    	// *< Selects the bits of the stencil values participating in the stencil test. 
    	write_mask:          u8,
    	// *< Selects the bits of the stencil values updated by the stencil test. 
    	enable_depth_test:   bool,
    	// *< true enables the depth test. 
    	enable_depth_write:  bool,
    	// *< true enables depth writes. Depth writes are always disabled when enable_depth_test is false. 
    	enable_stencil_test: bool,
    	// *< true enables the stencil test. 
    	_:                   u8,
    	_:                   u8,
    	_:                   u8,
    }

    GPUDepthStencilTargetInfo ¶

    GPUDepthStencilTargetInfo :: struct {
    	texture:          ^GPUTexture,
    	// *< The texture that will be used as the depth stencil target by the render pass. 
    	clear_depth:      f32,
    	// *< The value to clear the depth component to at the beginning of the render pass. Ignored if GPU_LOADOP_CLEAR is not used. 
    	load_op:          GPULoadOp,
    	// *< What is done with the depth contents at the beginning of the render pass. 
    	store_op:         GPUStoreOp,
    	// *< What is done with the depth results of the render pass. 
    	stencil_load_op:  GPULoadOp,
    	// *< What is done with the stencil contents at the beginning of the render pass. 
    	stencil_store_op: GPUStoreOp,
    	// *< What is done with the stencil results of the render pass. 
    	cycle:            bool,
    	// *< true cycles the texture if the texture is bound and any load ops are not LOAD 
    	clear_stencil:    u8,
    	// *< The value to clear the stencil component to at the beginning of the render pass. Ignored if GPU_LOADOP_CLEAR is not used. 
    	_:                u8,
    	_:                u8,
    }

    GPUFence ¶

    GPUFence :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    GPUFillMode ¶

    GPUFillMode :: enum i32 {
    	FILL, // *< Polygons will be rendered via rasterization.
    	LINE, // *< Polygon edges will be drawn as line segments.
    }

    GPUFilter ¶

    GPUFilter :: enum i32 {
    	NEAREST, // *< Point filtering.
    	LINEAR,  // *< Linear filtering.
    }

    GPUFrontFace ¶

    GPUFrontFace :: enum i32 {
    	COUNTER_CLOCKWISE, // *< A triangle with counter-clockwise vertex winding will be considered front-facing.
    	CLOCKWISE,         // *< A triangle with clockwise vertex winding will be considered front-facing.
    }

    GPUGraphicsPipeline ¶

    GPUGraphicsPipeline :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    GPUGraphicsPipelineCreateInfo ¶

    GPUGraphicsPipelineCreateInfo :: struct {
    	vertex_shader:       ^GPUShader,
    	// *< The vertex shader used by the graphics pipeline. 
    	fragment_shader:     ^GPUShader,
    	// *< The fragment shader used by the graphics pipeline. 
    	vertex_input_state:  GPUVertexInputState,
    	// *< The vertex layout of the graphics pipeline. 
    	primitive_type:      GPUPrimitiveType,
    	// *< The primitive topology of the graphics pipeline. 
    	rasterizer_state:    GPURasterizerState,
    	// *< The rasterizer state of the graphics pipeline. 
    	multisample_state:   GPUMultisampleState,
    	// *< The multisample state of the graphics pipeline. 
    	depth_stencil_state: GPUDepthStencilState,
    	// *< The depth-stencil state of the graphics pipeline. 
    	target_info:         GPUGraphicsPipelineTargetInfo,
    	// *< Formats and blend modes for the render targets of the graphics pipeline. 
    	props:               PropertiesID,
    }
    Related Procedures With Parameters

    GPUGraphicsPipelineTargetInfo ¶

    GPUGraphicsPipelineTargetInfo :: struct {
    	color_target_descriptions: [^]GPUColorTargetDescription `fmt:"v,num_color_targets"`,
    	// *< A pointer to an array of color target descriptions. 
    	num_color_targets:         u32,
    	// *< The number of color target descriptions in the above array. 
    	depth_stencil_format:      GPUTextureFormat,
    	// *< The pixel format of the depth-stencil target. Ignored if has_depth_stencil_target is false. 
    	has_depth_stencil_target:  bool,
    	// *< true specifies that the pipeline uses a depth-stencil target. 
    	_:                         u8,
    	_:                         u8,
    	_:                         u8,
    }

    GPUIndexElementSize ¶

    GPUIndexElementSize :: enum i32 {
    	_16BIT, // *< The index elements are 16-bit.
    	_32BIT, // *< The index elements are 32-bit.
    }
    Related Procedures With Parameters

    GPUIndexedIndirectDrawCommand ¶

    GPUIndexedIndirectDrawCommand :: struct {
    	num_indices:    u32,
    	// *< The number of indices to draw per instance. 
    	num_instances:  u32,
    	// *< The number of instances to draw. 
    	first_index:    u32,
    	// *< The base index within the index buffer. 
    	vertex_offset:  i32,
    	// *< The value added to the vertex index before indexing into the vertex buffer. 
    	first_instance: u32,
    }

    GPUIndirectDispatchCommand ¶

    GPUIndirectDispatchCommand :: struct {
    	groupcount_x: u32,
    	// *< The number of local workgroups to dispatch in the X dimension. 
    	groupcount_y: u32,
    	// *< The number of local workgroups to dispatch in the Y dimension. 
    	groupcount_z: u32,
    }

    GPUIndirectDrawCommand ¶

    GPUIndirectDrawCommand :: struct {
    	num_vertices:   u32,
    	// *< The number of vertices to draw. 
    	num_instances:  u32,
    	// *< The number of instances to draw. 
    	first_vertex:   u32,
    	// *< The index of the first vertex to draw. 
    	first_instance: u32,
    }

    GPULoadOp ¶

    GPULoadOp :: enum i32 {
    	LOAD,      // *< The previous contents of the texture will be preserved.
    	CLEAR,     // *< The contents of the texture will be cleared to a color.
    	DONT_CARE, // *< The previous contents of the texture need not be preserved. The contents will be undefined.
    }

    GPUMultisampleState ¶

    GPUMultisampleState :: struct {
    	sample_count: GPUSampleCount,
    	// *< The number of samples to be used in rasterization. 
    	sample_mask:  u32,
    	// *< Determines which samples get updated in the render targets. Treated as 0xFFFFFFFF if enable_mask is false. 
    	enable_mask:  bool,
    	// *< Enables sample masking. 
    	_:            u8,
    	_:            u8,
    	_:            u8,
    }

    GPUPresentMode ¶

    GPUPresentMode :: enum i32 {
    	VSYNC, 
    	IMMEDIATE, 
    	MAILBOX, 
    }
    Related Procedures With Parameters

    GPUPrimitiveType ¶

    GPUPrimitiveType :: enum i32 {
    	TRIANGLELIST,  // *< A series of separate triangles.
    	TRIANGLESTRIP, // *< A series of connected triangles.
    	LINELIST,      // *< A series of separate lines.
    	LINESTRIP,     // *< A series of connected lines.
    	POINTLIST,     // *< A series of separate points.
    }

    GPURasterizerState ¶

    GPURasterizerState :: struct {
    	fill_mode:                  GPUFillMode,
    	// *< Whether polygons will be filled in or drawn as lines. 
    	cull_mode:                  GPUCullMode,
    	// *< The facing direction in which triangles will be culled. 
    	front_face:                 GPUFrontFace,
    	// *< The vertex winding that will cause a triangle to be determined as front-facing. 
    	depth_bias_constant_factor: f32,
    	// *< A scalar factor controlling the depth value added to each fragment. 
    	depth_bias_clamp:           f32,
    	// *< The maximum depth bias of a fragment. 
    	depth_bias_slope_factor:    f32,
    	// *< A scalar factor applied to a fragment's slope in depth calculations. 
    	enable_depth_bias:          bool,
    	// *< true to bias fragment depth values. 
    	enable_depth_clip:          bool,
    	// *< true to enable depth clip, false to enable depth clamp. 
    	_:                          u8,
    	_:                          u8,
    }

    GPUSampleCount ¶

    GPUSampleCount :: enum i32 {
    	_1, // *< No multisampling.
    	_2, // *< MSAA 2x
    	_4, // *< MSAA 4x
    	_8, // *< MSAA 8x
    }
    Related Procedures With Parameters

    GPUSampler ¶

    GPUSampler :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    GPUSamplerAddressMode ¶

    GPUSamplerAddressMode :: enum i32 {
    	REPEAT,          // *< Specifies that the coordinates will wrap around.
    	MIRRORED_REPEAT, // *< Specifies that the coordinates will wrap around mirrored.
    	CLAMP_TO_EDGE,   // *< Specifies that the coordinates will clamp to the 0-1 range.
    }

    GPUSamplerCreateInfo ¶

    GPUSamplerCreateInfo :: struct {
    	min_filter:        GPUFilter,
    	// *< The minification filter to apply to lookups. 
    	mag_filter:        GPUFilter,
    	// *< The magnification filter to apply to lookups. 
    	mipmap_mode:       GPUSamplerMipmapMode,
    	// *< The mipmap filter to apply to lookups. 
    	address_mode_u:    GPUSamplerAddressMode,
    	// *< The addressing mode for U coordinates outside [0, 1). 
    	address_mode_v:    GPUSamplerAddressMode,
    	// *< The addressing mode for V coordinates outside [0, 1). 
    	address_mode_w:    GPUSamplerAddressMode,
    	// *< The addressing mode for W coordinates outside [0, 1). 
    	mip_lod_bias:      f32,
    	// *< The bias to be added to mipmap LOD calculation. 
    	max_anisotropy:    f32,
    	// *< The anisotropy value clamp used by the sampler. If enable_anisotropy is false, this is ignored. 
    	compare_op:        GPUCompareOp,
    	// *< The comparison operator to apply to fetched data before filtering. 
    	min_lod:           f32,
    	// *< Clamps the minimum of the computed LOD value. 
    	max_lod:           f32,
    	// *< Clamps the maximum of the computed LOD value. 
    	enable_anisotropy: bool,
    	// *< true to enable anisotropic filtering. 
    	enable_compare:    bool,
    	// *< true to enable comparison against a reference value during lookups. 
    	_:                 u8,
    	_:                 u8,
    	props:             PropertiesID,
    }
    Related Procedures With Parameters

    GPUSamplerMipmapMode ¶

    GPUSamplerMipmapMode :: enum i32 {
    	NEAREST, // *< Point filtering.
    	LINEAR,  // *< Linear filtering.
    }

    GPUShader ¶

    GPUShader :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    GPUShaderCreateInfo ¶

    GPUShaderCreateInfo :: struct {
    	code_size:            uint,
    	// *< The size in bytes of the code pointed to. 
    	code:                 [^]u8,
    	// *< A pointer to shader code. 
    	entrypoint:           cstring,
    	// *< A pointer to a null-terminated UTF-8 string specifying the entry point function name for the shader. 
    	format:               GPUShaderFormat,
    	// *< The format of the shader code. 
    	stage:                GPUShaderStage,
    	// *< The stage the shader program corresponds to. 
    	num_samplers:         u32,
    	// *< The number of samplers defined in the shader. 
    	num_storage_textures: u32,
    	// *< The number of storage textures defined in the shader. 
    	num_storage_buffers:  u32,
    	// *< The number of storage buffers defined in the shader. 
    	num_uniform_buffers:  u32,
    	// *< The number of uniform buffers defined in the shader. 
    	props:                PropertiesID,
    }
    Related Procedures With Parameters

    GPUShaderFormat ¶

    GPUShaderFormat :: distinct bit_set[GPUShaderFormatFlag; u32]
    Related Procedures With Parameters
    Related Procedures With Returns
    Related Constants

    GPUShaderFormatFlag ¶

    GPUShaderFormatFlag :: enum u32 {
    	PRIVATE  = 0, // *< Shaders for NDA'd platforms.
    	SPIRV    = 1, // *< SPIR-V shaders for Vulkan.
    	DXBC     = 2, // *< DXBC SM5_1 shaders for D3D12.
    	DXIL     = 3, // *< DXIL SM6_0 shaders for D3D12.
    	MSL      = 4, // *< MSL shaders for Metal.
    	METALLIB = 5, // *< Precompiled metallib shaders for Metal.
    }

    GPUShaderStage ¶

    GPUShaderStage :: enum i32 {
    	VERTEX, 
    	FRAGMENT, 
    }

    GPUStencilOp ¶

    GPUStencilOp :: enum i32 {
    	INVALID, 
    	KEEP,                // *< Keeps the current value.
    	ZERO,                // *< Sets the value to 0.
    	REPLACE,             // *< Sets the value to reference.
    	INCREMENT_AND_CLAMP, // *< Increments the current value and clamps to the maximum value.
    	DECREMENT_AND_CLAMP, // *< Decrements the current value and clamps to 0.
    	INVERT,              // *< Bitwise-inverts the current value.
    	INCREMENT_AND_WRAP,  // *< Increments the current value and wraps back to 0.
    	DECREMENT_AND_WRAP,  // *< Decrements the current value and wraps to the maximum value.
    }

    GPUStencilOpState ¶

    GPUStencilOpState :: struct {
    	fail_op:       GPUStencilOp,
    	// *< The action performed on samples that fail the stencil test. 
    	pass_op:       GPUStencilOp,
    	// *< The action performed on samples that pass the depth and stencil tests. 
    	depth_fail_op: GPUStencilOp,
    	// *< The action performed on samples that pass the stencil test and fail the depth test. 
    	compare_op:    GPUCompareOp,
    }

    GPUStorageBufferReadWriteBinding ¶

    GPUStorageBufferReadWriteBinding :: struct {
    	buffer: ^GPUBuffer,
    	// *< The buffer to bind. Must have been created with GPU_BUFFERUSAGE_COMPUTE_STORAGE_WRITE. 
    	cycle:  bool,
    	// *< true cycles the buffer if it is already bound. 
    	_:      u8,
    	_:      u8,
    	_:      u8,
    }
    Related Procedures With Parameters

    GPUStorageTextureReadWriteBinding ¶

    GPUStorageTextureReadWriteBinding :: struct {
    	texture:   ^GPUTexture,
    	// *< The texture to bind. Must have been created with GPU_TEXTUREUSAGE_COMPUTE_STORAGE_WRITE or GPU_TEXTUREUSAGE_COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE. 
    	mip_level: u32,
    	// *< The mip level index to bind. 
    	layer:     u32,
    	// *< The layer index to bind. 
    	cycle:     bool,
    	// *< true cycles the texture if it is already bound. 
    	_:         u8,
    	_:         u8,
    	_:         u8,
    }
    Related Procedures With Parameters

    GPUStoreOp ¶

    GPUStoreOp :: enum i32 {
    	STORE,             // *< The contents generated during the render pass will be written to memory.
    	DONT_CARE,         // *< The contents generated during the render pass are not needed and may be discarded. The contents will be undefined.
    	RESOLVE,           // *< The multisample contents generated during the render pass will be resolved to a non-multisample texture. The contents in the multisample texture may then be discarded and will be undefined.
    	RESOLVE_AND_STORE, // *< The multisample contents generated during the render pass will be resolved to a non-multisample texture. The contents in the multisample texture will be written to memory.
    }

    GPUSwapchainComposition ¶

    GPUSwapchainComposition :: enum i32 {
    	SDR, 
    	SDR_LINEAR, 
    	HDR_EXTENDED_LINEAR, 
    	HDR10_ST2084, 
    }
    Related Procedures With Parameters

    GPUTexture ¶

    GPUTexture :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    GPUTextureCreateInfo ¶

    GPUTextureCreateInfo :: struct {
    	type:                 GPUTextureType,
    	// *< The base dimensionality of the texture. 
    	format:               GPUTextureFormat,
    	// *< The pixel format of the texture. 
    	usage:                GPUTextureUsageFlags,
    	// *< How the texture is intended to be used by the client. 
    	width:                u32,
    	// *< The width of the texture. 
    	height:               u32,
    	// *< The height of the texture. 
    	layer_count_or_depth: u32,
    	// *< The layer count or depth of the texture. This value is treated as a layer count on 2D array textures, and as a depth value on 3D textures. 
    	num_levels:           u32,
    	// *< The number of mip levels in the texture. 
    	sample_count:         GPUSampleCount,
    	// *< The number of samples per texel. Only applies if the texture is used as a render target. 
    	props:                PropertiesID,
    }
    Related Procedures With Parameters

    GPUTextureFormat ¶

    GPUTextureFormat :: enum i32 {
    	INVALID, 
    	// Unsigned Normalized Float Color Formats 
    	A8_UNORM, 
    	R8_UNORM, 
    	R8G8_UNORM, 
    	R8G8B8A8_UNORM, 
    	R16_UNORM, 
    	R16G16_UNORM, 
    	R16G16B16A16_UNORM, 
    	R10G10B10A2_UNORM, 
    	B5G6R5_UNORM, 
    	B5G5R5A1_UNORM, 
    	B4G4R4A4_UNORM, 
    	B8G8R8A8_UNORM, 
    	// Compressed Unsigned Normalized Float Color Formats 
    	BC1_RGBA_UNORM, 
    	BC2_RGBA_UNORM, 
    	BC3_RGBA_UNORM, 
    	BC4_R_UNORM, 
    	BC5_RG_UNORM, 
    	BC7_RGBA_UNORM, 
    	// Compressed Signed Float Color Formats 
    	BC6H_RGB_FLOAT, 
    	// Compressed Unsigned Float Color Formats 
    	BC6H_RGB_UFLOAT, 
    	// Signed Normalized Float Color Formats  
    	R8_SNORM, 
    	R8G8_SNORM, 
    	R8G8B8A8_SNORM, 
    	R16_SNORM, 
    	R16G16_SNORM, 
    	R16G16B16A16_SNORM, 
    	// Signed Float Color Formats 
    	R16_FLOAT, 
    	R16G16_FLOAT, 
    	R16G16B16A16_FLOAT, 
    	R32_FLOAT, 
    	R32G32_FLOAT, 
    	R32G32B32A32_FLOAT, 
    	// Unsigned Float Color Formats 
    	R11G11B10_UFLOAT, 
    	// Unsigned Integer Color Formats 
    	R8_UINT, 
    	R8G8_UINT, 
    	R8G8B8A8_UINT, 
    	R16_UINT, 
    	R16G16_UINT, 
    	R16G16B16A16_UINT, 
    	R32_UINT, 
    	R32G32_UINT, 
    	R32G32B32A32_UINT, 
    	// Signed Integer Color Formats 
    	R8_INT, 
    	R8G8_INT, 
    	R8G8B8A8_INT, 
    	R16_INT, 
    	R16G16_INT, 
    	R16G16B16A16_INT, 
    	R32_INT, 
    	R32G32_INT, 
    	R32G32B32A32_INT, 
    	// SRGB Unsigned Normalized Color Formats 
    	R8G8B8A8_UNORM_SRGB, 
    	B8G8R8A8_UNORM_SRGB, 
    	// Compressed SRGB Unsigned Normalized Color Formats 
    	BC1_RGBA_UNORM_SRGB, 
    	BC2_RGBA_UNORM_SRGB, 
    	BC3_RGBA_UNORM_SRGB, 
    	BC7_RGBA_UNORM_SRGB, 
    	// Depth Formats 
    	D16_UNORM, 
    	D24_UNORM, 
    	D32_FLOAT, 
    	D24_UNORM_S8_UINT, 
    	D32_FLOAT_S8_UINT, 
    	// Compressed ASTC Normalized Float Color Formats
    	ASTC_4x4_UNORM, 
    	ASTC_5x4_UNORM, 
    	ASTC_5x5_UNORM, 
    	ASTC_6x5_UNORM, 
    	ASTC_6x6_UNORM, 
    	ASTC_8x5_UNORM, 
    	ASTC_8x6_UNORM, 
    	ASTC_8x8_UNORM, 
    	ASTC_10x5_UNORM, 
    	ASTC_10x6_UNORM, 
    	ASTC_10x8_UNORM, 
    	ASTC_10x10_UNORM, 
    	ASTC_12x10_UNORM, 
    	ASTC_12x12_UNORM, 
    	// Compressed SRGB ASTC Normalized Float Color Formats
    	ASTC_4x4_UNORM_SRGB, 
    	ASTC_5x4_UNORM_SRGB, 
    	ASTC_5x5_UNORM_SRGB, 
    	ASTC_6x5_UNORM_SRGB, 
    	ASTC_6x6_UNORM_SRGB, 
    	ASTC_8x5_UNORM_SRGB, 
    	ASTC_8x6_UNORM_SRGB, 
    	ASTC_8x8_UNORM_SRGB, 
    	ASTC_10x5_UNORM_SRGB, 
    	ASTC_10x6_UNORM_SRGB, 
    	ASTC_10x8_UNORM_SRGB, 
    	ASTC_10x10_UNORM_SRGB, 
    	ASTC_12x10_UNORM_SRGB, 
    	ASTC_12x12_UNORM_SRGB, 
    	// Compressed ASTC Signed Float Color Formats
    	ASTC_4x4_FLOAT, 
    	ASTC_5x4_FLOAT, 
    	ASTC_5x5_FLOAT, 
    	ASTC_6x5_FLOAT, 
    	ASTC_6x6_FLOAT, 
    	ASTC_8x5_FLOAT, 
    	ASTC_8x6_FLOAT, 
    	ASTC_8x8_FLOAT, 
    	ASTC_10x5_FLOAT, 
    	ASTC_10x6_FLOAT, 
    	ASTC_10x8_FLOAT, 
    	ASTC_10x10_FLOAT, 
    	ASTC_12x10_FLOAT, 
    	ASTC_12x12_FLOAT, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    GPUTextureLocation ¶

    GPUTextureLocation :: struct {
    	texture:   ^GPUTexture,
    	// *< The texture used in the copy operation. 
    	mip_level: u32,
    	// *< The mip level index of the location. 
    	layer:     u32,
    	// *< The layer index of the location. 
    	x:         u32,
    	// *< The left offset of the location. 
    	y:         u32,
    	// *< The top offset of the location. 
    	z:         u32,
    }
    Related Procedures With Parameters

    GPUTextureRegion ¶

    GPUTextureRegion :: struct {
    	texture:   ^GPUTexture,
    	// *< The texture used in the copy operation. 
    	mip_level: u32,
    	// *< The mip level index to transfer. 
    	layer:     u32,
    	// *< The layer index to transfer. 
    	x:         u32,
    	// *< The left offset of the region. 
    	y:         u32,
    	// *< The top offset of the region. 
    	z:         u32,
    	// *< The front offset of the region. 
    	w:         u32,
    	// *< The width of the region. 
    	h:         u32,
    	// *< The height of the region. 
    	d:         u32,
    }
    Related Procedures With Parameters

    GPUTextureSamplerBinding ¶

    GPUTextureSamplerBinding :: struct {
    	texture: ^GPUTexture,
    	// *< The texture to bind. Must have been created with GPU_TEXTUREUSAGE_SAMPLER. 
    	sampler: ^GPUSampler,
    }
    Related Procedures With Parameters

    GPUTextureTransferInfo ¶

    GPUTextureTransferInfo :: struct {
    	transfer_buffer: ^GPUTransferBuffer,
    	// *< The transfer buffer used in the transfer operation. 
    	offset:          u32,
    	// *< The starting byte of the image data in the transfer buffer. 
    	pixels_per_row:  u32,
    	// *< The number of pixels from one row to the next. 
    	rows_per_layer:  u32,
    }
    Related Procedures With Parameters

    GPUTextureType ¶

    GPUTextureType :: enum i32 {
    	D2,         // *< The texture is a 2-dimensional image.
    	D2_ARRAY,   // *< The texture is a 2-dimensional array image.
    	D3,         // *< The texture is a 3-dimensional image.
    	CUBE,       // *< The texture is a cube image.
    	CUBE_ARRAY, // *< The texture is a cube array image.
    }
    Related Procedures With Parameters

    GPUTextureUsageFlag ¶

    GPUTextureUsageFlag :: enum u32 {
    	SAMPLER                                 = 0, // *< Texture supports sampling.
    	COLOR_TARGET                            = 1, // *< Texture is a color render target.
    	DEPTH_STENCIL_TARGET                    = 2, // *< Texture is a depth stencil target.
    	GRAPHICS_STORAGE_READ                   = 3, // *< Texture supports storage reads in graphics stages.
    	COMPUTE_STORAGE_READ                    = 4, // *< Texture supports storage reads in the compute stage.
    	COMPUTE_STORAGE_WRITE                   = 5, // *< Texture supports storage writes in the compute stage.
    	COMPUTE_STORAGE_SIMULTANEOUS_READ_WRITE = 6, // *< Texture supports reads and writes in the same compute shader. This is NOT equivalent to READ | WRITE.
    }

    GPUTextureUsageFlags ¶

    GPUTextureUsageFlags :: distinct bit_set[GPUTextureUsageFlag; u32]
    Related Procedures With Parameters

    GPUTransferBuffer ¶

    GPUTransferBuffer :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    GPUTransferBufferCreateInfo ¶

    GPUTransferBufferCreateInfo :: struct {
    	usage: GPUTransferBufferUsage,
    	// *< How the transfer buffer is intended to be used by the client. 
    	size:  u32,
    	// *< The size in bytes of the transfer buffer. 
    	props: PropertiesID,
    }
    Related Procedures With Parameters

    GPUTransferBufferLocation ¶

    GPUTransferBufferLocation :: struct {
    	transfer_buffer: ^GPUTransferBuffer,
    	// *< The transfer buffer used in the transfer operation. 
    	offset:          u32,
    }
    Related Procedures With Parameters

    GPUTransferBufferUsage ¶

    GPUTransferBufferUsage :: enum i32 {
    	UPLOAD, 
    	DOWNLOAD, 
    }

    GPUVertexAttribute ¶

    GPUVertexAttribute :: struct {
    	location:    u32,
    	// *< The shader input location index. 
    	buffer_slot: u32,
    	// *< The binding slot of the associated vertex buffer. 
    	format:      GPUVertexElementFormat,
    	// *< The size and type of the attribute data. 
    	offset:      u32,
    }

    GPUVertexBufferDescription ¶

    GPUVertexBufferDescription :: struct {
    	slot:               u32,
    	// *< The binding slot of the vertex buffer. 
    	pitch:              u32,
    	// *< The byte pitch between consecutive elements of the vertex buffer. 
    	input_rate:         GPUVertexInputRate,
    	// *< Whether attribute addressing is a function of the vertex index or instance index. 
    	instance_step_rate: u32,
    }

    GPUVertexElementFormat ¶

    GPUVertexElementFormat :: enum i32 {
    	INVALID, 
    	// 32-bit Signed Integers 
    	INT, 
    	INT2, 
    	INT3, 
    	INT4, 
    	// 32-bit Unsigned Integers 
    	UINT, 
    	UINT2, 
    	UINT3, 
    	UINT4, 
    	// 32-bit Floats 
    	FLOAT, 
    	FLOAT2, 
    	FLOAT3, 
    	FLOAT4, 
    	// 8-bit Signed Integers 
    	BYTE2, 
    	BYTE4, 
    	// 8-bit Unsigned Integers 
    	UBYTE2, 
    	UBYTE4, 
    	// 8-bit Signed Normalized 
    	BYTE2_NORM, 
    	BYTE4_NORM, 
    	// 8-bit Unsigned Normalized 
    	UBYTE2_NORM, 
    	UBYTE4_NORM, 
    	// 16-bit Signed Integers 
    	SHORT2, 
    	SHORT4, 
    	// 16-bit Unsigned Integers 
    	USHORT2, 
    	USHORT4, 
    	// 16-bit Signed Normalized 
    	SHORT2_NORM, 
    	SHORT4_NORM, 
    	// 16-bit Unsigned Normalized 
    	USHORT2_NORM, 
    	USHORT4_NORM, 
    	// 16-bit Floats 
    	HALF2, 
    	HALF4, 
    }

    GPUVertexInputRate ¶

    GPUVertexInputRate :: enum i32 {
    	VERTEX,   // *< Attribute addressing is a function of the vertex index.
    	INSTANCE, // *< Attribute addressing is a function of the instance index.
    }

    GPUVertexInputState ¶

    GPUVertexInputState :: struct {
    	vertex_buffer_descriptions: [^]GPUVertexBufferDescription `fmt:"v,num_vertex_buffers"`,
    	// *< A pointer to an array of vertex buffer descriptions. 
    	num_vertex_buffers:         u32,
    	// *< The number of vertex buffer descriptions in the above array. 
    	vertex_attributes:          [^]GPUVertexAttribute `fmt:"v,num_vertex_attributes"`,
    	// *< A pointer to an array of vertex attribute descriptions. 
    	num_vertex_attributes:      u32,
    }

    GPUViewport ¶

    GPUViewport :: struct {
    	x:         f32,
    	// *< The left offset of the viewport. 
    	y:         f32,
    	// *< The top offset of the viewport. 
    	w:         f32,
    	// *< The width of the viewport. 
    	h:         f32,
    	// *< The height of the viewport. 
    	min_depth: f32,
    	// *< The minimum depth of the viewport. 
    	max_depth: f32,
    }
    Related Procedures With Parameters

    GUID ¶

    GUID :: struct {
    	data: [16]u8,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    GamepadAxis ¶

    GamepadAxis :: enum i32 {
    	INVALID       = -1, 
    	LEFTX, 
    	LEFTY, 
    	RIGHTX, 
    	RIGHTY, 
    	LEFT_TRIGGER, 
    	RIGHT_TRIGGER, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    GamepadAxisEvent ¶

    GamepadAxisEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_JOYSTICK_AXIS_MOTION 
    	which:       JoystickID,
    	// *< The joystick instance id 
    	axis:        u8,
    	// *< The joystick axis index 
    	_:           u8,
    	_:           u8,
    	_:           u8,
    	value:       i16,
    	// *< The axis value (range: -32768 to 32767) 
    	_:           u16,
    }

    GamepadBinding ¶

    GamepadBinding :: struct {
    	input_type:  GamepadBindingType,
    	input:       struct #raw_union {
    		button: i32,
    		axis:   struct {
    			axis:     i32,
    			axis_min: i32,
    			axis_max: i32,
    		},
    		hat:    struct {
    			hat:      i32,
    			hat_mask: i32,
    		},
    	},
    	output_type: GamepadBindingType,
    	output:      struct #raw_union {
    		button: GamepadButton,
    		axis:   struct {
    			axis:     GamepadAxis,
    			axis_min: i32,
    			axis_max: i32,
    		},
    	},
    }

    GamepadBindingType ¶

    GamepadBindingType :: enum i32 {
    	NONE   = 0, 
    	BUTTON, 
    	AXIS, 
    	HAT, 
    }

    GamepadButton ¶

    GamepadButton :: enum i32 {
    	INVALID        = -1, 
    	SOUTH,               // *< Bottom face button (e.g. Xbox A button)
    	EAST,                // *< Right face button (e.g. Xbox B button)
    	WEST,                // *< Left face button (e.g. Xbox X button)
    	NORTH,               // *< Top face button (e.g. Xbox Y button)
    	BACK, 
    	GUIDE, 
    	START, 
    	LEFT_STICK, 
    	RIGHT_STICK, 
    	LEFT_SHOULDER, 
    	RIGHT_SHOULDER, 
    	DPAD_UP, 
    	DPAD_DOWN, 
    	DPAD_LEFT, 
    	DPAD_RIGHT, 
    	MISC1,               // *< Additional button (e.g. Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button, Google Stadia capture button)
    	RIGHT_PADDLE1,       // *< Upper or primary paddle, under your right hand (e.g. Xbox Elite paddle P1)
    	LEFT_PADDLE1,        // *< Upper or primary paddle, under your left hand (e.g. Xbox Elite paddle P3)
    	RIGHT_PADDLE2,       // *< Lower or secondary paddle, under your right hand (e.g. Xbox Elite paddle P2)
    	LEFT_PADDLE2,        // *< Lower or secondary paddle, under your left hand (e.g. Xbox Elite paddle P4)
    	TOUCHPAD,            // *< PS4/PS5 touchpad button
    	MISC2,               // *< Additional button
    	MISC3,               // *< Additional button
    	MISC4,               // *< Additional button
    	MISC5,               // *< Additional button
    	MISC6,               // *< Additional button
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    GamepadButtonEvent ¶

    GamepadButtonEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_JOYSTICK_BUTTON_DOWN or SDL_EVENT_JOYSTICK_BUTTON_UP 
    	which:       JoystickID,
    	// *< The joystick instance id 
    	button:      u8,
    	// *< The joystick button index 
    	down:        bool,
    	// *< true if the button is pressed 
    	_:           u8,
    	_:           u8,
    }

    GamepadButtonLabel ¶

    GamepadButtonLabel :: enum i32 {
    	UNKNOWN, 
    	A, 
    	B, 
    	X, 
    	Y, 
    	CROSS, 
    	CIRCLE, 
    	SQUARE, 
    	TRIANGLE, 
    }
    Related Procedures With Returns

    GamepadDeviceEvent ¶

    GamepadDeviceEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_JOYSTICK_ADDED or SDL_EVENT_JOYSTICK_REMOVED or SDL_EVENT_JOYSTICK_UPDATE_COMPLETE 
    	which:       JoystickID,
    }

    GamepadSensorEvent ¶

    GamepadSensorEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_GAMEPAD_SENSOR_UPDATE 
    	which:            JoystickID,
    	// *< The joystick instance id 
    	sensor:           i32,
    	// *< The type of the sensor, one of the values of SDL_SensorType 
    	data:             [3]f32,
    	// *< Up to 3 values from the sensor, as defined in SDL_sensor.h 
    	sensor_timestamp: u64,
    }

    GamepadTouchpadEvent ¶

    GamepadTouchpadEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_GAMEPAD_TOUCHPAD_DOWN or SDL_EVENT_GAMEPAD_TOUCHPAD_MOTION or SDL_EVENT_GAMEPAD_TOUCHPAD_UP 
    	which:       JoystickID,
    	// *< The joystick instance id 
    	touchpad:    i32,
    	// *< The index of the touchpad 
    	finger:      i32,
    	// *< The index of the finger on the touchpad 
    	x:           f32,
    	// *< Normalized in the range 0...1 with 0 being on the left 
    	y:           f32,
    	// *< Normalized in the range 0...1 with 0 being at the top 
    	pressure:    f32,
    }

    GamepadType ¶

    GamepadType :: enum i32 {
    	UNKNOWN                      = 0, 
    	STANDARD, 
    	XBOX360, 
    	XBOXONE, 
    	PS3, 
    	PS4, 
    	PS5, 
    	NINTENDO_SWITCH_PRO, 
    	NINTENDO_SWITCH_JOYCON_LEFT, 
    	NINTENDO_SWITCH_JOYCON_RIGHT, 
    	NINTENDO_SWITCH_JOYCON_PAIR, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    GlobFlag ¶

    GlobFlag :: enum u32 {
    	CASEINSENSITIVE = 0, 
    }

    GlobFlags ¶

    GlobFlags :: distinct bit_set[GlobFlag; u32]
    Related Procedures With Parameters
    Related Constants

    HapticCondition ¶

    HapticCondition :: struct {
    	// Header 
    	type:        u16,
    	// *< HAPTIC_SPRING, HAPTIC_DAMPER,
    	//                                           HAPTIC_INERTIA or HAPTIC_FRICTION 
    	direction:   HapticDirection,
    	// Replay 
    	length:      u32,
    	// *< Duration of the effect. 
    	delay:       u16,
    	// Trigger 
    	button:      u16,
    	// *< Button that triggers the effect. 
    	interval:    u16,
    	// Condition 
    	right_sat:   [3]u16,
    	// *< Level when joystick is to the positive side; max 0xFFFF. 
    	left_sat:    [3]u16,
    	// *< Level when joystick is to the negative side; max 0xFFFF. 
    	right_coeff: [3]i16,
    	// *< How fast to increase the force towards the positive side. 
    	left_coeff:  [3]i16,
    	// *< How fast to increase the force towards the negative side. 
    	deadband:    [3]u16,
    	// *< Size of the dead zone; max 0xFFFF: whole axis-range when 0-centered. 
    	center:      [3]i16,
    }

    HapticConstant ¶

    HapticConstant :: struct {
    	// Header 
    	type:          u16,
    	// *< HAPTIC_CONSTANT 
    	direction:     HapticDirection,
    	// Replay 
    	length:        u32,
    	// *< Duration of the effect. 
    	delay:         u16,
    	// Trigger 
    	button:        u16,
    	// *< Button that triggers the effect. 
    	interval:      u16,
    	// Constant 
    	level:         i16,
    	// Envelope 
    	attack_length: u16,
    	// *< Duration of the attack. 
    	attack_level:  u16,
    	// *< Level at the start of the attack. 
    	fade_length:   u16,
    	// *< Duration of the fade. 
    	fade_level:    u16,
    }

    HapticCustom ¶

    HapticCustom :: struct {
    	// Header 
    	type:          u16,
    	// *< HAPTIC_CUSTOM 
    	direction:     HapticDirection,
    	// Replay 
    	length:        u32,
    	// *< Duration of the effect. 
    	delay:         u16,
    	// Trigger 
    	button:        u16,
    	// *< Button that triggers the effect. 
    	interval:      u16,
    	// Custom 
    	channels:      u8,
    	// *< Axes to use, minimum of one. 
    	period:        u16,
    	// *< Sample periods. 
    	samples:       u16,
    	// *< Amount of samples. 
    	data:          [^]u16,
    	// Envelope 
    	attack_length: u16,
    	// *< Duration of the attack. 
    	attack_level:  u16,
    	// *< Level at the start of the attack. 
    	fade_length:   u16,
    	// *< Duration of the fade. 
    	fade_level:    u16,
    }

    HapticDirection ¶

    HapticDirection :: struct {
    	type: HapticDirectionType,
    	// *< The type of encoding. 
    	dir:  [3]i32,
    }

    HapticDirectionType ¶

    HapticDirectionType :: enum u8 {
    	POLAR         = 0, 
    	CARTESIAN     = 1, 
    	SPHERICAL     = 2, 
    	STEERING_AXIS = 3, 
    }

    HapticEffect ¶

    HapticEffect :: struct #raw_union {
    	// Common for all force feedback effects 
    	type:      u16,
    	// *< Effect type. 
    	constant:  HapticConstant,
    	// *< Constant effect. 
    	periodic:  HapticPeriodic,
    	// *< Periodic effect. 
    	condition: HapticCondition,
    	// *< Condition effect. 
    	ramp:      HapticRamp,
    	// *< Ramp effect. 
    	leftright: HapticLeftRight,
    	// *< Left/Right effect. 
    	custom:    HapticCustom,
    }
    Related Procedures With Parameters

    HapticID ¶

    HapticID :: distinct u32
    Related Procedures With Parameters
    Related Procedures With Returns

    HapticLeftRight ¶

    HapticLeftRight :: struct {
    	// Header 
    	type:            u16,
    	// Replay 
    	length:          u32,
    	// Rumble 
    	large_magnitude: u16,
    	// *< Control of the large controller motor. 
    	small_magnitude: u16,
    }

    HapticPeriodic ¶

    HapticPeriodic :: struct {
    	// Header 
    	type:          u16,
    	// *< HAPTIC_SINE, HAPTIC_SQUARE
    	// 	                                  HAPTIC_TRIANGLE, HAPTIC_SAWTOOTHUP or
    	// 	                                  HAPTIC_SAWTOOTHDOWN 
    	direction:     HapticDirection,
    	// Replay 
    	length:        u32,
    	// *< Duration of the effect. 
    	delay:         u16,
    	// Trigger 
    	button:        u16,
    	// *< Button that triggers the effect. 
    	interval:      u16,
    	// Periodic 
    	period:        u16,
    	// *< Period of the wave. 
    	magnitude:     i16,
    	// *< Peak value; if negative, equivalent to 180 degrees extra phase shift. 
    	offset:        i16,
    	// *< Mean value of the wave. 
    	phase:         u16,
    	// Envelope 
    	attack_length: u16,
    	// *< Duration of the attack. 
    	attack_level:  u16,
    	// *< Level at the start of the attack. 
    	fade_length:   u16,
    	// *< Duration of the fade. 
    	fade_level:    u16,
    }

    HapticRamp ¶

    HapticRamp :: struct {
    	// Header 
    	type:          u16,
    	// *< HAPTIC_RAMP 
    	direction:     HapticDirection,
    	// Replay 
    	length:        u32,
    	// *< Duration of the effect. 
    	delay:         u16,
    	// Trigger 
    	button:        u16,
    	// *< Button that triggers the effect. 
    	interval:      u16,
    	// Ramp 
    	start:         i16,
    	// *< Beginning strength level. 
    	end:           i16,
    	// Envelope 
    	attack_length: u16,
    	// *< Duration of the attack. 
    	attack_level:  u16,
    	// *< Level at the start of the attack. 
    	fade_length:   u16,
    	// *< Duration of the fade. 
    	fade_level:    u16,
    }

    HapticType ¶

    HapticType :: u16

    HintCallback ¶

    HintCallback :: proc "c" (userdata: rawptr, name: cstring, oldValue, newValue: cstring)
    Related Procedures With Parameters

    HintPriority ¶

    HintPriority :: enum i32 {
    	DEFAULT, 
    	NORMAL, 
    	OVERRIDE, 
    }
    Related Procedures With Parameters

    HitTest ¶

    HitTest :: proc "c" (win: ^Window, area: ^Point, data: rawptr) -> HitTestResult
    Related Procedures With Parameters

    HitTestResult ¶

    HitTestResult :: enum i32 {
    	NORMAL,             // *< Region is normal. No special properties.
    	DRAGGABLE,          // *< Region can drag entire window.
    	RESIZE_TOPLEFT,     // *< Region is the resizable top-left corner border.
    	RESIZE_TOP,         // *< Region is the resizable top border.
    	RESIZE_TOPRIGHT,    // *< Region is the resizable top-right corner border.
    	RESIZE_RIGHT,       // *< Region is the resizable right border.
    	RESIZE_BOTTOMRIGHT, // *< Region is the resizable bottom-right corner border.
    	RESIZE_BOTTOM,      // *< Region is the resizable bottom border.
    	RESIZE_BOTTOMLEFT,  // *< Region is the resizable bottom-left corner border.
    	RESIZE_LEFT,        // *< Region is the resizable left border.
    }

    IOStatus ¶

    IOStatus :: enum i32 {
    	READY,     // *< Everything is ready (no errors and not EOF).
    	ERROR,     // *< Read or write I/O error
    	EOF,       // *< End of file
    	NOT_READY, // *< Non blocking I/O, not ready
    	READONLY,  // *< Tried to write a read-only buffer
    	WRITEONLY, // *< Tried to read a write-only buffer
    }
    Related Procedures With Returns

    IOStreamInterface ¶

    IOStreamInterface :: struct {
    	version: u32,
    	size:    proc "c" (userdata: rawptr) -> i64,
    	seek:    proc "c" (userdata: rawptr, offset: i64, whence: IOWhence) -> i64,
    	read:    proc "c" (userdata: rawptr, ptr: rawptr, size: uint, status: ^IOStatus) -> uint,
    	write:   proc "c" (userdata: rawptr, ptr: rawptr, size: uint, status: ^IOStatus) -> uint,
    	flush:   proc "c" (userdata: rawptr, status: ^IOStatus) -> bool,
    	close:   proc "c" (userdata: rawptr) -> bool,
    }
    Related Procedures With Parameters

    IOWhence ¶

    IOWhence :: enum i32 {
    	SEEK_SET, // *< Seek from the beginning of data
    	SEEK_CUR, // *< Seek relative to current read point
    	SEEK_END, // *< Seek relative to the end of data
    }
    Related Procedures With Parameters
    Related Constants

    InitFlag ¶

    InitFlag :: enum u32 {
    	AUDIO    = 4,  // *< `SDL_INIT_AUDIO` implies `SDL_INIT_EVENTS`
    	VIDEO    = 5,  // *< `SDL_INIT_VIDEO` implies `SDL_INIT_EVENTS`, should be initialized on the main thread
    	JOYSTICK = 9,  // *< `SDL_INIT_JOYSTICK` implies `SDL_INIT_EVENTS`, should be initialized on the same thread as SDL_INIT_VIDEO on Windows if you don't set SDL_HINT_JOYSTICK_THREAD
    	HAPTIC   = 12, 
    	GAMEPAD  = 13, // *< `SDL_INIT_GAMEPAD` implies `SDL_INIT_JOYSTICK`
    	EVENTS   = 14, 
    	SENSOR   = 15, // *< `SDL_INIT_SENSOR` implies `SDL_INIT_EVENTS`
    	CAMERA   = 16, // *< `SDL_INIT_CAMERA` implies `SDL_INIT_EVENTS`
    }

    JoyAxisEvent ¶

    JoyAxisEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_JOYSTICK_AXIS_MOTION 
    	which:       JoystickID,
    	// *< The joystick instance id 
    	axis:        u8,
    	// *< The joystick axis index 
    	_:           u8,
    	_:           u8,
    	_:           u8,
    	value:       i16,
    	// *< The axis value (range: -32768 to 32767) 
    	_:           u16,
    }

    JoyBallEvent ¶

    JoyBallEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_JOYSTICK_BALL_MOTION 
    	which:       JoystickID,
    	// *< The joystick instance id 
    	ball:        u8,
    	// *< The joystick trackball index 
    	_:           u8,
    	_:           u8,
    	_:           u8,
    	xrel:        i16,
    	// *< The relative motion in the X direction 
    	yrel:        i16,
    }

    JoyBatteryEvent ¶

    JoyBatteryEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_JOYSTICK_BATTERY_UPDATED 
    	which:       JoystickID,
    	// *< The joystick instance id 
    	state:       PowerState,
    	// *< The joystick battery state 
    	percent:     i32,
    }

    JoyButtonEvent ¶

    JoyButtonEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_JOYSTICK_BUTTON_DOWN or SDL_EVENT_JOYSTICK_BUTTON_UP 
    	which:       JoystickID,
    	// *< The joystick instance id 
    	button:      u8,
    	// *< The joystick button index 
    	down:        bool,
    	// *< true if the button is pressed 
    	_:           u8,
    	_:           u8,
    }

    JoyDeviceEvent ¶

    JoyDeviceEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_JOYSTICK_ADDED or SDL_EVENT_JOYSTICK_REMOVED or SDL_EVENT_JOYSTICK_UPDATE_COMPLETE 
    	which:       JoystickID,
    }

    JoyHatEvent ¶

    JoyHatEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_JOYSTICK_HAT_MOTION 
    	which:       JoystickID,
    	// *< The joystick instance id 
    	hat:         u8,
    	// *< The joystick hat index 
    	value:       u8,
    	// *< The hat position value.
    	// 	                     *   \sa SDL_HAT_LEFTUP SDL_HAT_UP SDL_HAT_RIGHTUP
    	// 	                     *   \sa SDL_HAT_LEFT SDL_HAT_CENTERED SDL_HAT_RIGHT
    	// 	                     *   \sa SDL_HAT_LEFTDOWN SDL_HAT_DOWN SDL_HAT_RIGHTDOWN
    	// 	                     *
    	// 	                     *   Note that zero means the POV is centered.
    	_:           u8,
    	_:           u8,
    }

    JoystickConnectionState ¶

    JoystickConnectionState :: enum i32 {
    	INVALID  = -1, 
    	UNKNOWN, 
    	WIRED, 
    	WIRELESS, 
    }
    Related Procedures With Returns

    JoystickType ¶

    JoystickType :: enum i32 {
    	UNKNOWN, 
    	GAMEPAD, 
    	WHEEL, 
    	ARCADE_STICK, 
    	FLIGHT_STICK, 
    	DANCE_PAD, 
    	GUITAR, 
    	DRUM_KIT, 
    	ARCADE_PAD, 
    	THROTTLE, 
    }
    Related Procedures With Returns

    KeyboardDeviceEvent ¶

    KeyboardDeviceEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_KEYBOARD_ADDED or SDL_EVENT_KEYBOARD_REMOVED 
    	which:       KeyboardID,
    }

    KeyboardEvent ¶

    KeyboardEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_KEY_DOWN or SDL_EVENT_KEY_UP 
    	windowID:    WindowID,
    	// *< The window with keyboard focus, if any 
    	which:       KeyboardID,
    	// *< The keyboard instance id, or 0 if unknown or virtual 
    	scancode:    Scancode,
    	// *< SDL physical key code 
    	key:         Keycode,
    	// *< SDL virtual key code 
    	mod:         Keymod,
    	// *< current key modifiers 
    	raw:         u16,
    	// *< The platform dependent scancode for this event 
    	down:        bool,
    	// *< true if the key is pressed 
    	repeat:      bool,
    }

    KeyboardID ¶

    KeyboardID :: distinct u32
    Related Procedures With Parameters
    Related Procedures With Returns

    Keycode ¶

    Keycode :: distinct u32
    Related Procedures With Parameters
    Related Procedures With Returns

    KeymodFlag ¶

    KeymodFlag :: enum u16 {
    	LSHIFT = 0,  // *< the left Shift key is down.
    	RSHIFT = 1,  // *< the right Shift key is down.
    	LEVEL5 = 2,  // *< the Level 5 Shift key is down.
    	LCTRL  = 6,  // *< the left Ctrl (Control) key is down.
    	RCTRL  = 7,  // *< the right Ctrl (Control) key is down.
    	LALT   = 8,  // *< the left Alt key is down.
    	RALT   = 9,  // *< the right Alt key is down.
    	LGUI   = 10, // *< the left GUI key (often the Windows key) is down.
    	RGUI   = 11, // *< the right GUI key (often the Windows key) is down.
    	NUM    = 12, // *< the Num Lock key (may be located on an extended keypad) is down.
    	CAPS   = 13, // *< the Caps Lock key is down.
    	MODE   = 14, // *< the !AltGr key is down.
    	SCROLL = 15, // *< the Scroll Lock key is down.
    }

    Locale ¶

    Locale :: struct {
    	language: cstring,
    	// *< A language name, like "en" for English. 
    	country:  cstring,
    }

    LogCategory ¶

    LogCategory :: enum i32 {
    	APPLICATION, 
    	ERROR, 
    	ASSERT, 
    	SYSTEM, 
    	AUDIO, 
    	VIDEO, 
    	RENDER, 
    	INPUT, 
    	TEST, 
    	GPU, 
    	// Reserved for future SDL library use 
    	RESERVED2, 
    	RESERVED3, 
    	RESERVED4, 
    	RESERVED5, 
    	RESERVED6, 
    	RESERVED7, 
    	RESERVED8, 
    	RESERVED9, 
    	RESERVED10, 
    	// Beyond this point is reserved for application use, e.g.
    	// 		enum {
    	// 			MYAPP_CATEGORY_AWESOME1 = CUSTOM,
    	// 			MYAPP_CATEGORY_AWESOME2,
    	// 			MYAPP_CATEGORY_AWESOME3,
    	// 			...
    	// 		};
    	CUSTOM, 
    }
    Related Procedures With Parameters

    LogOutputFunction ¶

    LogOutputFunction :: proc "c" (userdata: rawptr, category: LogCategory, priority: LogPriority, message: cstring)
    Related Procedures With Parameters
    Related Procedures With Returns

    LogPriority ¶

    LogPriority :: enum i32 {
    	INVALID, 
    	TRACE, 
    	VERBOSE, 
    	DEBUG, 
    	INFO, 
    	WARN, 
    	ERROR, 
    	CRITICAL, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    MainThreadCallback ¶

    MainThreadCallback :: proc "c" (userdata: rawptr)
    Related Procedures With Parameters

    MatrixCoefficients ¶

    MatrixCoefficients :: enum i32 {
    	IDENTITY           = 0, 
    	BT709              = 1,  // *< ITU-R BT.709-6
    	UNSPECIFIED        = 2, 
    	FCC                = 4,  // *< US FCC Title 47
    	BT470BG            = 5,  // *< ITU-R BT.470-6 System B, G / ITU-R BT.601-7 625, functionally the same as SDL_MATRIX_COEFFICIENTS_BT601
    	BT601              = 6,  // *< ITU-R BT.601-7 525
    	SMPTE240           = 7,  // *< SMPTE 240M
    	YCGCO              = 8, 
    	BT2020_NCL         = 9,  // *< ITU-R BT.2020-2 non-constant luminance
    	BT2020_CL          = 10, // *< ITU-R BT.2020-2 constant luminance
    	SMPTE2085          = 11, // *< SMPTE ST 2085
    	CHROMA_DERIVED_NCL = 12, 
    	CHROMA_DERIVED_CL  = 13, 
    	ICTCP              = 14, // *< ITU-R BT.2100-0 ICTCP
    	CUSTOM             = 31, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    MessageBoxButtonData ¶

    MessageBoxButtonData :: struct {
    	flags:    MessageBoxButtonFlags,
    	buttonID: i32,
    	// *< User defined button id (value returned via SDL_ShowMessageBox) 
    	text:     cstring,
    }

    MessageBoxButtonFlag ¶

    MessageBoxButtonFlag :: enum u32 {
    	RETURNKEY_DEFAULT = 0, // *< Marks the default button when return is hit
    	ESCAPEKEY_DEFAULT = 1, // *< Marks the default button when return is hit
    }

    MessageBoxButtonFlags ¶

    MessageBoxButtonFlags :: distinct bit_set[MessageBoxButtonFlag; u32]

    MessageBoxColor ¶

    MessageBoxColor :: distinct [3]u8

    MessageBoxColorScheme ¶

    MessageBoxColorScheme :: struct {
    	colors: [MessageBoxColorType]MessageBoxColor,
    }

    MessageBoxColorType ¶

    MessageBoxColorType :: enum i32 {
    	BACKGROUND, 
    	TEXT, 
    	BUTTON_BORDER, 
    	BUTTON_BACKGROUND, 
    	BUTTON_SELECTED, 
    }

    MessageBoxData ¶

    MessageBoxData :: struct {
    	flags:       MessageBoxFlags,
    	window:      ^Window,
    	// *< Parent window, can be NULL 
    	title:       cstring,
    	// *< UTF-8 title 
    	message:     cstring,
    	// *< UTF-8 message text 
    	numbuttons:  i32,
    	buttons:     [^]MessageBoxButtonData `fmt:"v,numbuttons"`,
    	colorScheme: ^MessageBoxColorScheme,
    }
    Related Procedures With Parameters

    MessageBoxFlag ¶

    MessageBoxFlag :: enum u32 {
    	ERROR                 = 4, // *< error dialog
    	WARNING               = 5, // *< warning dialog
    	INFORMATION           = 6, // *< informational dialog
    	BUTTONS_LEFT_TO_RIGHT = 7, // *< buttons placed left to right
    	BUTTONS_RIGHT_TO_LEFT = 8, // *< buttons placed right to left
    }

    MessageBoxFlags ¶

    MessageBoxFlags :: distinct bit_set[MessageBoxFlag; u32]
    Related Procedures With Parameters

    MetalView ¶

    MetalView :: distinct rawptr
    Related Procedures With Parameters
    Related Procedures With Returns

    MouseButtonEvent ¶

    MouseButtonEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_MOUSE_BUTTON_DOWN or SDL_EVENT_MOUSE_BUTTON_UP 
    	windowID:    WindowID,
    	// *< The window with mouse focus, if any 
    	which:       MouseID,
    	// *< The mouse instance id in relative mode, SDL_TOUCH_MOUSEID for touch events, or 0 
    	button:      u8,
    	// *< The mouse button index 
    	down:        bool,
    	// *< true if the button is pressed 
    	clicks:      u8,
    	// *< 1 for single-click, 2 for double-click, etc. 
    	_:           u8,
    	x:           f32,
    	// *< X coordinate, relative to window 
    	y:           f32,
    }

    MouseButtonFlag ¶

    MouseButtonFlag :: enum u32 {
    	LEFT   = 0, 
    	MIDDLE = 1, 
    	RIGHT  = 2, 
    	X1     = 3, 
    	X2     = 4, 
    }

    MouseDeviceEvent ¶

    MouseDeviceEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_MOUSE_ADDED or SDL_EVENT_MOUSE_REMOVED 
    	which:       MouseID,
    }

    MouseID ¶

    MouseID :: distinct u32
    Related Procedures With Parameters
    Related Procedures With Returns
    Related Constants

    MouseMotionEvent ¶

    MouseMotionEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_MOUSE_MOTION 
    	windowID:    WindowID,
    	// *< The window with mouse focus, if any 
    	which:       MouseID,
    	// *< The mouse instance id in relative mode, SDL_TOUCH_MOUSEID for touch events, or 0 
    	state:       MouseButtonFlags,
    	// *< The current button state 
    	x:           f32,
    	// *< X coordinate, relative to window 
    	y:           f32,
    	// *< Y coordinate, relative to window 
    	xrel:        f32,
    	// *< The relative motion in the X direction 
    	yrel:        f32,
    }

    MouseWheelDirection ¶

    MouseWheelDirection :: enum i32 {
    	NORMAL,  // *< The scroll direction is normal
    	FLIPPED, // *< The scroll direction is flipped / natural
    }

    MouseWheelEvent ¶

    MouseWheelEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_MOUSE_WHEEL 
    	windowID:    WindowID,
    	// *< The window with mouse focus, if any 
    	which:       MouseID,
    	// *< The mouse instance id in relative mode or 0 
    	x:           f32,
    	// *< The amount scrolled horizontally, positive to the right and negative to the left 
    	y:           f32,
    	// *< The amount scrolled vertically, positive away from the user and negative toward the user 
    	direction:   MouseWheelDirection,
    	// *< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back 
    	mouse_x:     f32,
    	// *< X coordinate, relative to window 
    	mouse_y:     f32,
    }

    Mutex ¶

    Mutex :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    NSTimerCallback ¶

    NSTimerCallback :: proc "c" (userdata: rawptr, timerID: TimerID, interval: u64) -> u64
    Related Procedures With Parameters

    PackedLayout ¶

    PackedLayout :: enum i32 {
    	NONE, 
    	LAYOUT_332, 
    	LAYOUT_4444, 
    	LAYOUT_1555, 
    	LAYOUT_5551, 
    	LAYOUT_565, 
    	LAYOUT_8888, 
    	LAYOUT_2101010, 
    	LAYOUT_1010102, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    PackedOrder ¶

    PackedOrder :: enum i32 {
    	NONE, 
    	XRGB, 
    	RGBX, 
    	ARGB, 
    	RGBA, 
    	XBGR, 
    	BGRX, 
    	ABGR, 
    	BGRA, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    Palette ¶

    Palette :: struct {
    	ncolors:  i32,
    	// *< number of elements in `colors`. 
    	colors:   [^]Color `fmt:"v,ncolors"`,
    	// *< an array of colors, `ncolors` long. 
    	version:  u32,
    	// *< internal use only, do not touch. 
    	refcount: i32,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    PathInfo ¶

    PathInfo :: struct {
    	type:        PathType,
    	// *< the path type 
    	size:        u64,
    	// *< the file size in bytes 
    	create_time: Time,
    	// *< the time when the path was created 
    	modify_time: Time,
    	// *< the last time the path was modified 
    	access_time: Time,
    }
    Related Procedures With Parameters

    PathType ¶

    PathType :: enum i32 {
    	NONE,      // *< path does not exist
    	FILE,      // *< a normal file
    	DIRECTORY, // *< a directory
    	OTHER,     // *< something completely different like a device node (not a symlink, those are always followed)
    }

    PenAxis ¶

    PenAxis :: enum i32 {
    	PRESSURE,            // *< Pen pressure.  Unidirectional: 0 to 1.0
    	XTILT,               // *< Pen horizontal tilt angle.  Bidirectional: -90.0 to 90.0 (left-to-right).
    	YTILT,               // *< Pen vertical tilt angle.  Bidirectional: -90.0 to 90.0 (top-to-down).
    	DISTANCE,            // *< Pen distance to drawing surface.  Unidirectional: 0.0 to 1.0
    	ROTATION,            // *< Pen barrel rotation.  Bidirectional: -180 to 179.9 (clockwise, 0 is facing up, -180.0 is facing down).
    	SLIDER,              // *< Pen finger wheel or slider (e.g., Airbrush Pen).  Unidirectional: 0 to 1.0
    	TANGENTIAL_PRESSURE, // *< Pressure from squeezing the pen ("barrel pressure").
    }

    PenAxisEvent ¶

    PenAxisEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_PEN_AXIS 
    	windowID:    WindowID,
    	// *< The window with pen focus, if any 
    	which:       PenID,
    	// *< The pen instance id 
    	pen_state:   PenInputFlags,
    	// *< Complete pen input state at time of event 
    	x:           f32,
    	// *< X coordinate, relative to window 
    	y:           f32,
    	// *< Y coordinate, relative to window 
    	axis:        PenAxis,
    	// *< Axis that has changed 
    	value:       f32,
    }

    PenButtonEvent ¶

    PenButtonEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_PEN_BUTTON_DOWN or SDL_EVENT_PEN_BUTTON_UP 
    	windowID:    WindowID,
    	// *< The window with mouse focus, if any 
    	which:       PenID,
    	// *< The pen instance id 
    	pen_state:   PenInputFlags,
    	// *< Complete pen input state at time of event 
    	x:           f32,
    	// *< X coordinate, relative to window 
    	y:           f32,
    	// *< Y coordinate, relative to window 
    	button:      u8,
    	// *< The pen button index (first button is 1). 
    	down:        bool,
    }

    PenID ¶

    PenID :: distinct u32

    PenInputFlag ¶

    PenInputFlag :: enum u32 {
    	DOWN       = 0,  // *< pen is pressed down
    	BUTTON_1   = 1,  // *< button 1 is pressed
    	BUTTON_2   = 2,  // *< button 2 is pressed
    	BUTTON_3   = 3,  // *< button 3 is pressed
    	BUTTON_4   = 4,  // *< button 4 is pressed
    	BUTTON_5   = 5,  // *< button 5 is pressed
    	ERASER_TIP = 30, // *< eraser tip is used
    }

    PenInputFlags ¶

    PenInputFlags :: distinct bit_set[PenInputFlag; u32]

    PenMotionEvent ¶

    PenMotionEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_PEN_MOTION 
    	windowID:    WindowID,
    	// *< The window with pen focus, if any 
    	which:       PenID,
    	// *< The pen instance id 
    	pen_state:   PenInputFlags,
    	// *< Complete pen input state at time of event 
    	x:           f32,
    	// *< X coordinate, relative to window 
    	y:           f32,
    }

    PenProximityEvent ¶

    PenProximityEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_PEN_PROXIMITY_IN or SDL_EVENT_PEN_PROXIMITY_OUT 
    	windowID:    WindowID,
    	// *< The window with pen focus, if any 
    	which:       PenID,
    }

    PenTouchEvent ¶

    PenTouchEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_PEN_DOWN or SDL_EVENT_PEN_UP 
    	windowID:    WindowID,
    	// *< The window with pen focus, if any 
    	which:       PenID,
    	// *< The pen instance id 
    	pen_state:   PenInputFlags,
    	// *< Complete pen input state at time of event 
    	x:           f32,
    	// *< X coordinate, relative to window 
    	y:           f32,
    	// *< Y coordinate, relative to window 
    	eraser:      bool,
    	// *< true if eraser end is used (not all pens support this). 
    	down:        bool,
    }

    PixelFormat ¶

    PixelFormat :: enum i32 {
    	UNKNOWN       = 0, 
    	INDEX1LSB     = 286261504, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_4321, 0, 1, 0), 
    	INDEX1MSB     = 287310080, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX1, SDL_BITMAPORDER_1234, 0, 1, 0), 
    	INDEX2LSB     = 470811136, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX2, SDL_BITMAPORDER_4321, 0, 2, 0), 
    	INDEX2MSB     = 471859712, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX2, SDL_BITMAPORDER_1234, 0, 2, 0), 
    	INDEX4LSB     = 303039488, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_4321, 0, 4, 0), 
    	INDEX4MSB     = 304088064, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX4, SDL_BITMAPORDER_1234, 0, 4, 0), 
    	INDEX8        = 318769153, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_INDEX8, 0, 0, 8, 1), 
    	RGB332        = 336660481, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED8, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_332, 8, 1), 
    	XRGB4444      = 353504258, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_4444, 12, 2), 
    	XBGR4444      = 357698562, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, SDL_PACKEDLAYOUT_4444, 12, 2), 
    	XRGB1555      = 353570562, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_1555, 15, 2), 
    	XBGR1555      = 357764866, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, SDL_PACKEDLAYOUT_1555, 15, 2), 
    	ARGB4444      = 355602434, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_4444, 16, 2), 
    	RGBA4444      = 356651010, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, SDL_PACKEDLAYOUT_4444, 16, 2), 
    	ABGR4444      = 359796738, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, SDL_PACKEDLAYOUT_4444, 16, 2), 
    	BGRA4444      = 360845314, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, SDL_PACKEDLAYOUT_4444, 16, 2), 
    	ARGB1555      = 355667970, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_1555, 16, 2), 
    	RGBA5551      = 356782082, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_RGBA, SDL_PACKEDLAYOUT_5551, 16, 2), 
    	ABGR1555      = 359862274, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_ABGR, SDL_PACKEDLAYOUT_1555, 16, 2), 
    	BGRA5551      = 360976386, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_BGRA, SDL_PACKEDLAYOUT_5551, 16, 2), 
    	RGB565        = 353701890, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_565, 16, 2), 
    	BGR565        = 357896194, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED16, SDL_PACKEDORDER_XBGR, SDL_PACKEDLAYOUT_565, 16, 2), 
    	RGB24         = 386930691, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_RGB, 0, 24, 3), 
    	BGR24         = 390076419, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU8, SDL_ARRAYORDER_BGR, 0, 24, 3), 
    	XRGB8888      = 370546692, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_8888, 24, 4), 
    	RGBX8888      = 371595268, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBX, SDL_PACKEDLAYOUT_8888, 24, 4), 
    	XBGR8888      = 374740996, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR, SDL_PACKEDLAYOUT_8888, 24, 4), 
    	BGRX8888      = 375789572, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRX, SDL_PACKEDLAYOUT_8888, 24, 4), 
    	ARGB8888      = 372645892, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_8888, 32, 4), 
    	RGBA8888      = 373694468, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_RGBA, SDL_PACKEDLAYOUT_8888, 32, 4), 
    	ABGR8888      = 376840196, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR, SDL_PACKEDLAYOUT_8888, 32, 4), 
    	BGRA8888      = 377888772, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_BGRA, SDL_PACKEDLAYOUT_8888, 32, 4), 
    	XRGB2101010   = 370614276, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XRGB, SDL_PACKEDLAYOUT_2101010, 32, 4), 
    	XBGR2101010   = 374808580, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_XBGR, SDL_PACKEDLAYOUT_2101010, 32, 4), 
    	ARGB2101010   = 372711428, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ARGB, SDL_PACKEDLAYOUT_2101010, 32, 4), 
    	ABGR2101010   = 376905732, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_PACKED32, SDL_PACKEDORDER_ABGR, SDL_PACKEDLAYOUT_2101010, 32, 4), 
    	RGB48         = 403714054, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU16, SDL_ARRAYORDER_RGB, 0, 48, 6), 
    	BGR48         = 406859782, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU16, SDL_ARRAYORDER_BGR, 0, 48, 6), 
    	RGBA64        = 404766728, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU16, SDL_ARRAYORDER_RGBA, 0, 64, 8), 
    	ARGB64        = 405815304, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU16, SDL_ARRAYORDER_ARGB, 0, 64, 8), 
    	BGRA64        = 407912456, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU16, SDL_ARRAYORDER_BGRA, 0, 64, 8), 
    	ABGR64        = 408961032, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYU16, SDL_ARRAYORDER_ABGR, 0, 64, 8), 
    	RGB48_FLOAT   = 437268486, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF16, SDL_ARRAYORDER_RGB, 0, 48, 6), 
    	BGR48_FLOAT   = 440414214, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF16, SDL_ARRAYORDER_BGR, 0, 48, 6), 
    	RGBA64_FLOAT  = 438321160, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF16, SDL_ARRAYORDER_RGBA, 0, 64, 8), 
    	ARGB64_FLOAT  = 439369736, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF16, SDL_ARRAYORDER_ARGB, 0, 64, 8), 
    	BGRA64_FLOAT  = 441466888, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF16, SDL_ARRAYORDER_BGRA, 0, 64, 8), 
    	ABGR64_FLOAT  = 442515464, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF16, SDL_ARRAYORDER_ABGR, 0, 64, 8), 
    	RGB96_FLOAT   = 454057996, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF32, SDL_ARRAYORDER_RGB, 0, 96, 12), 
    	BGR96_FLOAT   = 457203724, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF32, SDL_ARRAYORDER_BGR, 0, 96, 12), 
    	RGBA128_FLOAT = 455114768, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF32, SDL_ARRAYORDER_RGBA, 0, 128, 16), 
    	ARGB128_FLOAT = 456163344, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF32, SDL_ARRAYORDER_ARGB, 0, 128, 16), 
    	BGRA128_FLOAT = 458260496, 
    	// SDL_DEFINE_PIXELFORMAT(SDL_PIXELTYPE_ARRAYF32, SDL_ARRAYORDER_BGRA, 0, 128, 16), 
    	ABGR128_FLOAT = 459309072, 
    	YV12          = 842094169,  // *< Planar mode: Y + V + U  (3 planes)
    	// SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'), 
    	IYUV          = 1448433993, // *< Planar mode: Y + U + V  (3 planes)
    	// SDL_DEFINE_PIXELFOURCC('I', 'Y', 'U', 'V'), 
    	YUY2          = 844715353,  // *< Packed mode: Y0+U0+Y1+V0 (1 plane)
    	// SDL_DEFINE_PIXELFOURCC('Y', 'U', 'Y', '2'), 
    	UYVY          = 1498831189, // *< Packed mode: U0+Y0+V0+Y1 (1 plane)
    	// SDL_DEFINE_PIXELFOURCC('U', 'Y', 'V', 'Y'), 
    	YVYU          = 1431918169, // *< Packed mode: Y0+V0+Y1+U0 (1 plane)
    	// SDL_DEFINE_PIXELFOURCC('Y', 'V', 'Y', 'U'), 
    	NV12          = 842094158,  // *< Planar mode: Y + U/V interleaved  (2 planes)
    	// SDL_DEFINE_PIXELFOURCC('N', 'V', '1', '2'), 
    	NV21          = 825382478,  // *< Planar mode: Y + V/U interleaved  (2 planes)
    	// SDL_DEFINE_PIXELFOURCC('N', 'V', '2', '1'), 
    	P010          = 808530000,  // *< Planar mode: Y + U/V interleaved  (2 planes)
    	// SDL_DEFINE_PIXELFOURCC('P', '0', '1', '0'), 
    	EXTERNAL_OES  = 542328143,  // *< Android video texture format
    	// Aliases for RGBA byte arrays of color data, for the current platform 
    	RGBA32        = 376840196, 
    	ARGB32        = 377888772, 
    	BGRA32        = 372645892, 
    	ABGR32        = 373694468, 
    	RGBX32        = 374740996, 
    	XRGB32        = 375789572, 
    	BGRX32        = 370546692, 
    	XBGR32        = 371595268, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    PixelFormatDetails ¶

    PixelFormatDetails :: struct {
    	format:          PixelFormat,
    	bits_per_pixel:  u8,
    	bytes_per_pixel: u8,
    	_:               [2]u8,
    	Rmask:           u32,
    	Gmask:           u32,
    	Bmask:           u32,
    	Amask:           u32,
    	Rbits:           u8,
    	Gbits:           u8,
    	Bbits:           u8,
    	Abits:           u8,
    	Rshift:          u8,
    	Gshift:          u8,
    	Bshift:          u8,
    	Ashift:          u8,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    PixelType ¶

    PixelType :: enum i32 {
    	UNKNOWN, 
    	INDEX1, 
    	INDEX4, 
    	INDEX8, 
    	PACKED8, 
    	PACKED16, 
    	PACKED32, 
    	ARRAYU8, 
    	ARRAYU16, 
    	ARRAYU32, 
    	ARRAYF16, 
    	ARRAYF32, 
    	// appended at the end for compatibility with sdl2-compat:  
    	INDEX2, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    Point ¶

    Point :: distinct [2]i32
    Related Procedures With Parameters

    PowerState ¶

    PowerState :: enum i32 {
    	ERROR      = -1, // *< error determining power status
    	UNKNOWN,         // *< cannot determine power status
    	ON_BATTERY,      // *< Not plugged in, running on the battery
    	NO_BATTERY,      // *< Plugged in, no battery available
    	CHARGING,        // *< Plugged in, charging battery
    	CHARGED,         // *< Plugged in, battery charged
    }
    Related Procedures With Returns

    ProcessIO ¶

    ProcessIO :: enum i32 {
    	STDIO_INHERITED, // *< The I/O stream is inherited from the application.
    	STDIO_NULL,      // *< The I/O stream is ignored.
    	STDIO_APP,       // *< The I/O stream is connected to a new SDL_IOStream that the application can read or write
    	STDIO_REDIRECT,  // *< The I/O stream is redirected to an existing SDL_IOStream.
    }

    PropertyType ¶

    PropertyType :: enum i32 {
    	INVALID, 
    	POINTER, 
    	STRING, 
    	NUMBER, 
    	FLOAT, 
    	BOOLEAN, 
    }
    Related Procedures With Returns

    QuitEvent ¶

    QuitEvent :: struct {
    	using commonEvent: CommonEvent,
    }

    RWLock ¶

    RWLock :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    RenderEvent ¶

    RenderEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_RENDER_TARGETS_RESET, SDL_EVENT_RENDER_DEVICE_RESET, SDL_EVENT_RENDER_DEVICE_LOST 
    	windowID:    WindowID,
    }

    RendererLogicalPresentation ¶

    RendererLogicalPresentation :: enum i32 {
    	DISABLED,      // *< There is no logical size in effect
    	STRETCH,       // *< The rendered content is stretched to the output resolution
    	LETTERBOX,     // *< The rendered content is fit to the largest dimension and the other dimension is letterboxed with black bars
    	OVERSCAN,      // *< The rendered content is fit to the smallest dimension and the other dimension extends beyond the output bounds
    	INTEGER_SCALE, // *< The rendered content is scaled up by integer multiples to fit the output resolution
    }
    Related Procedures With Parameters

    RequestAndroidPermissionCallback ¶

    RequestAndroidPermissionCallback :: proc "c" (userdata: rawptr, permission: cstring, granted: bool)
    Related Procedures With Parameters

    Sandbox ¶

    Sandbox :: enum i32 {
    	NONE              = 0, 
    	UNKNOWN_CONTAINER, 
    	FLATPAK, 
    	SNAP, 
    	MACOS, 
    }
    Related Procedures With Returns

    ScaleMode ¶

    ScaleMode :: enum i32 {
    	NEAREST, // *< nearest pixel sampling
    	LINEAR,  // *< linear filtering
    }
    Related Procedures With Parameters

    Scancode ¶

    Scancode :: enum i32 {
    	UNKNOWN              = 0, 
    	A                    = 4, 
    	B                    = 5, 
    	C                    = 6, 
    	D                    = 7, 
    	E                    = 8, 
    	F                    = 9, 
    	G                    = 10, 
    	H                    = 11, 
    	I                    = 12, 
    	J                    = 13, 
    	K                    = 14, 
    	L                    = 15, 
    	M                    = 16, 
    	N                    = 17, 
    	O                    = 18, 
    	P                    = 19, 
    	Q                    = 20, 
    	R                    = 21, 
    	S                    = 22, 
    	T                    = 23, 
    	U                    = 24, 
    	V                    = 25, 
    	W                    = 26, 
    	X                    = 27, 
    	Y                    = 28, 
    	Z                    = 29, 
    	_1                   = 30, 
    	_2                   = 31, 
    	_3                   = 32, 
    	_4                   = 33, 
    	_5                   = 34, 
    	_6                   = 35, 
    	_7                   = 36, 
    	_8                   = 37, 
    	_9                   = 38, 
    	_0                   = 39, 
    	RETURN               = 40, 
    	ESCAPE               = 41, 
    	BACKSPACE            = 42, 
    	TAB                  = 43, 
    	SPACE                = 44, 
    	MINUS                = 45, 
    	EQUALS               = 46, 
    	LEFTBRACKET          = 47, 
    	RIGHTBRACKET         = 48, 
    	BACKSLASH            = 49,  // *< Located at the lower left of the return
    	                 *   key on ISO keyboards and at the right end
    	                 *   of the QWERTY row on ANSI keyboards.
    	                 *   Produces REVERSE SOLIDUS (backslash) and
    	                 *   VERTICAL LINE in a US layout, REVERSE
    	                 *   SOLIDUS and VERTICAL LINE in a UK Mac
    	                 *   layout, NUMBER SIGN and TILDE in a UK
    	                 *   Windows layout, DOLLAR SIGN and POUND SIGN
    	                 *   in a Swiss German layout, NUMBER SIGN and
    	                 *   APOSTROPHE in a German layout, GRAVE
    	                 *   ACCENT and POUND SIGN in a French Mac
    	                 *   layout, and ASTERISK and MICRO SIGN in a
    	                 *   French Windows layout.
    	NONUSHASH            = 50,  // *< ISO USB keyboards actually use this code
    	                 *   instead of 49 for the same key, but all
    	                 *   OSes I've seen treat the two codes
    	                 *   identically. So, as an implementor, unless
    	                 *   your keyboard generates both of those
    	                 *   codes and your OS treats them differently,
    	                 *   you should generate BACKSLASH
    	                 *   instead of this code. As a user, you
    	                 *   should not rely on this code because SDL
    	                 *   will never generate it with most (all?)
    	                 *   keyboards.
    	SEMICOLON            = 51, 
    	APOSTROPHE           = 52, 
    	GRAVE                = 53,  // *< Located in the top left corner (on both ANSI
    	             *   and ISO keyboards). Produces GRAVE ACCENT and
    	             *   TILDE in a US Windows layout and in US and UK
    	             *   Mac layouts on ANSI keyboards, GRAVE ACCENT
    	             *   and NOT SIGN in a UK Windows layout, SECTION
    	             *   SIGN and PLUS-MINUS SIGN in US and UK Mac
    	             *   layouts on ISO keyboards, SECTION SIGN and
    	             *   DEGREE SIGN in a Swiss German layout (Mac:
    	             *   only on ISO keyboards), CIRCUMFLEX ACCENT and
    	             *   DEGREE SIGN in a German layout (Mac: only on
    	             *   ISO keyboards), SUPERSCRIPT TWO and TILDE in a
    	             *   French Windows layout, COMMERCIAL AT and
    	             *   NUMBER SIGN in a French Mac layout on ISO
    	             *   keyboards, and LESS-THAN SIGN and GREATER-THAN
    	             *   SIGN in a Swiss German, German, or French Mac
    	             *   layout on ANSI keyboards.
    	COMMA                = 54, 
    	PERIOD               = 55, 
    	SLASH                = 56, 
    	CAPSLOCK             = 57, 
    	F1                   = 58, 
    	F2                   = 59, 
    	F3                   = 60, 
    	F4                   = 61, 
    	F5                   = 62, 
    	F6                   = 63, 
    	F7                   = 64, 
    	F8                   = 65, 
    	F9                   = 66, 
    	F10                  = 67, 
    	F11                  = 68, 
    	F12                  = 69, 
    	PRINTSCREEN          = 70, 
    	SCROLLLOCK           = 71, 
    	PAUSE                = 72, 
    	INSERT               = 73,  // *< insert on PC, help on some Mac keyboards (but
    	                           does send code 73, not 117)
    	HOME                 = 74, 
    	PAGEUP               = 75, 
    	DELETE               = 76, 
    	END                  = 77, 
    	PAGEDOWN             = 78, 
    	RIGHT                = 79, 
    	LEFT                 = 80, 
    	DOWN                 = 81, 
    	UP                   = 82, 
    	NUMLOCKCLEAR         = 83,  // *< num lock on PC, clear on Mac keyboards
    	KP_DIVIDE            = 84, 
    	KP_MULTIPLY          = 85, 
    	KP_MINUS             = 86, 
    	KP_PLUS              = 87, 
    	KP_ENTER             = 88, 
    	KP_1                 = 89, 
    	KP_2                 = 90, 
    	KP_3                 = 91, 
    	KP_4                 = 92, 
    	KP_5                 = 93, 
    	KP_6                 = 94, 
    	KP_7                 = 95, 
    	KP_8                 = 96, 
    	KP_9                 = 97, 
    	KP_0                 = 98, 
    	KP_PERIOD            = 99, 
    	NONUSBACKSLASH       = 100, // *< This is the additional key that ISO
    	                       *   keyboards have over ANSI ones,
    	                       *   located between left shift and Y.
    	                       *   Produces GRAVE ACCENT and TILDE in a
    	                       *   US or UK Mac layout, REVERSE SOLIDUS
    	                       *   (backslash) and VERTICAL LINE in a
    	                       *   US or UK Windows layout, and
    	                       *   LESS-THAN SIGN and GREATER-THAN SIGN
    	                       *   in a Swiss German, German, or French
    	                       *   layout.
    	APPLICATION          = 101, // *< windows contextual menu, compose
    	POWER                = 102, // *< The USB document says this is a status flag,
    	              *   not a physical key - but some Mac keyboards
    	              *   do have a power key.
    	KP_EQUALS            = 103, 
    	F13                  = 104, 
    	F14                  = 105, 
    	F15                  = 106, 
    	F16                  = 107, 
    	F17                  = 108, 
    	F18                  = 109, 
    	F19                  = 110, 
    	F20                  = 111, 
    	F21                  = 112, 
    	F22                  = 113, 
    	F23                  = 114, 
    	F24                  = 115, 
    	EXECUTE              = 116, 
    	HELP                 = 117, // *< AL Integrated Help Center
    	MENU                 = 118, // *< Menu (show menu)
    	SELECT               = 119, 
    	STOP                 = 120, // *< AC Stop
    	AGAIN                = 121, // *< AC Redo/Repeat
    	UNDO                 = 122, // *< AC Undo
    	CUT                  = 123, // *< AC Cut
    	COPY                 = 124, // *< AC Copy
    	PASTE                = 125, // *< AC Paste
    	FIND                 = 126, // *< AC Find
    	MUTE                 = 127, 
    	VOLUMEUP             = 128, 
    	VOLUMEDOWN           = 129, 
    	// not sure whether there's a reason to enable these 
    	//     LOCKINGCAPSLOCK = 130,  
    	//     LOCKINGNUMLOCK = 131, 
    	//     LOCKINGSCROLLLOCK = 132, 
    	KP_COMMA             = 133, 
    	KP_EQUALSAS400       = 134, 
    	INTERNATIONAL1       = 135, // *< used on Asian keyboards, see
    	                                    footnotes in USB doc
    	INTERNATIONAL2       = 136, 
    	INTERNATIONAL3       = 137, // *< Yen
    	INTERNATIONAL4       = 138, 
    	INTERNATIONAL5       = 139, 
    	INTERNATIONAL6       = 140, 
    	INTERNATIONAL7       = 141, 
    	INTERNATIONAL8       = 142, 
    	INTERNATIONAL9       = 143, 
    	LANG1                = 144, // *< Hangul/English toggle
    	LANG2                = 145, // *< Hanja conversion
    	LANG3                = 146, // *< Katakana
    	LANG4                = 147, // *< Hiragana
    	LANG5                = 148, // *< Zenkaku/Hankaku
    	LANG6                = 149, // *< reserved
    	LANG7                = 150, // *< reserved
    	LANG8                = 151, // *< reserved
    	LANG9                = 152, // *< reserved
    	ALTERASE             = 153, // *< Erase-Eaze
    	SYSREQ               = 154, 
    	CANCEL               = 155, // *< AC Cancel
    	CLEAR                = 156, 
    	PRIOR                = 157, 
    	RETURN2              = 158, 
    	SEPARATOR            = 159, 
    	OUT                  = 160, 
    	OPER                 = 161, 
    	CLEARAGAIN           = 162, 
    	CRSEL                = 163, 
    	EXSEL                = 164, 
    	KP_00                = 176, 
    	KP_000               = 177, 
    	THOUSANDSSEPARATOR   = 178, 
    	DECIMALSEPARATOR     = 179, 
    	CURRENCYUNIT         = 180, 
    	CURRENCYSUBUNIT      = 181, 
    	KP_LEFTPAREN         = 182, 
    	KP_RIGHTPAREN        = 183, 
    	KP_LEFTBRACE         = 184, 
    	KP_RIGHTBRACE        = 185, 
    	KP_TAB               = 186, 
    	KP_BACKSPACE         = 187, 
    	KP_A                 = 188, 
    	KP_B                 = 189, 
    	KP_C                 = 190, 
    	KP_D                 = 191, 
    	KP_E                 = 192, 
    	KP_F                 = 193, 
    	KP_XOR               = 194, 
    	KP_POWER             = 195, 
    	KP_PERCENT           = 196, 
    	KP_LESS              = 197, 
    	KP_GREATER           = 198, 
    	KP_AMPERSAND         = 199, 
    	KP_DBLAMPERSAND      = 200, 
    	KP_VERTICALBAR       = 201, 
    	KP_DBLVERTICALBAR    = 202, 
    	KP_COLON             = 203, 
    	KP_HASH              = 204, 
    	KP_SPACE             = 205, 
    	KP_AT                = 206, 
    	KP_EXCLAM            = 207, 
    	KP_MEMSTORE          = 208, 
    	KP_MEMRECALL         = 209, 
    	KP_MEMCLEAR          = 210, 
    	KP_MEMADD            = 211, 
    	KP_MEMSUBTRACT       = 212, 
    	KP_MEMMULTIPLY       = 213, 
    	KP_MEMDIVIDE         = 214, 
    	KP_PLUSMINUS         = 215, 
    	KP_CLEAR             = 216, 
    	KP_CLEARENTRY        = 217, 
    	KP_BINARY            = 218, 
    	KP_OCTAL             = 219, 
    	KP_DECIMAL           = 220, 
    	KP_HEXADECIMAL       = 221, 
    	LCTRL                = 224, 
    	LSHIFT               = 225, 
    	LALT                 = 226, // *< alt, option
    	LGUI                 = 227, // *< windows, command (apple), meta
    	RCTRL                = 228, 
    	RSHIFT               = 229, 
    	RALT                 = 230, // *< alt gr, option
    	RGUI                 = 231, // *< windows, command (apple), meta
    	MODE                 = 257, // *< I'm not sure if this is really not covered
    	                *   by any of the above, but since there's a
    	                *   special SDL_KMOD_MODE for it I'm adding it here
    	SLEEP                = 258, // *< Sleep
    	WAKE                 = 259, // *< Wake
    	CHANNEL_INCREMENT    = 260, // *< Channel Increment
    	CHANNEL_DECREMENT    = 261, // *< Channel Decrement
    	MEDIA_PLAY           = 262, // *< Play
    	MEDIA_PAUSE          = 263, // *< Pause
    	MEDIA_RECORD         = 264, // *< Record
    	MEDIA_FAST_FORWARD   = 265, // *< Fast Forward
    	MEDIA_REWIND         = 266, // *< Rewind
    	MEDIA_NEXT_TRACK     = 267, // *< Next Track
    	MEDIA_PREVIOUS_TRACK = 268, // *< Previous Track
    	MEDIA_STOP           = 269, // *< Stop
    	MEDIA_EJECT          = 270, // *< Eject
    	MEDIA_PLAY_PAUSE     = 271, // *< Play / Pause
    	MEDIA_SELECT         = 272, // Media Select
    	AC_NEW               = 273, // *< AC New
    	AC_OPEN              = 274, // *< AC Open
    	AC_CLOSE             = 275, // *< AC Close
    	AC_EXIT              = 276, // *< AC Exit
    	AC_SAVE              = 277, // *< AC Save
    	AC_PRINT             = 278, // *< AC Print
    	AC_PROPERTIES        = 279, // *< AC Properties
    	AC_SEARCH            = 280, // *< AC Search
    	AC_HOME              = 281, // *< AC Home
    	AC_BACK              = 282, // *< AC Back
    	AC_FORWARD           = 283, // *< AC Forward
    	AC_STOP              = 284, // *< AC Stop
    	AC_REFRESH           = 285, // *< AC Refresh
    	AC_BOOKMARKS         = 286, // *< AC Bookmarks
    	SOFTLEFT             = 287, // *< Usually situated below the display on phones and
    	                              used as a multi-function feature key for selecting
    	                              a software defined function shown on the bottom left
    	                              of the display.
    	SOFTRIGHT            = 288, // *< Usually situated below the display on phones and
    	                               used as a multi-function feature key for selecting
    	                               a software defined function shown on the bottom right
    	                               of the display.
    	CALL                 = 289, // *< Used for accepting phone calls.
    	ENDCALL              = 290, // *< Used for rejecting phone calls.
    	RESERVED             = 400, // *< 400-500 reserved for dynamic keycodes
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    Sensor ¶

    Sensor :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    SensorEvent ¶

    SensorEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_SENSOR_UPDATE 
    	which:            SensorID,
    	// *< The instance ID of the sensor 
    	data:             [6]f32,
    	// *< Up to 6 values from the sensor - additional values can be queried using SDL_GetSensorData() 
    	sensor_timestamp: u64,
    }

    SensorID ¶

    SensorID :: distinct u32
    Related Procedures With Parameters
    Related Procedures With Returns

    SensorType ¶

    SensorType :: enum i32 {
    	INVALID = -1, // *< Returned for an invalid sensor
    	UNKNOWN,      // *< Unknown sensor type
    	ACCEL,        // *< Accelerometer
    	GYRO,         // *< Gyroscope
    	ACCEL_L,      // *< Accelerometer for left Joy-Con controller and Wii nunchuk
    	GYRO_L,       // *< Gyroscope for left Joy-Con controller
    	ACCEL_R,      // *< Accelerometer for right Joy-Con controller
    	GYRO_R,       // *< Gyroscope for right Joy-Con controller
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    SharedObject ¶

    SharedObject :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    Sint16 ¶

    Sint16 :: i16

    Sint32 ¶

    Sint32 :: i32

    Sint64 ¶

    Sint64 :: i64

    Sint8 ¶

    Sint8 :: i8

    SpinLock ¶

    SpinLock :: distinct i32
    Related Procedures With Parameters

    StorageInterface ¶

    StorageInterface :: struct {
    	// The version of this interface 
    	version:         u32,
    	// Called when the storage is closed 
    	close:           proc "c" (userdata: rawptr) -> bool,
    	// Optional, returns whether the storage is currently ready for access 
    	ready:           proc "c" (userdata: rawptr) -> bool,
    	// Enumerate a directory, optional for write-only storage 
    	enumerate:       proc "c" (userdata: rawptr, path: cstring, callback: EnumerateDirectoryCallback, callback_userdata: rawptr) -> bool,
    	// Get path information, optional for write-only storage 
    	info:            proc "c" (userdata: rawptr, path: cstring, info: ^PathInfo) -> bool,
    	// Read a file from storage, optional for write-only storage 
    	read_file:       proc "c" (userdata: rawptr, path: cstring, destination: rawptr, length: u64) -> bool,
    	// Write a file to storage, optional for read-only storage 
    	write_file:      proc "c" (userdata: rawptr, path: cstring, source: rawptr, length: u64) -> bool,
    	// Create a directory, optional for read-only storage 
    	mkdir:           proc "c" (userdata: rawptr, path: cstring) -> bool,
    	// Remove a file or empty directory, optional for read-only storage 
    	remove:          proc "c" (userdata: rawptr, path: cstring) -> bool,
    	// Rename a path, optional for read-only storage 
    	rename:          proc "c" (userdata: rawptr, oldpath, newpath: cstring) -> bool,
    	// Copy a file, optional for read-only storage 
    	copy:            proc "c" (userdata: rawptr, oldpath, newpath: cstring) -> bool,
    	// Get the space remaining, optional for read-only storage 
    	space_remaining: proc "c" (userdata: rawptr) -> u64,
    }
    Related Procedures With Parameters

    Surface ¶

    Surface :: struct {
    	flags:    SurfaceFlags,
    	// *< The flags of the surface, read-only 
    	format:   PixelFormat,
    	// *< The format of the surface, read-only 
    	w:        i32,
    	// *< The width of the surface, read-only. 
    	h:        i32,
    	// *< The height of the surface, read-only. 
    	pitch:    i32,
    	// *< The distance in bytes between rows of pixels, read-only 
    	pixels:   rawptr,
    	// *< A pointer to the pixels of the surface, the pixels are writeable if non-NULL 
    	refcount: i32,
    	// *< Application reference count, used when freeing surface 
    	reserved: rawptr,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    SurfaceFlag ¶

    SurfaceFlag :: enum u32 {
    	PREALLOCATED = 0, // *< Surface uses preallocated pixel memory
    	LOCK_NEEDED  = 1, // *< Surface needs to be locked to access pixels
    	LOCKED       = 2, // *< Surface is currently locked
    	SIMD_ALIGNED = 3, // *< Surface uses pixel memory allocated with SDL_aligned_alloc()
    }

    SystemCursor ¶

    SystemCursor :: enum i32 {
    	DEFAULT,     // *< Default cursor. Usually an arrow.
    	TEXT,        // *< Text selection. Usually an I-beam.
    	WAIT,        // *< Wait. Usually an hourglass or watch or spinning ball.
    	CROSSHAIR,   // *< Crosshair.
    	PROGRESS,    // *< Program is busy but still interactive. Usually it's WAIT with an arrow.
    	NWSE_RESIZE, // *< Double arrow pointing northwest and southeast.
    	NESW_RESIZE, // *< Double arrow pointing northeast and southwest.
    	EW_RESIZE,   // *< Double arrow pointing west and east.
    	NS_RESIZE,   // *< Double arrow pointing north and south.
    	MOVE,        // *< Four pointed arrow pointing north, south, east, and west.
    	NOT_ALLOWED, // *< Not permitted. Usually a slashed circle or crossbones.
    	POINTER,     // *< Pointer that indicates a link. Usually a pointing hand.
    	NW_RESIZE,   // *< Window resize top-left. This may be a single arrow or a double arrow like NWSE_RESIZE.
    	N_RESIZE,    // *< Window resize top. May be NS_RESIZE.
    	NE_RESIZE,   // *< Window resize top-right. May be NESW_RESIZE.
    	E_RESIZE,    // *< Window resize right. May be EW_RESIZE.
    	SE_RESIZE,   // *< Window resize bottom-right. May be NWSE_RESIZE.
    	S_RESIZE,    // *< Window resize bottom. May be NS_RESIZE.
    	SW_RESIZE,   // *< Window resize bottom-left. May be NESW_RESIZE.
    	W_RESIZE,    // *< Window resize left. May be EW_RESIZE.
    }
    Related Procedures With Parameters

    SystemTheme ¶

    SystemTheme :: enum i32 {
    	UNKNOWN, // *< Unknown system theme
    	LIGHT,   // *< Light colored system theme
    	DARK,    // *< Dark colored system theme
    }
    Related Procedures With Returns

    TLSDestructorCallback ¶

    TLSDestructorCallback :: proc "c" (value: rawptr)
    Related Procedures With Parameters

    TextEditingCandidatesEvent ¶

    TextEditingCandidatesEvent :: struct {
    	using commonEvent:  CommonEvent,
    	// *< SDL_EVENT_TEXT_EDITING_CANDIDATES 
    	windowID:           WindowID,
    	// *< The window with keyboard focus, if any 
    	candidates:         [^]cstring `fmt:"v,num_candidates"`,
    	// *< The list of candidates, or NULL if there are no candidates available 
    	num_candidates:     i32,
    	// *< The number of strings in `candidates` 
    	selected_candidate: i32,
    	// *< The index of the selected candidate, or -1 if no candidate is selected 
    	horizontal:         bool,
    	// *< true if the list is horizontal, false if it's vertical 
    	_:                  u8,
    	_:                  u8,
    	_:                  u8,
    }

    TextEditingEvent ¶

    TextEditingEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_TEXT_EDITING 
    	windowID:    WindowID,
    	// *< The window with keyboard focus, if any 
    	text:        cstring,
    	// *< The editing text 
    	start:       i32,
    	// *< The start cursor of selected editing text, or -1 if not set 
    	length:      i32,
    }

    TextInputEvent ¶

    TextInputEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_TEXT_INPUT 
    	windowID:    WindowID,
    	// *< The window with keyboard focus, if any 
    	text:        cstring,
    }

    TextInputType ¶

    TextInputType :: enum i32 {
    	TEXT,                    // *< The input is text
    	TEXT_NAME,               // *< The input is a person's name
    	TEXT_EMAIL,              // *< The input is an e-mail address
    	TEXT_USERNAME,           // *< The input is a username
    	TEXT_PASSWORD_HIDDEN,    // *< The input is a secure password that is hidden
    	TEXT_PASSWORD_VISIBLE,   // *< The input is a secure password that is visible
    	NUMBER,                  // *< The input is a number
    	NUMBER_PASSWORD_HIDDEN,  // *< The input is a secure PIN that is hidden
    	NUMBER_PASSWORD_VISIBLE, // *< The input is a secure PIN that is visible
    }

    TextureAccess ¶

    TextureAccess :: enum i32 {
    	STATIC,    // *< Changes rarely, not lockable
    	STREAMING, // *< Changes frequently, lockable
    	TARGET,    // *< Texture can be used as a render target
    }
    Related Procedures With Parameters

    ThreadFunction ¶

    ThreadFunction :: proc "c" (data: rawptr) -> i32
    Related Procedures With Parameters

    ThreadID ¶

    ThreadID :: distinct u64
    Related Procedures With Returns

    ThreadPriority ¶

    ThreadPriority :: enum i32 {
    	LOW, 
    	NORMAL, 
    	HIGH, 
    	TIME_CRITICAL, 
    }
    Related Procedures With Parameters

    ThreadState ¶

    ThreadState :: enum i32 {
    	UNKNOWN,  // *< The thread is not valid
    	ALIVE,    // *< The thread is currently running
    	DETACHED, // *< The thread is detached and can't be waited on
    	COMPLETE, // *< The thread has finished and should be cleaned up with SDL_WaitThread()
    }
    Related Procedures With Returns

    Time ¶

    Time :: distinct i64
     

    * * SDL times are signed, 64-bit integers representing nanoseconds since the * Unix epoch (Jan 1, 1970). * * They can be converted between POSIX time_t values with SDL_NS_TO_SECONDS() * and SDL_SECONDS_TO_NS(), and between Windows FILETIME values with * SDL_TimeToWindows() and SDL_TimeFromWindows(). * * \since This macro is available since SDL 3.2.0. * * \sa SDL_MAX_SINT64 * \sa SDL_MIN_SINT64

    Related Procedures With Parameters
    Related Procedures With Returns

    TimeFormat ¶

    TimeFormat :: enum i32 {
    	HR24 = 0, // *< 24 hour time
    	HR12 = 1, // *< 12 hour time
    }
    Related Procedures With Parameters

    TimerCallback ¶

    TimerCallback :: proc "c" (userdata: rawptr, timerID: TimerID, interval: u32) -> u32
    Related Procedures With Parameters

    TimerID ¶

    TimerID :: distinct u32
    Related Procedures With Parameters
    Related Procedures With Returns

    TouchDeviceType ¶

    TouchDeviceType :: enum i32 {
    	INVALID           = -1, 
    	DIRECT,                 // *< touch screen with window-relative coordinates
    	INDIRECT_ABSOLUTE,      // *< trackpad with absolute device coordinates
    	INDIRECT_RELATIVE,      // *< trackpad with screen cursor-relative coordinates
    }
    Related Procedures With Returns

    TouchFingerEvent ¶

    TouchFingerEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_FINGER_DOWN, SDL_EVENT_FINGER_UP, SDL_EVENT_FINGER_MOTION, or SDL_EVENT_FINGER_CANCELED 
    	touchID:     TouchID,
    	// *< The touch device id 
    	fingerID:    FingerID,
    	x:           f32,
    	// *< Normalized in the range 0...1 
    	y:           f32,
    	// *< Normalized in the range 0...1 
    	dx:          f32,
    	// *< Normalized in the range -1...1 
    	dy:          f32,
    	// *< Normalized in the range -1...1 
    	pressure:    f32,
    	// *< Normalized in the range 0...1 
    	windowID:    WindowID,
    }

    TouchID ¶

    TouchID :: distinct u64
    Related Procedures With Parameters
    Related Procedures With Returns
    Related Constants

    TransferCharacteristics ¶

    TransferCharacteristics :: enum i32 {
    	UNKNOWN       = 0, 
    	BT709         = 1,  // *< Rec. ITU-R BT.709-6 / ITU-R BT1361
    	UNSPECIFIED   = 2, 
    	GAMMA22       = 4,  // *< ITU-R BT.470-6 System M / ITU-R BT1700 625 PAL & SECAM
    	GAMMA28       = 5,  // *< ITU-R BT.470-6 System B, G
    	BT601         = 6,  // *< SMPTE ST 170M / ITU-R BT.601-7 525 or 625
    	SMPTE240      = 7,  // *< SMPTE ST 240M
    	LINEAR        = 8, 
    	LOG100        = 9, 
    	LOG100_SQRT10 = 10, 
    	IEC61966      = 11, // *< IEC 61966-2-4
    	BT1361        = 12, // *< ITU-R BT1361 Extended Colour Gamut
    	SRGB          = 13, // *< IEC 61966-2-1 (sRGB or sYCC)
    	BT2020_10BIT  = 14, // *< ITU-R BT2020 for 10-bit system
    	BT2020_12BIT  = 15, // *< ITU-R BT2020 for 12-bit system
    	PQ            = 16, // *< SMPTE ST 2084 for 10-, 12-, 14- and 16-bit systems
    	SMPTE428      = 17, // *< SMPTE ST 428-1
    	HLG           = 18, // *< ARIB STD-B67, known as "hybrid log-gamma" (HLG)
    	CUSTOM        = 31, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    Tray ¶

    Tray :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    TrayCallback ¶

    TrayCallback :: proc "c" (userdata: rawptr, entry: ^TrayEntry)
    Related Procedures With Parameters

    TrayEntryFlag ¶

    TrayEntryFlag :: enum u32 {
    	BUTTON   = 0,  // *< Make the entry a simple button. Required.
    	CHECKBOX = 1,  // *< Make the entry a checkbox. Required.
    	SUBMENU  = 2,  // *< Prepare the entry to have a submenu. Required
    	DISABLED = 31, // *< Make the entry disabled. Optional.
    	CHECKED  = 30, // *< Make the entry checked. This is valid only for checkboxes. Optional.
    }

    TrayEntryFlags ¶

    TrayEntryFlags :: distinct bit_set[TrayEntryFlag; u32]
    Related Procedures With Parameters
    Related Constants

    Uint16 ¶

    Uint16 :: u16

    Uint32 ¶

    Uint32 :: u32

    Uint64 ¶

    Uint64 :: u64

    Uint8 ¶

    Uint8 :: u8

    UserEvent ¶

    UserEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_USER through SDL_EVENT_LAST-1, Uint32 because these are not in the SDL_EventType enumeration 
    	windowID:    WindowID,
    	// *< The associated window if any 
    	code:        i32,
    	// *< User defined event code 
    	data1:       rawptr,
    	// *< User defined data pointer 
    	data2:       rawptr,
    }

    Vertex ¶

    Vertex :: struct {
    	position:  FPoint,
    	// *< Vertex position, in SDL_Renderer coordinates  
    	color:     FColor,
    	// *< Vertex color 
    	tex_coord: FPoint,
    }
    Related Procedures With Parameters

    VirtualJoystickDesc ¶

    VirtualJoystickDesc :: struct {
    	version:           u32,
    	// *< the version of this interface 
    	type:              u16,
    	// *< `SDL_JoystickType` 
    	padding:           u16,
    	// *< unused 
    	vendor_id:         u16,
    	// *< the USB vendor ID of this joystick 
    	product_id:        u16,
    	// *< the USB product ID of this joystick 
    	naxes:             u16,
    	// *< the number of axes on this joystick 
    	nbuttons:          u16,
    	// *< the number of buttons on this joystick 
    	nballs:            u16,
    	// *< the number of balls on this joystick 
    	nhats:             u16,
    	// *< the number of hats on this joystick 
    	ntouchpads:        u16,
    	// *< the number of touchpads on this joystick, requires `touchpads` to point at valid descriptions 
    	nsensors:          u16,
    	// *< the number of sensors on this joystick, requires `sensors` to point at valid descriptions 
    	padding2:          [2]u16,
    	// *< unused 
    	button_mask:       u32,
    	// *< A mask of which buttons are valid for this controller
    	//                                      e.g. (1 << SDL_GAMEPAD_BUTTON_SOUTH) 
    	axis_mask:         u32,
    	// *< A mask of which axes are valid for this controller
    	// 	                             e.g. (1 << SDL_GAMEPAD_AXIS_LEFTX) 
    	name:              cstring,
    	// *< the name of the joystick 
    	touchpads:         [^]VirtualJoystickTouchpadDesc `fmt:"v,ntouchpads"`,
    	// *< A pointer to an array of touchpad descriptions, required if `ntouchpads` is > 0 
    	sensors:           [^]VirtualJoystickSensorDesc `fmt:"v,nsensors"`,
    	// *< A pointer to an array of sensor descriptions, required if `nsensors` is > 0 
    	userdata:          rawptr,
    	// *< User data pointer passed to callbacks 
    	Update:            proc "c" (userdata: rawptr),
    	// *< Called when the joystick state should be updated 
    	SetPlayerIndex:    proc "c" (userdata: rawptr, player_index: i32),
    	// *< Called when the player index is set 
    	Rumble:            proc "c" (userdata: rawptr, low_frequency_rumble, high_frequency_rumble: u16) -> bool,
    	// *< Implements SDL_RumbleJoystick() 
    	RumbleTriggers:    proc "c" (userdata: rawptr, left_rumble, right_rumble: u16) -> bool,
    	// *< Implements SDL_RumbleJoystickTriggers() 
    	SetLED:            proc "c" (userdata: rawptr, red, green, blue: u8) -> bool,
    	// *< Implements SDL_SetJoystickLED() 
    	SendEffect:        proc "c" (userdata: rawptr, data: rawptr, size: i32) -> bool,
    	// *< Implements SDL_SendJoystickEffect() 
    	SetSensorsEnabled: proc "c" (userdata: rawptr, enabled: bool) -> bool,
    	// *< Implements SDL_SetGamepadSensorEnabled() 
    	Cleanup:           proc "c" (userdata: rawptr),
    }
    Related Procedures With Parameters

    VirtualJoystickSensorDesc ¶

    VirtualJoystickSensorDesc :: struct {
    	type: SensorType,
    	// *< the type of this sensor 
    	rate: f32,
    }

    VirtualJoystickTouchpadDesc ¶

    VirtualJoystickTouchpadDesc :: struct {
    	nfingers: u16,
    	// *< the number of simultaneous fingers on this touchpad 
    	padding:  [3]u16,
    }

    Window ¶

    Window :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    WindowEvent ¶

    WindowEvent :: struct {
    	using commonEvent: CommonEvent,
    	// *< SDL_EVENT_WINDOW_* 
    	windowID:    WindowID,
    	// *< The associated window 
    	data1:       i32,
    	// *< event dependent data 
    	data2:       i32,
    }

    WindowFlag ¶

    WindowFlag :: enum u64 {
    	FULLSCREEN          = 0, 
    	OPENGL              = 1, 
    	OCCLUDED            = 2, 
    	HIDDEN              = 3, 
    	BORDERLESS          = 4, 
    	RESIZABLE           = 5, 
    	MINIMIZED           = 6, 
    	MAXIMIZED           = 7, 
    	MOUSE_GRABBED       = 8, 
    	INPUT_FOCUS         = 9, 
    	MOUSE_FOCUS         = 10, 
    	EXTERNAL            = 11, 
    	MODAL               = 12, 
    	HIGH_PIXEL_DENSITY  = 13, 
    	MOUSE_CAPTURE       = 14, 
    	MOUSE_RELATIVE_MODE = 15, 
    	ALWAYS_ON_TOP       = 16, 
    	UTILITY             = 17, 
    	TOOLTIP             = 18, 
    	POPUP_MENU          = 19, 
    	KEYBOARD_GRABBED    = 20, 
    	VULKAN              = 28, 
    	METAL               = 29, 
    	TRANSPARENT         = 30, 
    	NOT_FOCUSABLE       = 31, 
    }

    WindowID ¶

    WindowID :: distinct u32
    Related Procedures With Parameters
    Related Procedures With Returns

    WindowsMessageHook ¶

    WindowsMessageHook :: proc(userdata: rawptr, msg: ^sys_windows.MSG) -> bool
    Related Procedures With Parameters

    X11EventHook ¶

    X11EventHook :: proc "c" (userdata: rawptr, xevent: rawptr) -> bool
    Related Procedures With Parameters

    XTaskQueueHandle ¶

    XTaskQueueHandle :: distinct rawptr
    Related Procedures With Parameters

    XUserHandle ¶

    XUserHandle :: distinct rawptr
    Related Procedures With Parameters

    calloc_func ¶

    calloc_func :: proc "c" (nmemb: uint, size: uint) -> rawptr
    Related Procedures With Parameters

    free_func ¶

    free_func :: proc "c" (mem: rawptr)
    Related Procedures With Parameters

    hid_bus_type ¶

    hid_bus_type :: enum i32 {
    	// Unknown bus type 
    	UNKNOWN   = 0, 
    	// USB bus
    	// 	    Specifications:
    	// 	    https://usb.org/hid 
    	USB       = 1, 
    	// Bluetooth or Bluetooth LE bus
    	// 	    Specifications:
    	// 	    https://www.bluetooth.com/specifications/specs/human-interface-device-profile-1-1-1/
    	// 	    https://www.bluetooth.com/specifications/specs/hid-service-1-0/
    	// 	    https://www.bluetooth.com/specifications/specs/hid-over-gatt-profile-1-0/ 
    	BLUETOOTH = 2, 
    	// I2C bus
    	// 	    Specifications:
    	// 	    https://docs.microsoft.com/previous-versions/windows/hardware/design/dn642101(v=vs.85) 
    	I2C       = 3, 
    	// SPI bus
    	// 	    Specifications:
    	// 	    https://www.microsoft.com/download/details.aspx?id=103325 
    	SPI       = 4, 
    }

    hid_device_info ¶

    hid_device_info :: struct {
    	// Platform-specific device path 
    	path:                [^]u8 `fmt:"q,0"`,
    	// Device Vendor ID 
    	vendor_id:           u16,
    	// Device Product ID 
    	product_id:          u16,
    	// Serial Number 
    	serial_number:       [^]u16 `fmt:"q,0"`,
    	// Device Release Number in binary-coded decimal,
    	// 	also known as Device Version Number 
    	release_number:      u16,
    	// Manufacturer String 
    	manufacturer_string: [^]u16 `fmt:"q,0"`,
    	// Product string 
    	product_string:      [^]u16 `fmt:"q,0"`,
    	// Usage Page for this Device/Interface
    	// 	(Windows/Mac/hidraw only) 
    	usage_page:          u16,
    	// Usage for this Device/Interface
    	// 	(Windows/Mac/hidraw only) 
    	usage:               u16,
    	// The USB interface which this logical device
    	// 	    represents.
    	// 
    	// 	    Valid only if the device is a USB HID device.
    	// 	    Set to -1 in all other cases.
    	interface_number:    i32,
    	// Additional information about the USB interface.
    	// 	Valid on libusb and Android implementations. 
    	interface_class:     i32,
    	interface_subclass:  i32,
    	interface_protocol:  i32,
    	// Underlying bus type 
    	bus_type:            hid_bus_type,
    	// Pointer to the next device 
    	next:                ^hid_device_info,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    iOSAnimationCallback ¶

    iOSAnimationCallback :: proc "c" (userdata: rawptr)
    Related Procedures With Parameters

    iconv_data_t ¶

    iconv_data_t :: struct {}
    Related Procedures With Parameters
    Related Procedures With Returns

    main_func ¶

    main_func :: proc(argc: i32, argv: [^]cstring)
    Related Procedures With Parameters

    malloc_func ¶

    malloc_func :: proc "c" (size: uint) -> rawptr
    Related Procedures With Parameters

    realloc_func ¶

    realloc_func :: proc "c" (mem: rawptr, size: uint) -> rawptr
    Related Procedures With Parameters

    wchar_t ¶

    wchar_t :: u16

    Constants

    ALPHA_OPAQUE ¶

    ALPHA_OPAQUE :: 255

    ALPHA_OPAQUE_FLOAT ¶

    ALPHA_OPAQUE_FLOAT :: 1.0

    ALPHA_TRANSPARENT ¶

    ALPHA_TRANSPARENT :: 0

    ALPHA_TRANSPARENT_FLOAT ¶

    ALPHA_TRANSPARENT_FLOAT :: 0.0

    AUDIO_DEVICE_DEFAULT_PLAYBACK ¶

    AUDIO_DEVICE_DEFAULT_PLAYBACK :: AudioDeviceID(0xFFFFFFFF)

    AUDIO_DEVICE_DEFAULT_RECORDING ¶

    AUDIO_DEVICE_DEFAULT_RECORDING :: AudioDeviceID(0xFFFFFFFE)

    AUDIO_MASK_BIG_ENDIAN ¶

    AUDIO_MASK_BIG_ENDIAN :: 1 << 12

    AUDIO_MASK_BITSIZE ¶

    AUDIO_MASK_BITSIZE :: 0xFF

    AUDIO_MASK_FLOAT ¶

    AUDIO_MASK_FLOAT :: 1 << 8

    AUDIO_MASK_SIGNED ¶

    AUDIO_MASK_SIGNED :: 1 << 15

    BIG_ENDIAN ¶

    BIG_ENDIAN :: 4321

    BLENDMODE_ADD ¶

    BLENDMODE_ADD :: BlendMode{.ADD}
     

    < additive blending: dstRGB = (srcRGB srcA) + dstRGB, dstA = dstA

    BLENDMODE_ADD_PREMULTIPLIED ¶

    BLENDMODE_ADD_PREMULTIPLIED :: BlendMode{.ADD_PREMULTIPLIED}
     

    *< pre-multiplied additive blending: dstRGB = srcRGB + dstRGB, dstA = dstA

    BLENDMODE_BLEND ¶

    BLENDMODE_BLEND :: BlendMode{.BLEND}
     

    < alpha blending: dstRGB = (srcRGB srcA) + (dstRGB (1-srcA)), dstA = srcA + (dstA (1-srcA))

    BLENDMODE_BLEND_PREMULTIPLIED ¶

    BLENDMODE_BLEND_PREMULTIPLIED :: BlendMode{.BLEND_PREMULTIPLIED}
     

    < pre-multiplied alpha blending: dstRGBA = srcRGBA + (dstRGBA (1-srcA))

    BLENDMODE_INVALID ¶

    BLENDMODE_INVALID: BlendMode : transmute(BlendMode)Uint32(0x7FFFFFFF)

    BLENDMODE_MOD ¶

    BLENDMODE_MOD :: BlendMode{.MOD}
     

    < color modulate: dstRGB = srcRGB dstRGB, dstA = dstA

    BLENDMODE_MUL ¶

    BLENDMODE_MUL :: BlendMode{.MUL}
     

    < color multiply: dstRGB = (srcRGB dstRGB) + (dstRGB * (1-srcA)), dstA = dstA

    BLENDMODE_NONE ¶

    BLENDMODE_NONE :: BlendMode{}
     

    *< no blending: dstRGBA = srcRGBA

    BUTTON_LEFT ¶

    BUTTON_LEFT :: 1

    BUTTON_LMASK ¶

    BUTTON_LMASK :: MouseButtonFlags{.LEFT}

    BUTTON_MIDDLE ¶

    BUTTON_MIDDLE :: 2

    BUTTON_MMASK ¶

    BUTTON_MMASK :: MouseButtonFlags{.MIDDLE}

    BUTTON_RIGHT ¶

    BUTTON_RIGHT :: 3

    BUTTON_RMASK ¶

    BUTTON_RMASK :: MouseButtonFlags{.RIGHT}

    BUTTON_X1 ¶

    BUTTON_X1 :: 4

    BUTTON_X1MASK ¶

    BUTTON_X1MASK :: MouseButtonFlags{.X1}

    BUTTON_X2 ¶

    BUTTON_X2 :: 5

    BUTTON_X2MASK ¶

    BUTTON_X2MASK :: MouseButtonFlags{.X2}

    BYTEORDER ¶

    BYTEORDER :: LIL_ENDIAN when ODIN_ENDIAN == .Little else BIG_ENDIAN

    CACHELINE_SIZE ¶

    CACHELINE_SIZE :: 128

    DEBUG_TEXT_FONT_CHARACTER_SIZE ¶

    DEBUG_TEXT_FONT_CHARACTER_SIZE :: 8

    FLT_EPSILON ¶

    FLT_EPSILON :: 1.1920928955078125e-07
     

    0x0.000002p0

    GLOB_CASEINSENSITIVE ¶

    GLOB_CASEINSENSITIVE :: GlobFlags{.CASEINSENSITIVE}

    GL_ACCELERATED_VISUAL ¶

    GL_ACCELERATED_VISUAL :: GLAttr.ACCELERATED_VISUAL

    GL_ACCUM_ALPHA_SIZE ¶

    GL_ACCUM_ALPHA_SIZE :: GLAttr.ACCUM_ALPHA_SIZE

    GL_ACCUM_BLUE_SIZE ¶

    GL_ACCUM_BLUE_SIZE :: GLAttr.ACCUM_BLUE_SIZE

    GL_ACCUM_GREEN_SIZE ¶

    GL_ACCUM_GREEN_SIZE :: GLAttr.ACCUM_GREEN_SIZE

    GL_ACCUM_RED_SIZE ¶

    GL_ACCUM_RED_SIZE :: GLAttr.ACCUM_RED_SIZE

    GL_ALPHA_SIZE ¶

    GL_ALPHA_SIZE :: GLAttr.ALPHA_SIZE

    GL_BLUE_SIZE ¶

    GL_BLUE_SIZE :: GLAttr.BLUE_SIZE

    GL_BUFFER_SIZE ¶

    GL_BUFFER_SIZE :: GLAttr.BUFFER_SIZE

    GL_CONTEXT_DEBUG_FLAG ¶

    GL_CONTEXT_DEBUG_FLAG :: GLContextFlag{.DEBUG}

    GL_CONTEXT_FLAGS ¶

    GL_CONTEXT_FLAGS :: GLAttr.CONTEXT_FLAGS

    GL_CONTEXT_FORWARD_COMPATIBLE_FLAG ¶

    GL_CONTEXT_FORWARD_COMPATIBLE_FLAG :: GLContextFlag{.FORWARD_COMPATIBLE}

    GL_CONTEXT_MAJOR_VERSION ¶

    GL_CONTEXT_MAJOR_VERSION :: GLAttr.CONTEXT_MAJOR_VERSION

    GL_CONTEXT_MINOR_VERSION ¶

    GL_CONTEXT_MINOR_VERSION :: GLAttr.CONTEXT_MINOR_VERSION

    GL_CONTEXT_NO_ERROR ¶

    GL_CONTEXT_NO_ERROR :: GLAttr.CONTEXT_NO_ERROR

    GL_CONTEXT_PROFILE_COMPATIBILITY ¶

    GL_CONTEXT_PROFILE_COMPATIBILITY :: GLProfile{.COMPATIBILITY}
     

    *< OpenGL Compatibility Profile context

    GL_CONTEXT_PROFILE_CORE ¶

    GL_CONTEXT_PROFILE_CORE :: GLProfile{.CORE}
     

    *< OpenGL Core Profile context

    GL_CONTEXT_PROFILE_ES ¶

    GL_CONTEXT_PROFILE_ES :: GLProfile{.ES}
     

    *< GLX_CONTEXT_ES2_PROFILE_BIT_EXT

    GL_CONTEXT_PROFILE_MASK ¶

    GL_CONTEXT_PROFILE_MASK :: GLAttr.CONTEXT_PROFILE_MASK

    GL_CONTEXT_RELEASE_BEHAVIOR ¶

    GL_CONTEXT_RELEASE_BEHAVIOR :: GLAttr.CONTEXT_RELEASE_BEHAVIOR

    GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH ¶

    GL_CONTEXT_RELEASE_BEHAVIOR_FLUSH :: GLContextReleaseFlag{.BEHAVIOR_FLUSH}

    GL_CONTEXT_RELEASE_BEHAVIOR_NONE ¶

    GL_CONTEXT_RELEASE_BEHAVIOR_NONE :: GLContextReleaseFlag{}

    GL_CONTEXT_RESET_ISOLATION_FLAG ¶

    GL_CONTEXT_RESET_ISOLATION_FLAG :: GLContextFlag{.RESET_ISOLATION}

    GL_CONTEXT_RESET_LOSE_CONTEXT ¶

    GL_CONTEXT_RESET_LOSE_CONTEXT :: GLContextResetNotification{.LOSE_CONTEXT}

    GL_CONTEXT_RESET_NOTIFICATION ¶

    GL_CONTEXT_RESET_NOTIFICATION :: GLAttr.CONTEXT_RESET_NOTIFICATION

    GL_CONTEXT_RESET_NO_NOTIFICATION ¶

    GL_CONTEXT_RESET_NO_NOTIFICATION :: GLContextResetNotification{}

    GL_CONTEXT_ROBUST_ACCESS_FLAG ¶

    GL_CONTEXT_ROBUST_ACCESS_FLAG :: GLContextFlag{.ROBUST_ACCESS}

    GL_DEPTH_SIZE ¶

    GL_DEPTH_SIZE :: GLAttr.DEPTH_SIZE

    GL_DOUBLEBUFFER ¶

    GL_DOUBLEBUFFER :: GLAttr.DOUBLEBUFFER

    GL_EGL_PLATFORM ¶

    GL_EGL_PLATFORM :: GLAttr.EGL_PLATFORM

    GL_FLOATBUFFERS ¶

    GL_FLOATBUFFERS :: GLAttr.FLOATBUFFERS

    GL_FRAMEBUFFER_SRGB_CAPABLE ¶

    GL_FRAMEBUFFER_SRGB_CAPABLE :: GLAttr.FRAMEBUFFER_SRGB_CAPABLE

    GL_GREEN_SIZE ¶

    GL_GREEN_SIZE :: GLAttr.GREEN_SIZE

    GL_MULTISAMPLEBUFFERS ¶

    GL_MULTISAMPLEBUFFERS :: GLAttr.MULTISAMPLEBUFFERS

    GL_MULTISAMPLESAMPLES ¶

    GL_MULTISAMPLESAMPLES :: GLAttr.MULTISAMPLESAMPLES

    GL_RED_SIZE ¶

    GL_RED_SIZE :: GLAttr.RED_SIZE

    GL_RETAINED_BACKING ¶

    GL_RETAINED_BACKING :: GLAttr.RETAINED_BACKING

    GL_SHARE_WITH_CURRENT_CONTEXT ¶

    GL_SHARE_WITH_CURRENT_CONTEXT :: GLAttr.SHARE_WITH_CURRENT_CONTEXT

    GL_STENCIL_SIZE ¶

    GL_STENCIL_SIZE :: GLAttr.STENCIL_SIZE

    GL_STEREO ¶

    GL_STEREO :: GLAttr.STEREO

    GPU_SHADERFORMAT_INVALID ¶

    GPU_SHADERFORMAT_INVALID :: GPUShaderFormat{}

    HAPTIC_AUTOCENTER ¶

    HAPTIC_AUTOCENTER :: 1 << 17

    HAPTIC_CONSTANT ¶

    HAPTIC_CONSTANT :: 1 << 0

    HAPTIC_CUSTOM ¶

    HAPTIC_CUSTOM :: 1 << 15

    HAPTIC_DAMPER ¶

    HAPTIC_DAMPER :: 1 << 8

    HAPTIC_FRICTION ¶

    HAPTIC_FRICTION :: 1 << 10

    HAPTIC_GAIN ¶

    HAPTIC_GAIN :: 1 << 16

    HAPTIC_INERTIA ¶

    HAPTIC_INERTIA :: 1 << 9

    HAPTIC_INFINITY ¶

    HAPTIC_INFINITY: u32 : c.uint(4294967295)

    HAPTIC_LEFTRIGHT ¶

    HAPTIC_LEFTRIGHT :: 1 << 11

    HAPTIC_PAUSE ¶

    HAPTIC_PAUSE :: 1 << 19

    HAPTIC_RAMP ¶

    HAPTIC_RAMP :: 1 << 6

    HAPTIC_RESERVED1 ¶

    HAPTIC_RESERVED1 :: 1 << 12

    HAPTIC_RESERVED2 ¶

    HAPTIC_RESERVED2 :: 1 << 13

    HAPTIC_RESERVED3 ¶

    HAPTIC_RESERVED3 :: 1 << 14

    HAPTIC_SAWTOOTHDOWN ¶

    HAPTIC_SAWTOOTHDOWN :: 1 << 5

    HAPTIC_SAWTOOTHUP ¶

    HAPTIC_SAWTOOTHUP :: 1 << 4

    HAPTIC_SINE ¶

    HAPTIC_SINE :: 1 << 1

    HAPTIC_SPRING ¶

    HAPTIC_SPRING :: 1 << 7

    HAPTIC_SQUARE ¶

    HAPTIC_SQUARE :: 1 << 2

    HAPTIC_STATUS ¶

    HAPTIC_STATUS :: 1 << 18

    HAPTIC_TRIANGLE ¶

    HAPTIC_TRIANGLE :: 1 << 3

    HAT_CENTERED ¶

    HAT_CENTERED :: 0x00

    HAT_DOWN ¶

    HAT_DOWN :: 0x04

    HAT_LEFT ¶

    HAT_LEFT :: 0x08

    HAT_LEFTDOWN ¶

    HAT_LEFTDOWN :: HAT_LEFT | HAT_DOWN

    HAT_LEFTUP ¶

    HAT_LEFTUP :: HAT_LEFT | HAT_UP

    HAT_RIGHT ¶

    HAT_RIGHT :: 0x02

    HAT_RIGHTDOWN ¶

    HAT_RIGHTDOWN :: HAT_RIGHT | HAT_DOWN

    HAT_RIGHTUP ¶

    HAT_RIGHTUP :: HAT_RIGHT | HAT_UP

    HAT_UP ¶

    HAT_UP :: 0x01

    HINT_ALLOW_ALT_TAB_WHILE_GRABBED ¶

    HINT_ALLOW_ALT_TAB_WHILE_GRABBED :: "SDL_ALLOW_ALT_TAB_WHILE_GRABBED"

    HINT_ANDROID_ALLOW_RECREATE_ACTIVITY ¶

    HINT_ANDROID_ALLOW_RECREATE_ACTIVITY :: "SDL_ANDROID_ALLOW_RECREATE_ACTIVITY"

    HINT_ANDROID_BLOCK_ON_PAUSE ¶

    HINT_ANDROID_BLOCK_ON_PAUSE :: "SDL_ANDROID_BLOCK_ON_PAUSE"

    HINT_ANDROID_LOW_LATENCY_AUDIO ¶

    HINT_ANDROID_LOW_LATENCY_AUDIO :: "SDL_ANDROID_LOW_LATENCY_AUDIO"

    HINT_ANDROID_TRAP_BACK_BUTTON ¶

    HINT_ANDROID_TRAP_BACK_BUTTON :: "SDL_ANDROID_TRAP_BACK_BUTTON"

    HINT_APPLE_TV_CONTROLLER_UI_EVENTS ¶

    HINT_APPLE_TV_CONTROLLER_UI_EVENTS :: "SDL_APPLE_TV_CONTROLLER_UI_EVENTS"

    HINT_APPLE_TV_REMOTE_ALLOW_ROTATION ¶

    HINT_APPLE_TV_REMOTE_ALLOW_ROTATION :: "SDL_APPLE_TV_REMOTE_ALLOW_ROTATION"

    HINT_APP_ID ¶

    HINT_APP_ID :: "SDL_APP_ID"

    HINT_APP_NAME ¶

    HINT_APP_NAME :: "SDL_APP_NAME"

    HINT_ASSERT ¶

    HINT_ASSERT :: "SDL_ASSERT"

    HINT_AUDIO_ALSA_DEFAULT_DEVICE ¶

    HINT_AUDIO_ALSA_DEFAULT_DEVICE :: "SDL_AUDIO_ALSA_DEFAULT_DEVICE"

    HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE ¶

    HINT_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE :: "SDL_AUDIO_ALSA_DEFAULT_PLAYBACK_DEVICE"

    HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE ¶

    HINT_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE :: "SDL_AUDIO_ALSA_DEFAULT_RECORDING_DEVICE"

    HINT_AUDIO_CATEGORY ¶

    HINT_AUDIO_CATEGORY :: "SDL_AUDIO_CATEGORY"

    HINT_AUDIO_CHANNELS ¶

    HINT_AUDIO_CHANNELS :: "SDL_AUDIO_CHANNELS"

    HINT_AUDIO_DEVICE_APP_ICON_NAME ¶

    HINT_AUDIO_DEVICE_APP_ICON_NAME :: "SDL_AUDIO_DEVICE_APP_ICON_NAME"

    HINT_AUDIO_DEVICE_SAMPLE_FRAMES ¶

    HINT_AUDIO_DEVICE_SAMPLE_FRAMES :: "SDL_AUDIO_DEVICE_SAMPLE_FRAMES"

    HINT_AUDIO_DEVICE_STREAM_NAME ¶

    HINT_AUDIO_DEVICE_STREAM_NAME :: "SDL_AUDIO_DEVICE_STREAM_NAME"

    HINT_AUDIO_DEVICE_STREAM_ROLE ¶

    HINT_AUDIO_DEVICE_STREAM_ROLE :: "SDL_AUDIO_DEVICE_STREAM_ROLE"

    HINT_AUDIO_DISK_INPUT_FILE ¶

    HINT_AUDIO_DISK_INPUT_FILE :: "SDL_AUDIO_DISK_INPUT_FILE"

    HINT_AUDIO_DISK_OUTPUT_FILE ¶

    HINT_AUDIO_DISK_OUTPUT_FILE :: "SDL_AUDIO_DISK_OUTPUT_FILE"

    HINT_AUDIO_DISK_TIMESCALE ¶

    HINT_AUDIO_DISK_TIMESCALE :: "SDL_AUDIO_DISK_TIMESCALE"

    HINT_AUDIO_DRIVER ¶

    HINT_AUDIO_DRIVER :: "SDL_AUDIO_DRIVER"

    HINT_AUDIO_DUMMY_TIMESCALE ¶

    HINT_AUDIO_DUMMY_TIMESCALE :: "SDL_AUDIO_DUMMY_TIMESCALE"

    HINT_AUDIO_FORMAT ¶

    HINT_AUDIO_FORMAT :: "SDL_AUDIO_FORMAT"

    HINT_AUDIO_FREQUENCY ¶

    HINT_AUDIO_FREQUENCY :: "SDL_AUDIO_FREQUENCY"

    HINT_AUDIO_INCLUDE_MONITORS ¶

    HINT_AUDIO_INCLUDE_MONITORS :: "SDL_AUDIO_INCLUDE_MONITORS"

    HINT_AUTO_UPDATE_JOYSTICKS ¶

    HINT_AUTO_UPDATE_JOYSTICKS :: "SDL_AUTO_UPDATE_JOYSTICKS"

    HINT_AUTO_UPDATE_SENSORS ¶

    HINT_AUTO_UPDATE_SENSORS :: "SDL_AUTO_UPDATE_SENSORS"

    HINT_BMP_SAVE_LEGACY_FORMAT ¶

    HINT_BMP_SAVE_LEGACY_FORMAT :: "SDL_BMP_SAVE_LEGACY_FORMAT"

    HINT_CAMERA_DRIVER ¶

    HINT_CAMERA_DRIVER :: "SDL_CAMERA_DRIVER"

    HINT_CPU_FEATURE_MASK ¶

    HINT_CPU_FEATURE_MASK :: "SDL_CPU_FEATURE_MASK"

    HINT_DISPLAY_USABLE_BOUNDS ¶

    HINT_DISPLAY_USABLE_BOUNDS :: "SDL_DISPLAY_USABLE_BOUNDS"

    HINT_EGL_LIBRARY ¶

    HINT_EGL_LIBRARY :: "SDL_EGL_LIBRARY"

    HINT_EMSCRIPTEN_ASYNCIFY ¶

    HINT_EMSCRIPTEN_ASYNCIFY :: "SDL_EMSCRIPTEN_ASYNCIFY"

    HINT_EMSCRIPTEN_CANVAS_SELECTOR ¶

    HINT_EMSCRIPTEN_CANVAS_SELECTOR :: "SDL_EMSCRIPTEN_CANVAS_SELECTOR"

    HINT_EMSCRIPTEN_KEYBOARD_ELEMENT ¶

    HINT_EMSCRIPTEN_KEYBOARD_ELEMENT :: "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"

    HINT_ENABLE_SCREEN_KEYBOARD ¶

    HINT_ENABLE_SCREEN_KEYBOARD :: "SDL_ENABLE_SCREEN_KEYBOARD"

    HINT_EVDEV_DEVICES ¶

    HINT_EVDEV_DEVICES :: "SDL_EVDEV_DEVICES"

    HINT_EVENT_LOGGING ¶

    HINT_EVENT_LOGGING :: "SDL_EVENT_LOGGING"

    HINT_FILE_DIALOG_DRIVER ¶

    HINT_FILE_DIALOG_DRIVER :: "SDL_FILE_DIALOG_DRIVER"

    HINT_FORCE_RAISEWINDOW ¶

    HINT_FORCE_RAISEWINDOW :: "SDL_FORCE_RAISEWINDOW"

    HINT_FRAMEBUFFER_ACCELERATION ¶

    HINT_FRAMEBUFFER_ACCELERATION :: "SDL_FRAMEBUFFER_ACCELERATION"

    HINT_GAMECONTROLLERCONFIG ¶

    HINT_GAMECONTROLLERCONFIG :: "SDL_GAMECONTROLLERCONFIG"

    HINT_GAMECONTROLLERCONFIG_FILE ¶

    HINT_GAMECONTROLLERCONFIG_FILE :: "SDL_GAMECONTROLLERCONFIG_FILE"

    HINT_GAMECONTROLLERTYPE ¶

    HINT_GAMECONTROLLERTYPE :: "SDL_GAMECONTROLLERTYPE"

    HINT_GAMECONTROLLER_IGNORE_DEVICES ¶

    HINT_GAMECONTROLLER_IGNORE_DEVICES :: "SDL_GAMECONTROLLER_IGNORE_DEVICES"

    HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT ¶

    HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT :: "SDL_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT"

    HINT_GAMECONTROLLER_SENSOR_FUSION ¶

    HINT_GAMECONTROLLER_SENSOR_FUSION :: "SDL_GAMECONTROLLER_SENSOR_FUSION"

    HINT_GDK_TEXTINPUT_DEFAULT_TEXT ¶

    HINT_GDK_TEXTINPUT_DEFAULT_TEXT :: "SDL_GDK_TEXTINPUT_DEFAULT_TEXT"

    HINT_GDK_TEXTINPUT_DESCRIPTION ¶

    HINT_GDK_TEXTINPUT_DESCRIPTION :: "SDL_GDK_TEXTINPUT_DESCRIPTION"

    HINT_GDK_TEXTINPUT_MAX_LENGTH ¶

    HINT_GDK_TEXTINPUT_MAX_LENGTH :: "SDL_GDK_TEXTINPUT_MAX_LENGTH"

    HINT_GDK_TEXTINPUT_SCOPE ¶

    HINT_GDK_TEXTINPUT_SCOPE :: "SDL_GDK_TEXTINPUT_SCOPE"

    HINT_GDK_TEXTINPUT_TITLE ¶

    HINT_GDK_TEXTINPUT_TITLE :: "SDL_GDK_TEXTINPUT_TITLE"

    HINT_GPU_DRIVER ¶

    HINT_GPU_DRIVER :: "SDL_GPU_DRIVER"

    HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS ¶

    HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS :: "SDL_HIDAPI_ENUMERATE_ONLY_CONTROLLERS"

    HINT_HIDAPI_IGNORE_DEVICES ¶

    HINT_HIDAPI_IGNORE_DEVICES :: "SDL_HIDAPI_IGNORE_DEVICES"

    HINT_HIDAPI_LIBUSB ¶

    HINT_HIDAPI_LIBUSB :: "SDL_HIDAPI_LIBUSB"

    HINT_HIDAPI_LIBUSB_WHITELIST ¶

    HINT_HIDAPI_LIBUSB_WHITELIST :: "SDL_HIDAPI_LIBUSB_WHITELIST"

    HINT_HIDAPI_UDEV ¶

    HINT_HIDAPI_UDEV :: "SDL_HIDAPI_UDEV"

    HINT_IME_IMPLEMENTED_UI ¶

    HINT_IME_IMPLEMENTED_UI :: "SDL_IME_IMPLEMENTED_UI"

    HINT_IOS_HIDE_HOME_INDICATOR ¶

    HINT_IOS_HIDE_HOME_INDICATOR :: "SDL_IOS_HIDE_HOME_INDICATOR"

    HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS ¶

    HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS :: "SDL_JOYSTICK_ALLOW_BACKGROUND_EVENTS"

    HINT_JOYSTICK_ARCADESTICK_DEVICES ¶

    HINT_JOYSTICK_ARCADESTICK_DEVICES :: "SDL_JOYSTICK_ARCADESTICK_DEVICES"

    HINT_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED ¶

    HINT_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED :: "SDL_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED"

    HINT_JOYSTICK_BLACKLIST_DEVICES ¶

    HINT_JOYSTICK_BLACKLIST_DEVICES :: "SDL_JOYSTICK_BLACKLIST_DEVICES"

    HINT_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED ¶

    HINT_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED :: "SDL_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED"

    HINT_JOYSTICK_DEVICE ¶

    HINT_JOYSTICK_DEVICE :: "SDL_JOYSTICK_DEVICE"

    HINT_JOYSTICK_DIRECTINPUT ¶

    HINT_JOYSTICK_DIRECTINPUT :: "SDL_JOYSTICK_DIRECTINPUT"

    HINT_JOYSTICK_ENHANCED_REPORTS ¶

    HINT_JOYSTICK_ENHANCED_REPORTS :: "SDL_JOYSTICK_ENHANCED_REPORTS"

    HINT_JOYSTICK_FLIGHTSTICK_DEVICES ¶

    HINT_JOYSTICK_FLIGHTSTICK_DEVICES :: "SDL_JOYSTICK_FLIGHTSTICK_DEVICES"

    HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED ¶

    HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED :: "SDL_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED"

    HINT_JOYSTICK_GAMECUBE_DEVICES ¶

    HINT_JOYSTICK_GAMECUBE_DEVICES :: "SDL_JOYSTICK_GAMECUBE_DEVICES"

    HINT_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED ¶

    HINT_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED :: "SDL_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED"

    HINT_JOYSTICK_GAMEINPUT ¶

    HINT_JOYSTICK_GAMEINPUT :: "SDL_JOYSTICK_GAMEINPUT"

    HINT_JOYSTICK_HIDAPI ¶

    HINT_JOYSTICK_HIDAPI :: "SDL_JOYSTICK_HIDAPI"

    HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS ¶

    HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS :: "SDL_JOYSTICK_HIDAPI_COMBINE_JOY_CONS"

    HINT_JOYSTICK_HIDAPI_GAMECUBE ¶

    HINT_JOYSTICK_HIDAPI_GAMECUBE :: "SDL_JOYSTICK_HIDAPI_GAMECUBE"

    HINT_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE ¶

    HINT_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE :: "SDL_JOYSTICK_HIDAPI_GAMECUBE_RUMBLE_BRAKE"

    HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED ¶

    HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED :: "SDL_JOYSTICK_HIDAPI_JOYCON_HOME_LED"

    HINT_JOYSTICK_HIDAPI_JOY_CONS ¶

    HINT_JOYSTICK_HIDAPI_JOY_CONS :: "SDL_JOYSTICK_HIDAPI_JOY_CONS"

    HINT_JOYSTICK_HIDAPI_LUNA ¶

    HINT_JOYSTICK_HIDAPI_LUNA :: "SDL_JOYSTICK_HIDAPI_LUNA"

    HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC ¶

    HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC :: "SDL_JOYSTICK_HIDAPI_NINTENDO_CLASSIC"

    HINT_JOYSTICK_HIDAPI_PS3 ¶

    HINT_JOYSTICK_HIDAPI_PS3 :: "SDL_JOYSTICK_HIDAPI_PS3"

    HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER ¶

    HINT_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER :: "SDL_JOYSTICK_HIDAPI_PS3_SIXAXIS_DRIVER"

    HINT_JOYSTICK_HIDAPI_PS4 ¶

    HINT_JOYSTICK_HIDAPI_PS4 :: "SDL_JOYSTICK_HIDAPI_PS4"

    HINT_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL ¶

    HINT_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL :: "SDL_JOYSTICK_HIDAPI_PS4_REPORT_INTERVAL"

    HINT_JOYSTICK_HIDAPI_PS5 ¶

    HINT_JOYSTICK_HIDAPI_PS5 :: "SDL_JOYSTICK_HIDAPI_PS5"

    HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED ¶

    HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED :: "SDL_JOYSTICK_HIDAPI_PS5_PLAYER_LED"

    HINT_JOYSTICK_HIDAPI_SHIELD ¶

    HINT_JOYSTICK_HIDAPI_SHIELD :: "SDL_JOYSTICK_HIDAPI_SHIELD"

    HINT_JOYSTICK_HIDAPI_STADIA ¶

    HINT_JOYSTICK_HIDAPI_STADIA :: "SDL_JOYSTICK_HIDAPI_STADIA"

    HINT_JOYSTICK_HIDAPI_STEAM ¶

    HINT_JOYSTICK_HIDAPI_STEAM :: "SDL_JOYSTICK_HIDAPI_STEAM"

    HINT_JOYSTICK_HIDAPI_STEAMDECK ¶

    HINT_JOYSTICK_HIDAPI_STEAMDECK :: "SDL_JOYSTICK_HIDAPI_STEAMDECK"

    HINT_JOYSTICK_HIDAPI_STEAM_HOME_LED ¶

    HINT_JOYSTICK_HIDAPI_STEAM_HOME_LED :: "SDL_JOYSTICK_HIDAPI_STEAM_HOME_LED"

    HINT_JOYSTICK_HIDAPI_STEAM_HORI ¶

    HINT_JOYSTICK_HIDAPI_STEAM_HORI :: "SDL_JOYSTICK_HIDAPI_STEAM_HORI"

    HINT_JOYSTICK_HIDAPI_SWITCH ¶

    HINT_JOYSTICK_HIDAPI_SWITCH :: "SDL_JOYSTICK_HIDAPI_SWITCH"

    HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED ¶

    HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED :: "SDL_JOYSTICK_HIDAPI_SWITCH_HOME_LED"

    HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED ¶

    HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED :: "SDL_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED"

    HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS ¶

    HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS :: "SDL_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS"

    HINT_JOYSTICK_HIDAPI_WII ¶

    HINT_JOYSTICK_HIDAPI_WII :: "SDL_JOYSTICK_HIDAPI_WII"

    HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED ¶

    HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED :: "SDL_JOYSTICK_HIDAPI_WII_PLAYER_LED"

    HINT_JOYSTICK_HIDAPI_XBOX ¶

    HINT_JOYSTICK_HIDAPI_XBOX :: "SDL_JOYSTICK_HIDAPI_XBOX"

    HINT_JOYSTICK_HIDAPI_XBOX_360 ¶

    HINT_JOYSTICK_HIDAPI_XBOX_360 :: "SDL_JOYSTICK_HIDAPI_XBOX_360"

    HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED ¶

    HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED :: "SDL_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED"

    HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS ¶

    HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS :: "SDL_JOYSTICK_HIDAPI_XBOX_360_WIRELESS"

    HINT_JOYSTICK_HIDAPI_XBOX_ONE ¶

    HINT_JOYSTICK_HIDAPI_XBOX_ONE :: "SDL_JOYSTICK_HIDAPI_XBOX_ONE"

    HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED ¶

    HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED :: "SDL_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED"

    HINT_JOYSTICK_IOKIT ¶

    HINT_JOYSTICK_IOKIT :: "SDL_JOYSTICK_IOKIT"

    HINT_JOYSTICK_LINUX_CLASSIC ¶

    HINT_JOYSTICK_LINUX_CLASSIC :: "SDL_JOYSTICK_LINUX_CLASSIC"

    HINT_JOYSTICK_LINUX_DEADZONES ¶

    HINT_JOYSTICK_LINUX_DEADZONES :: "SDL_JOYSTICK_LINUX_DEADZONES"

    HINT_JOYSTICK_LINUX_DIGITAL_HATS ¶

    HINT_JOYSTICK_LINUX_DIGITAL_HATS :: "SDL_JOYSTICK_LINUX_DIGITAL_HATS"

    HINT_JOYSTICK_LINUX_HAT_DEADZONES ¶

    HINT_JOYSTICK_LINUX_HAT_DEADZONES :: "SDL_JOYSTICK_LINUX_HAT_DEADZONES"

    HINT_JOYSTICK_MFI ¶

    HINT_JOYSTICK_MFI :: "SDL_JOYSTICK_MFI"

    HINT_JOYSTICK_RAWINPUT ¶

    HINT_JOYSTICK_RAWINPUT :: "SDL_JOYSTICK_RAWINPUT"

    HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT ¶

    HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT :: "SDL_JOYSTICK_RAWINPUT_CORRELATE_XINPUT"

    HINT_JOYSTICK_ROG_CHAKRAM ¶

    HINT_JOYSTICK_ROG_CHAKRAM :: "SDL_JOYSTICK_ROG_CHAKRAM"

    HINT_JOYSTICK_THREAD ¶

    HINT_JOYSTICK_THREAD :: "SDL_JOYSTICK_THREAD"

    HINT_JOYSTICK_THROTTLE_DEVICES ¶

    HINT_JOYSTICK_THROTTLE_DEVICES :: "SDL_JOYSTICK_THROTTLE_DEVICES"

    HINT_JOYSTICK_THROTTLE_DEVICES_EXCLUDED ¶

    HINT_JOYSTICK_THROTTLE_DEVICES_EXCLUDED :: "SDL_JOYSTICK_THROTTLE_DEVICES_EXCLUDED"

    HINT_JOYSTICK_WGI ¶

    HINT_JOYSTICK_WGI :: "SDL_JOYSTICK_WGI"

    HINT_JOYSTICK_WHEEL_DEVICES ¶

    HINT_JOYSTICK_WHEEL_DEVICES :: "SDL_JOYSTICK_WHEEL_DEVICES"

    HINT_JOYSTICK_WHEEL_DEVICES_EXCLUDED ¶

    HINT_JOYSTICK_WHEEL_DEVICES_EXCLUDED :: "SDL_JOYSTICK_WHEEL_DEVICES_EXCLUDED"

    HINT_JOYSTICK_ZERO_CENTERED_DEVICES ¶

    HINT_JOYSTICK_ZERO_CENTERED_DEVICES :: "SDL_JOYSTICK_ZERO_CENTERED_DEVICES"

    HINT_KEYCODE_OPTIONS ¶

    HINT_KEYCODE_OPTIONS :: "SDL_KEYCODE_OPTIONS"

    HINT_KMSDRM_DEVICE_INDEX ¶

    HINT_KMSDRM_DEVICE_INDEX :: "SDL_KMSDRM_DEVICE_INDEX"

    HINT_KMSDRM_REQUIRE_DRM_MASTER ¶

    HINT_KMSDRM_REQUIRE_DRM_MASTER :: "SDL_KMSDRM_REQUIRE_DRM_MASTER"

    HINT_LOGGING ¶

    HINT_LOGGING :: "SDL_LOGGING"

    HINT_MAC_BACKGROUND_APP ¶

    HINT_MAC_BACKGROUND_APP :: "SDL_MAC_BACKGROUND_APP"

    HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK ¶

    HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK :: "SDL_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK"

    HINT_MAC_OPENGL_ASYNC_DISPATCH ¶

    HINT_MAC_OPENGL_ASYNC_DISPATCH :: "SDL_MAC_OPENGL_ASYNC_DISPATCH"

    HINT_MAC_OPTION_AS_ALT ¶

    HINT_MAC_OPTION_AS_ALT :: "SDL_MAC_OPTION_AS_ALT"

    HINT_MAC_SCROLL_MOMENTUM ¶

    HINT_MAC_SCROLL_MOMENTUM :: "SDL_MAC_SCROLL_MOMENTUM"

    HINT_MAIN_CALLBACK_RATE ¶

    HINT_MAIN_CALLBACK_RATE :: "SDL_MAIN_CALLBACK_RATE"

    HINT_MOUSE_AUTO_CAPTURE ¶

    HINT_MOUSE_AUTO_CAPTURE :: "SDL_MOUSE_AUTO_CAPTURE"

    HINT_MOUSE_DEFAULT_SYSTEM_CURSOR ¶

    HINT_MOUSE_DEFAULT_SYSTEM_CURSOR :: "SDL_MOUSE_DEFAULT_SYSTEM_CURSOR"

    HINT_MOUSE_DOUBLE_CLICK_RADIUS ¶

    HINT_MOUSE_DOUBLE_CLICK_RADIUS :: "SDL_MOUSE_DOUBLE_CLICK_RADIUS"

    HINT_MOUSE_DOUBLE_CLICK_TIME ¶

    HINT_MOUSE_DOUBLE_CLICK_TIME :: "SDL_MOUSE_DOUBLE_CLICK_TIME"

    HINT_MOUSE_EMULATE_WARP_WITH_RELATIVE ¶

    HINT_MOUSE_EMULATE_WARP_WITH_RELATIVE :: "SDL_MOUSE_EMULATE_WARP_WITH_RELATIVE"

    HINT_MOUSE_FOCUS_CLICKTHROUGH ¶

    HINT_MOUSE_FOCUS_CLICKTHROUGH :: "SDL_MOUSE_FOCUS_CLICKTHROUGH"

    HINT_MOUSE_NORMAL_SPEED_SCALE ¶

    HINT_MOUSE_NORMAL_SPEED_SCALE :: "SDL_MOUSE_NORMAL_SPEED_SCALE"

    HINT_MOUSE_RELATIVE_CURSOR_VISIBLE ¶

    HINT_MOUSE_RELATIVE_CURSOR_VISIBLE :: "SDL_MOUSE_RELATIVE_CURSOR_VISIBLE"

    HINT_MOUSE_RELATIVE_MODE_CENTER ¶

    HINT_MOUSE_RELATIVE_MODE_CENTER :: "SDL_MOUSE_RELATIVE_MODE_CENTER"

    HINT_MOUSE_RELATIVE_SPEED_SCALE ¶

    HINT_MOUSE_RELATIVE_SPEED_SCALE :: "SDL_MOUSE_RELATIVE_SPEED_SCALE"

    HINT_MOUSE_RELATIVE_SYSTEM_SCALE ¶

    HINT_MOUSE_RELATIVE_SYSTEM_SCALE :: "SDL_MOUSE_RELATIVE_SYSTEM_SCALE"

    HINT_MOUSE_RELATIVE_WARP_MOTION ¶

    HINT_MOUSE_RELATIVE_WARP_MOTION :: "SDL_MOUSE_RELATIVE_WARP_MOTION"

    HINT_MOUSE_TOUCH_EVENTS ¶

    HINT_MOUSE_TOUCH_EVENTS :: "SDL_MOUSE_TOUCH_EVENTS"

    HINT_MUTE_CONSOLE_KEYBOARD ¶

    HINT_MUTE_CONSOLE_KEYBOARD :: "SDL_MUTE_CONSOLE_KEYBOARD"

    HINT_NO_SIGNAL_HANDLERS ¶

    HINT_NO_SIGNAL_HANDLERS :: "SDL_NO_SIGNAL_HANDLERS"

    HINT_OPENGL_ES_DRIVER ¶

    HINT_OPENGL_ES_DRIVER :: "SDL_OPENGL_ES_DRIVER"

    HINT_OPENGL_LIBRARY ¶

    HINT_OPENGL_LIBRARY :: "SDL_OPENGL_LIBRARY"

    HINT_OPENVR_LIBRARY ¶

    HINT_OPENVR_LIBRARY :: "SDL_OPENVR_LIBRARY"

    HINT_ORIENTATIONS ¶

    HINT_ORIENTATIONS :: "SDL_ORIENTATIONS"

    HINT_PEN_MOUSE_EVENTS ¶

    HINT_PEN_MOUSE_EVENTS :: "SDL_PEN_MOUSE_EVENTS"

    HINT_PEN_TOUCH_EVENTS ¶

    HINT_PEN_TOUCH_EVENTS :: "SDL_PEN_TOUCH_EVENTS"

    HINT_POLL_SENTINEL ¶

    HINT_POLL_SENTINEL :: "SDL_POLL_SENTINEL"

    HINT_PREFERRED_LOCALES ¶

    HINT_PREFERRED_LOCALES :: "SDL_PREFERRED_LOCALES"

    HINT_QUIT_ON_LAST_WINDOW_CLOSE ¶

    HINT_QUIT_ON_LAST_WINDOW_CLOSE :: "SDL_QUIT_ON_LAST_WINDOW_CLOSE"

    HINT_RENDER_DIRECT3D11_DEBUG ¶

    HINT_RENDER_DIRECT3D11_DEBUG :: "SDL_RENDER_DIRECT3D11_DEBUG"

    HINT_RENDER_DIRECT3D_THREADSAFE ¶

    HINT_RENDER_DIRECT3D_THREADSAFE :: "SDL_RENDER_DIRECT3D_THREADSAFE"

    HINT_RENDER_DRIVER ¶

    HINT_RENDER_DRIVER :: "SDL_RENDER_DRIVER"

    HINT_RENDER_GPU_DEBUG ¶

    HINT_RENDER_GPU_DEBUG :: "SDL_RENDER_GPU_DEBUG"

    HINT_RENDER_GPU_LOW_POWER ¶

    HINT_RENDER_GPU_LOW_POWER :: "SDL_RENDER_GPU_LOW_POWER"

    HINT_RENDER_LINE_METHOD ¶

    HINT_RENDER_LINE_METHOD :: "SDL_RENDER_LINE_METHOD"

    HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE ¶

    HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE :: "SDL_RENDER_METAL_PREFER_LOW_POWER_DEVICE"

    HINT_RENDER_VSYNC ¶

    HINT_RENDER_VSYNC :: "SDL_RENDER_VSYNC"

    HINT_RENDER_VULKAN_DEBUG ¶

    HINT_RENDER_VULKAN_DEBUG :: "SDL_RENDER_VULKAN_DEBUG"

    HINT_RETURN_KEY_HIDES_IME ¶

    HINT_RETURN_KEY_HIDES_IME :: "SDL_RETURN_KEY_HIDES_IME"

    HINT_ROG_GAMEPAD_MICE ¶

    HINT_ROG_GAMEPAD_MICE :: "SDL_ROG_GAMEPAD_MICE"

    HINT_ROG_GAMEPAD_MICE_EXCLUDED ¶

    HINT_ROG_GAMEPAD_MICE_EXCLUDED :: "SDL_ROG_GAMEPAD_MICE_EXCLUDED"

    HINT_RPI_VIDEO_LAYER ¶

    HINT_RPI_VIDEO_LAYER :: "SDL_RPI_VIDEO_LAYER"

    HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME ¶

    HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME :: "SDL_SCREENSAVER_INHIBIT_ACTIVITY_NAME"

    HINT_SHUTDOWN_DBUS_ON_QUIT ¶

    HINT_SHUTDOWN_DBUS_ON_QUIT :: "SDL_SHUTDOWN_DBUS_ON_QUIT"

    HINT_STORAGE_TITLE_DRIVER ¶

    HINT_STORAGE_TITLE_DRIVER :: "SDL_STORAGE_TITLE_DRIVER"

    HINT_STORAGE_USER_DRIVER ¶

    HINT_STORAGE_USER_DRIVER :: "SDL_STORAGE_USER_DRIVER"

    HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL ¶

    HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL :: "SDL_THREAD_FORCE_REALTIME_TIME_CRITICAL"

    HINT_THREAD_PRIORITY_POLICY ¶

    HINT_THREAD_PRIORITY_POLICY :: "SDL_THREAD_PRIORITY_POLICY"

    HINT_TIMER_RESOLUTION ¶

    HINT_TIMER_RESOLUTION :: "SDL_TIMER_RESOLUTION"

    HINT_TOUCH_MOUSE_EVENTS ¶

    HINT_TOUCH_MOUSE_EVENTS :: "SDL_TOUCH_MOUSE_EVENTS"

    HINT_TRACKPAD_IS_TOUCH_ONLY ¶

    HINT_TRACKPAD_IS_TOUCH_ONLY :: "SDL_TRACKPAD_IS_TOUCH_ONLY"

    HINT_TV_REMOTE_AS_JOYSTICK ¶

    HINT_TV_REMOTE_AS_JOYSTICK :: "SDL_TV_REMOTE_AS_JOYSTICK"

    HINT_VIDEO_ALLOW_SCREENSAVER ¶

    HINT_VIDEO_ALLOW_SCREENSAVER :: "SDL_VIDEO_ALLOW_SCREENSAVER"

    HINT_VIDEO_DISPLAY_PRIORITY ¶

    HINT_VIDEO_DISPLAY_PRIORITY :: "SDL_VIDEO_DISPLAY_PRIORITY"

    HINT_VIDEO_DOUBLE_BUFFER ¶

    HINT_VIDEO_DOUBLE_BUFFER :: "SDL_VIDEO_DOUBLE_BUFFER"

    HINT_VIDEO_DRIVER ¶

    HINT_VIDEO_DRIVER :: "SDL_VIDEO_DRIVER"

    HINT_VIDEO_DUMMY_SAVE_FRAMES ¶

    HINT_VIDEO_DUMMY_SAVE_FRAMES :: "SDL_VIDEO_DUMMY_SAVE_FRAMES"

    HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK ¶

    HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK :: "SDL_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK"

    HINT_VIDEO_FORCE_EGL ¶

    HINT_VIDEO_FORCE_EGL :: "SDL_VIDEO_FORCE_EGL"

    HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY ¶

    HINT_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY :: "SDL_VIDEO_MAC_FULLSCREEN_MENU_VISIBILITY"

    HINT_VIDEO_MAC_FULLSCREEN_SPACES ¶

    HINT_VIDEO_MAC_FULLSCREEN_SPACES :: "SDL_VIDEO_MAC_FULLSCREEN_SPACES"

    HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS ¶

    HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS :: "SDL_VIDEO_MINIMIZE_ON_FOCUS_LOSS"

    HINT_VIDEO_OFFSCREEN_SAVE_FRAMES ¶

    HINT_VIDEO_OFFSCREEN_SAVE_FRAMES :: "SDL_VIDEO_OFFSCREEN_SAVE_FRAMES"

    HINT_VIDEO_SYNC_WINDOW_OPERATIONS ¶

    HINT_VIDEO_SYNC_WINDOW_OPERATIONS :: "SDL_VIDEO_SYNC_WINDOW_OPERATIONS"

    HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR ¶

    HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR :: "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR"

    HINT_VIDEO_WAYLAND_MODE_EMULATION ¶

    HINT_VIDEO_WAYLAND_MODE_EMULATION :: "SDL_VIDEO_WAYLAND_MODE_EMULATION"

    HINT_VIDEO_WAYLAND_MODE_SCALING ¶

    HINT_VIDEO_WAYLAND_MODE_SCALING :: "SDL_VIDEO_WAYLAND_MODE_SCALING"

    HINT_VIDEO_WAYLAND_PREFER_LIBDECOR ¶

    HINT_VIDEO_WAYLAND_PREFER_LIBDECOR :: "SDL_VIDEO_WAYLAND_PREFER_LIBDECOR"

    HINT_VIDEO_WAYLAND_SCALE_TO_DISPLAY ¶

    HINT_VIDEO_WAYLAND_SCALE_TO_DISPLAY :: "SDL_VIDEO_WAYLAND_SCALE_TO_DISPLAY"

    HINT_VIDEO_WIN_D3DCOMPILER ¶

    HINT_VIDEO_WIN_D3DCOMPILER :: "SDL_VIDEO_WIN_D3DCOMPILER"

    HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR ¶

    HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR :: "SDL_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR"

    HINT_VIDEO_X11_NET_WM_PING ¶

    HINT_VIDEO_X11_NET_WM_PING :: "SDL_VIDEO_X11_NET_WM_PING"

    HINT_VIDEO_X11_NODIRECTCOLOR ¶

    HINT_VIDEO_X11_NODIRECTCOLOR :: "SDL_VIDEO_X11_NODIRECTCOLOR"

    HINT_VIDEO_X11_SCALING_FACTOR ¶

    HINT_VIDEO_X11_SCALING_FACTOR :: "SDL_VIDEO_X11_SCALING_FACTOR"

    HINT_VIDEO_X11_VISUALID ¶

    HINT_VIDEO_X11_VISUALID :: "SDL_VIDEO_X11_VISUALID"

    HINT_VIDEO_X11_WINDOW_VISUALID ¶

    HINT_VIDEO_X11_WINDOW_VISUALID :: "SDL_VIDEO_X11_WINDOW_VISUALID"

    HINT_VIDEO_X11_XRANDR ¶

    HINT_VIDEO_X11_XRANDR :: "SDL_VIDEO_X11_XRANDR"

    HINT_VITA_ENABLE_BACK_TOUCH ¶

    HINT_VITA_ENABLE_BACK_TOUCH :: "SDL_VITA_ENABLE_BACK_TOUCH"

    HINT_VITA_ENABLE_FRONT_TOUCH ¶

    HINT_VITA_ENABLE_FRONT_TOUCH :: "SDL_VITA_ENABLE_FRONT_TOUCH"

    HINT_VITA_MODULE_PATH ¶

    HINT_VITA_MODULE_PATH :: "SDL_VITA_MODULE_PATH"

    HINT_VITA_PVR_INIT ¶

    HINT_VITA_PVR_INIT :: "SDL_VITA_PVR_INIT"

    HINT_VITA_PVR_OPENGL ¶

    HINT_VITA_PVR_OPENGL :: "SDL_VITA_PVR_OPENGL"

    HINT_VITA_RESOLUTION ¶

    HINT_VITA_RESOLUTION :: "SDL_VITA_RESOLUTION"

    HINT_VITA_TOUCH_MOUSE_DEVICE ¶

    HINT_VITA_TOUCH_MOUSE_DEVICE :: "SDL_VITA_TOUCH_MOUSE_DEVICE"

    HINT_VULKAN_DISPLAY ¶

    HINT_VULKAN_DISPLAY :: "SDL_VULKAN_DISPLAY"

    HINT_VULKAN_LIBRARY ¶

    HINT_VULKAN_LIBRARY :: "SDL_VULKAN_LIBRARY"

    HINT_WAVE_CHUNK_LIMIT ¶

    HINT_WAVE_CHUNK_LIMIT :: "SDL_WAVE_CHUNK_LIMIT"

    HINT_WAVE_FACT_CHUNK ¶

    HINT_WAVE_FACT_CHUNK :: "SDL_WAVE_FACT_CHUNK"

    HINT_WAVE_RIFF_CHUNK_SIZE ¶

    HINT_WAVE_RIFF_CHUNK_SIZE :: "SDL_WAVE_RIFF_CHUNK_SIZE"

    HINT_WAVE_TRUNCATION ¶

    HINT_WAVE_TRUNCATION :: "SDL_WAVE_TRUNCATION"

    HINT_WINDOWS_CLOSE_ON_ALT_F4 ¶

    HINT_WINDOWS_CLOSE_ON_ALT_F4 :: "SDL_WINDOWS_CLOSE_ON_ALT_F4"

    HINT_WINDOWS_ENABLE_MENU_MNEMONICS ¶

    HINT_WINDOWS_ENABLE_MENU_MNEMONICS :: "SDL_WINDOWS_ENABLE_MENU_MNEMONICS"

    HINT_WINDOWS_ENABLE_MESSAGELOOP ¶

    HINT_WINDOWS_ENABLE_MESSAGELOOP :: "SDL_WINDOWS_ENABLE_MESSAGELOOP"

    HINT_WINDOWS_ERASE_BACKGROUND_MODE ¶

    HINT_WINDOWS_ERASE_BACKGROUND_MODE :: "SDL_WINDOWS_ERASE_BACKGROUND_MODE"

    HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL ¶

    HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL :: "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL"

    HINT_WINDOWS_GAMEINPUT ¶

    HINT_WINDOWS_GAMEINPUT :: "SDL_WINDOWS_GAMEINPUT"

    HINT_WINDOWS_INTRESOURCE_ICON ¶

    HINT_WINDOWS_INTRESOURCE_ICON :: "SDL_WINDOWS_INTRESOURCE_ICON"

    HINT_WINDOWS_INTRESOURCE_ICON_SMALL ¶

    HINT_WINDOWS_INTRESOURCE_ICON_SMALL :: "SDL_WINDOWS_INTRESOURCE_ICON_SMALL"

    HINT_WINDOWS_RAW_KEYBOARD ¶

    HINT_WINDOWS_RAW_KEYBOARD :: "SDL_WINDOWS_RAW_KEYBOARD"

    HINT_WINDOWS_USE_D3D9EX ¶

    HINT_WINDOWS_USE_D3D9EX :: "SDL_WINDOWS_USE_D3D9EX"

    HINT_WINDOW_ACTIVATE_WHEN_RAISED ¶

    HINT_WINDOW_ACTIVATE_WHEN_RAISED :: "SDL_WINDOW_ACTIVATE_WHEN_RAISED"

    HINT_WINDOW_ACTIVATE_WHEN_SHOWN ¶

    HINT_WINDOW_ACTIVATE_WHEN_SHOWN :: "SDL_WINDOW_ACTIVATE_WHEN_SHOWN"

    HINT_WINDOW_ALLOW_TOPMOST ¶

    HINT_WINDOW_ALLOW_TOPMOST :: "SDL_WINDOW_ALLOW_TOPMOST"

    HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN ¶

    HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN :: "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"

    HINT_X11_FORCE_OVERRIDE_REDIRECT ¶

    HINT_X11_FORCE_OVERRIDE_REDIRECT :: "SDL_X11_FORCE_OVERRIDE_REDIRECT"

    HINT_X11_WINDOW_TYPE ¶

    HINT_X11_WINDOW_TYPE :: "SDL_X11_WINDOW_TYPE"

    HINT_X11_XCB_LIBRARY ¶

    HINT_X11_XCB_LIBRARY :: "SDL_X11_XCB_LIBRARY"

    HINT_XINPUT_ENABLED ¶

    HINT_XINPUT_ENABLED :: "SDL_XINPUT_ENABLED"

    ICONV_E2BIG ¶

    ICONV_E2BIG: uint : transmute(uint)int(-2)
     

    *< Output buffer was too small.

    ICONV_EILSEQ ¶

    ICONV_EILSEQ: uint : transmute(uint)int(-3)
     

    *< Invalid input sequence was encountered.

    ICONV_EINVAL ¶

    ICONV_EINVAL: uint : transmute(uint)int(-4)
     

    *< Incomplete input sequence was encountered.

    ICONV_ERROR ¶

    ICONV_ERROR: uint : transmute(uint)int(-1)
     

    *< Generic error. Check SDL_GetError()?

    INIT_AUDIO ¶

    INIT_AUDIO :: InitFlags{.AUDIO}

    INIT_CAMERA ¶

    INIT_CAMERA :: InitFlags{.CAMERA}

    INIT_EVENTS ¶

    INIT_EVENTS :: InitFlags{.EVENTS}

    INIT_GAMEPAD ¶

    INIT_GAMEPAD :: InitFlags{.GAMEPAD}

    INIT_HAPTIC ¶

    INIT_HAPTIC :: InitFlags{.HAPTIC}

    INIT_JOYSTICK ¶

    INIT_JOYSTICK :: InitFlags{.JOYSTICK}

    INIT_SENSOR ¶

    INIT_SENSOR :: InitFlags{.SENSOR}

    INIT_VIDEO ¶

    INIT_VIDEO :: InitFlags{.VIDEO}

    IO_SEEK_CUR ¶

    IO_SEEK_CUR :: IOWhence.SEEK_CUR

    IO_SEEK_END ¶

    IO_SEEK_END :: IOWhence.SEEK_END

    IO_SEEK_SET ¶

    IO_SEEK_SET :: IOWhence.SEEK_SET

    JOYSTICK_AXIS_MAX ¶

    JOYSTICK_AXIS_MAX :: +32767

    JOYSTICK_AXIS_MIN ¶

    JOYSTICK_AXIS_MIN :: -32768

    JOYSTICK_TYPE_COUNT ¶

    JOYSTICK_TYPE_COUNT :: len(JoystickType)

    KMOD_ALT ¶

    KMOD_ALT :: Keymod{.LALT, .RALT}
     

    *< Any Alt key is down.

    KMOD_CAPS ¶

    KMOD_CAPS :: Keymod{.CAPS}
     

    *< the Caps Lock key is down.

    KMOD_CTRL ¶

    KMOD_CTRL :: Keymod{.LCTRL, .RCTRL}
     

    *< Any Ctrl key is down.

    KMOD_GUI ¶

    KMOD_GUI :: Keymod{.LGUI, .RGUI}
     

    *< Any GUI key is down.

    KMOD_LALT ¶

    KMOD_LALT :: Keymod{.LALT}
     

    *< the left Alt key is down.

    KMOD_LCTRL ¶

    KMOD_LCTRL :: Keymod{.LCTRL}
     

    *< the left Ctrl (Control) key is down.

    KMOD_LEVEL5 ¶

    KMOD_LEVEL5 :: Keymod{.LEVEL5}
     

    *< the Level 5 Shift key is down.

    KMOD_LGUI ¶

    KMOD_LGUI :: Keymod{.LGUI}
     

    *< the left GUI key (often the Windows key) is down.

    KMOD_LSHIFT ¶

    KMOD_LSHIFT :: Keymod{.LSHIFT}
     

    *< the left Shift key is down.

    KMOD_MODE ¶

    KMOD_MODE :: Keymod{.MODE}
     

    *< the !AltGr key is down.

    KMOD_NONE ¶

    KMOD_NONE :: Keymod{}
     

    *< no modifier is applicable.

    KMOD_NUM ¶

    KMOD_NUM :: Keymod{.NUM}
     

    *< the Num Lock key (may be located on an extended keypad) is down.

    KMOD_RALT ¶

    KMOD_RALT :: Keymod{.RALT}
     

    *< the right Alt key is down.

    KMOD_RCTRL ¶

    KMOD_RCTRL :: Keymod{.RCTRL}
     

    *< the right Ctrl (Control) key is down.

    KMOD_RGUI ¶

    KMOD_RGUI :: Keymod{.RGUI}
     

    *< the right GUI key (often the Windows key) is down.

    KMOD_RSHIFT ¶

    KMOD_RSHIFT :: Keymod{.RSHIFT}
     

    *< the right Shift key is down.

    KMOD_SCROLL ¶

    KMOD_SCROLL :: Keymod{.SCROLL}
     

    *< the Scroll Lock key is down.

    KMOD_SHIFT ¶

    KMOD_SHIFT :: Keymod{.LSHIFT, .RSHIFT}
     

    *< Any Shift key is down.

    K_0 ¶

    K_0 :: 0x00000030
     

    *< '0'

    K_1 ¶

    K_1 :: 0x00000031
     

    *< '1'

    K_2 ¶

    K_2 :: 0x00000032
     

    *< '2'

    K_3 ¶

    K_3 :: 0x00000033
     

    *< '3'

    K_4 ¶

    K_4 :: 0x00000034
     

    *< '4'

    K_5 ¶

    K_5 :: 0x00000035
     

    *< '5'

    K_6 ¶

    K_6 :: 0x00000036
     

    *< '6'

    K_7 ¶

    K_7 :: 0x00000037
     

    *< '7'

    K_8 ¶

    K_8 :: 0x00000038
     

    *< '8'

    K_9 ¶

    K_9 :: 0x00000039
     

    *< '9'

    K_A ¶

    K_A :: 0x00000061
     

    *< 'a'

    K_AC_BACK ¶

    K_AC_BACK :: 0x4000011a
     

    *< SCANCODE_TO_KEYCODE(.AC_BACK)

    K_AC_BOOKMARKS ¶

    K_AC_BOOKMARKS :: 0x4000011e
     

    *< SCANCODE_TO_KEYCODE(.AC_BOOKMARKS)

    K_AC_CLOSE ¶

    K_AC_CLOSE :: 0x40000113
     

    *< SCANCODE_TO_KEYCODE(.AC_CLOSE)

    K_AC_EXIT ¶

    K_AC_EXIT :: 0x40000114
     

    *< SCANCODE_TO_KEYCODE(.AC_EXIT)

    K_AC_FORWARD ¶

    K_AC_FORWARD :: 0x4000011b
     

    *< SCANCODE_TO_KEYCODE(.AC_FORWARD)

    K_AC_HOME ¶

    K_AC_HOME :: 0x40000119
     

    *< SCANCODE_TO_KEYCODE(.AC_HOME)

    K_AC_NEW ¶

    K_AC_NEW :: 0x40000111
     

    *< SCANCODE_TO_KEYCODE(.AC_NEW)

    K_AC_OPEN ¶

    K_AC_OPEN :: 0x40000112
     

    *< SCANCODE_TO_KEYCODE(.AC_OPEN)

    K_AC_PRINT ¶

    K_AC_PRINT :: 0x40000116
     

    *< SCANCODE_TO_KEYCODE(.AC_PRINT)

    K_AC_PROPERTIES ¶

    K_AC_PROPERTIES :: 0x40000117
     

    *< SCANCODE_TO_KEYCODE(.AC_PROPERTIES)

    K_AC_REFRESH ¶

    K_AC_REFRESH :: 0x4000011d
     

    *< SCANCODE_TO_KEYCODE(.AC_REFRESH)

    K_AC_SAVE ¶

    K_AC_SAVE :: 0x40000115
     

    *< SCANCODE_TO_KEYCODE(.AC_SAVE)

    K_AC_SEARCH :: 0x40000118
     

    *< SCANCODE_TO_KEYCODE(.AC_SEARCH)

    K_AC_STOP ¶

    K_AC_STOP :: 0x4000011c
     

    *< SCANCODE_TO_KEYCODE(.AC_STOP)

    K_AGAIN ¶

    K_AGAIN :: 0x40000079
     

    *< SCANCODE_TO_KEYCODE(.AGAIN)

    K_ALTERASE ¶

    K_ALTERASE :: 0x40000099
     

    *< SCANCODE_TO_KEYCODE(.ALTERASE)

    K_AMPERSAND ¶

    K_AMPERSAND :: 0x00000026
     

    *< '&'

    K_APOSTROPHE ¶

    K_APOSTROPHE :: 0x00000027
     

    *< '\''

    K_APPLICATION ¶

    K_APPLICATION :: 0x40000065
     

    *< SCANCODE_TO_KEYCODE(.APPLICATION)

    K_ASTERISK ¶

    K_ASTERISK :: 0x0000002a
     

    < ''

    K_AT ¶

    K_AT :: 0x00000040
     

    *< '@'

    K_B ¶

    K_B :: 0x00000062
     

    *< 'b'

    K_BACKSLASH ¶

    K_BACKSLASH :: 0x0000005c
     

    *< '\\'

    K_BACKSPACE ¶

    K_BACKSPACE :: 0x00000008
     

    *< '\b'

    K_C ¶

    K_C :: 0x00000063
     

    *< 'c'

    K_CALL ¶

    K_CALL :: 0x40000121
     

    *< SCANCODE_TO_KEYCODE(.CALL)

    K_CANCEL ¶

    K_CANCEL :: 0x4000009b
     

    *< SCANCODE_TO_KEYCODE(.CANCEL)

    K_CAPSLOCK ¶

    K_CAPSLOCK :: 0x40000039
     

    *< SCANCODE_TO_KEYCODE(.CAPSLOCK)

    K_CARET ¶

    K_CARET :: 0x0000005e
     

    *< '^'

    K_CHANNEL_DECREMENT ¶

    K_CHANNEL_DECREMENT :: 0x40000105
     

    *< SCANCODE_TO_KEYCODE(.CHANNEL_DECREMENT)

    K_CHANNEL_INCREMENT ¶

    K_CHANNEL_INCREMENT :: 0x40000104
     

    *< SCANCODE_TO_KEYCODE(.CHANNEL_INCREMENT)

    K_CLEAR ¶

    K_CLEAR :: 0x4000009c
     

    *< SCANCODE_TO_KEYCODE(.CLEAR)

    K_CLEARAGAIN ¶

    K_CLEARAGAIN :: 0x400000a2
     

    *< SCANCODE_TO_KEYCODE(.CLEARAGAIN)

    K_COLON ¶

    K_COLON :: 0x0000003a
     

    *< ':'

    K_COMMA ¶

    K_COMMA :: 0x0000002c
     

    *< ','

    K_COPY ¶

    K_COPY :: 0x4000007c
     

    *< SCANCODE_TO_KEYCODE(.COPY)

    K_CRSEL ¶

    K_CRSEL :: 0x400000a3
     

    *< SCANCODE_TO_KEYCODE(.CRSEL)

    K_CURRENCYSUBUNIT ¶

    K_CURRENCYSUBUNIT :: 0x400000b5
     

    *< SCANCODE_TO_KEYCODE(.CURRENCYSUBUNIT)

    K_CURRENCYUNIT ¶

    K_CURRENCYUNIT :: 0x400000b4
     

    *< SCANCODE_TO_KEYCODE(.CURRENCYUNIT)

    K_CUT ¶

    K_CUT :: 0x4000007b
     

    *< SCANCODE_TO_KEYCODE(.CUT)

    K_D ¶

    K_D :: 0x00000064
     

    *< 'd'

    K_DBLAPOSTROPHE ¶

    K_DBLAPOSTROPHE :: 0x00000022
     

    *< '"'

    K_DECIMALSEPARATOR ¶

    K_DECIMALSEPARATOR :: 0x400000b3
     

    *< SCANCODE_TO_KEYCODE(.DECIMALSEPARATOR)

    K_DELETE ¶

    K_DELETE :: 0x0000007f
     

    *< '\x7F'

    K_DOLLAR ¶

    K_DOLLAR :: 0x00000024
     

    *< '$'

    K_DOWN ¶

    K_DOWN :: 0x40000051
     

    *< SCANCODE_TO_KEYCODE(.DOWN)

    K_E ¶

    K_E :: 0x00000065
     

    *< 'e'

    K_END ¶

    K_END :: 0x4000004d
     

    *< SCANCODE_TO_KEYCODE(.END)

    K_ENDCALL ¶

    K_ENDCALL :: 0x40000122
     

    *< SCANCODE_TO_KEYCODE(.ENDCALL)

    K_EQUALS ¶

    K_EQUALS :: 0x0000003d
     

    *< '='

    K_ESCAPE ¶

    K_ESCAPE :: 0x0000001b
     

    *< '\x1B'

    K_EXCLAIM ¶

    K_EXCLAIM :: 0x00000021
     

    *< '!'

    K_EXECUTE ¶

    K_EXECUTE :: 0x40000074
     

    *< SCANCODE_TO_KEYCODE(.EXECUTE)

    K_EXSEL ¶

    K_EXSEL :: 0x400000a4
     

    *< SCANCODE_TO_KEYCODE(.EXSEL)

    K_EXTENDED_MASK ¶

    K_EXTENDED_MASK :: 1 << 29

    K_F ¶

    K_F :: 0x00000066
     

    *< 'f'

    K_F1 ¶

    K_F1 :: 0x4000003a
     

    *< SCANCODE_TO_KEYCODE(.F1)

    K_F10 ¶

    K_F10 :: 0x40000043
     

    *< SCANCODE_TO_KEYCODE(.F10)

    K_F11 ¶

    K_F11 :: 0x40000044
     

    *< SCANCODE_TO_KEYCODE(.F11)

    K_F12 ¶

    K_F12 :: 0x40000045
     

    *< SCANCODE_TO_KEYCODE(.F12)

    K_F13 ¶

    K_F13 :: 0x40000068
     

    *< SCANCODE_TO_KEYCODE(.F13)

    K_F14 ¶

    K_F14 :: 0x40000069
     

    *< SCANCODE_TO_KEYCODE(.F14)

    K_F15 ¶

    K_F15 :: 0x4000006a
     

    *< SCANCODE_TO_KEYCODE(.F15)

    K_F16 ¶

    K_F16 :: 0x4000006b
     

    *< SCANCODE_TO_KEYCODE(.F16)

    K_F17 ¶

    K_F17 :: 0x4000006c
     

    *< SCANCODE_TO_KEYCODE(.F17)

    K_F18 ¶

    K_F18 :: 0x4000006d
     

    *< SCANCODE_TO_KEYCODE(.F18)

    K_F19 ¶

    K_F19 :: 0x4000006e
     

    *< SCANCODE_TO_KEYCODE(.F19)

    K_F2 ¶

    K_F2 :: 0x4000003b
     

    *< SCANCODE_TO_KEYCODE(.F2)

    K_F20 ¶

    K_F20 :: 0x4000006f
     

    *< SCANCODE_TO_KEYCODE(.F20)

    K_F21 ¶

    K_F21 :: 0x40000070
     

    *< SCANCODE_TO_KEYCODE(.F21)

    K_F22 ¶

    K_F22 :: 0x40000071
     

    *< SCANCODE_TO_KEYCODE(.F22)

    K_F23 ¶

    K_F23 :: 0x40000072
     

    *< SCANCODE_TO_KEYCODE(.F23)

    K_F24 ¶

    K_F24 :: 0x40000073
     

    *< SCANCODE_TO_KEYCODE(.F24)

    K_F3 ¶

    K_F3 :: 0x4000003c
     

    *< SCANCODE_TO_KEYCODE(.F3)

    K_F4 ¶

    K_F4 :: 0x4000003d
     

    *< SCANCODE_TO_KEYCODE(.F4)

    K_F5 ¶

    K_F5 :: 0x4000003e
     

    *< SCANCODE_TO_KEYCODE(.F5)

    K_F6 ¶

    K_F6 :: 0x4000003f
     

    *< SCANCODE_TO_KEYCODE(.F6)

    K_F7 ¶

    K_F7 :: 0x40000040
     

    *< SCANCODE_TO_KEYCODE(.F7)

    K_F8 ¶

    K_F8 :: 0x40000041
     

    *< SCANCODE_TO_KEYCODE(.F8)

    K_F9 ¶

    K_F9 :: 0x40000042
     

    *< SCANCODE_TO_KEYCODE(.F9)

    K_FIND ¶

    K_FIND :: 0x4000007e
     

    *< SCANCODE_TO_KEYCODE(.FIND)

    K_G ¶

    K_G :: 0x00000067
     

    *< 'g'

    K_GRAVE ¶

    K_GRAVE :: 0x00000060
     

    *< '`'

    K_GREATER ¶

    K_GREATER :: 0x0000003e
     

    *< '>'

    K_H ¶

    K_H :: 0x00000068
     

    *< 'h'

    K_HASH ¶

    K_HASH :: 0x00000023
     

    *< '#'

    K_HELP ¶

    K_HELP :: 0x40000075
     

    *< SCANCODE_TO_KEYCODE(.HELP)

    K_HOME ¶

    K_HOME :: 0x4000004a
     

    *< SCANCODE_TO_KEYCODE(.HOME)

    K_I ¶

    K_I :: 0x00000069
     

    *< 'i'

    K_INSERT ¶

    K_INSERT :: 0x40000049
     

    *< SCANCODE_TO_KEYCODE(.INSERT)

    K_J ¶

    K_J :: 0x0000006a
     

    *< 'j'

    K_K ¶

    K_K :: 0x0000006b
     

    *< 'k'

    K_KP_0 ¶

    K_KP_0 :: 0x40000062
     

    *< SCANCODE_TO_KEYCODE(.KP_0)

    K_KP_00 ¶

    K_KP_00 :: 0x400000b0
     

    *< SCANCODE_TO_KEYCODE(.KP_00)

    K_KP_000 ¶

    K_KP_000 :: 0x400000b1
     

    *< SCANCODE_TO_KEYCODE(.KP_000)

    K_KP_1 ¶

    K_KP_1 :: 0x40000059
     

    *< SCANCODE_TO_KEYCODE(.KP_1)

    K_KP_2 ¶

    K_KP_2 :: 0x4000005a
     

    *< SCANCODE_TO_KEYCODE(.KP_2)

    K_KP_3 ¶

    K_KP_3 :: 0x4000005b
     

    *< SCANCODE_TO_KEYCODE(.KP_3)

    K_KP_4 ¶

    K_KP_4 :: 0x4000005c
     

    *< SCANCODE_TO_KEYCODE(.KP_4)

    K_KP_5 ¶

    K_KP_5 :: 0x4000005d
     

    *< SCANCODE_TO_KEYCODE(.KP_5)

    K_KP_6 ¶

    K_KP_6 :: 0x4000005e
     

    *< SCANCODE_TO_KEYCODE(.KP_6)

    K_KP_7 ¶

    K_KP_7 :: 0x4000005f
     

    *< SCANCODE_TO_KEYCODE(.KP_7)

    K_KP_8 ¶

    K_KP_8 :: 0x40000060
     

    *< SCANCODE_TO_KEYCODE(.KP_8)

    K_KP_9 ¶

    K_KP_9 :: 0x40000061
     

    *< SCANCODE_TO_KEYCODE(.KP_9)

    K_KP_A ¶

    K_KP_A :: 0x400000bc
     

    *< SCANCODE_TO_KEYCODE(.KP_A)

    K_KP_AMPERSAND ¶

    K_KP_AMPERSAND :: 0x400000c7
     

    *< SCANCODE_TO_KEYCODE(.KP_AMPERSAND)

    K_KP_AT ¶

    K_KP_AT :: 0x400000ce
     

    *< SCANCODE_TO_KEYCODE(.KP_AT)

    K_KP_B ¶

    K_KP_B :: 0x400000bd
     

    *< SCANCODE_TO_KEYCODE(.KP_B)

    K_KP_BACKSPACE ¶

    K_KP_BACKSPACE :: 0x400000bb
     

    *< SCANCODE_TO_KEYCODE(.KP_BACKSPACE)

    K_KP_BINARY ¶

    K_KP_BINARY :: 0x400000da
     

    *< SCANCODE_TO_KEYCODE(.KP_BINARY)

    K_KP_C ¶

    K_KP_C :: 0x400000be
     

    *< SCANCODE_TO_KEYCODE(.KP_C)

    K_KP_CLEAR ¶

    K_KP_CLEAR :: 0x400000d8
     

    *< SCANCODE_TO_KEYCODE(.KP_CLEAR)

    K_KP_CLEARENTRY ¶

    K_KP_CLEARENTRY :: 0x400000d9
     

    *< SCANCODE_TO_KEYCODE(.KP_CLEARENTRY)

    K_KP_COLON ¶

    K_KP_COLON :: 0x400000cb
     

    *< SCANCODE_TO_KEYCODE(.KP_COLON)

    K_KP_COMMA ¶

    K_KP_COMMA :: 0x40000085
     

    *< SCANCODE_TO_KEYCODE(.KP_COMMA)

    K_KP_D ¶

    K_KP_D :: 0x400000bf
     

    *< SCANCODE_TO_KEYCODE(.KP_D)

    K_KP_DBLAMPERSAND ¶

    K_KP_DBLAMPERSAND :: 0x400000c8
     

    *< SCANCODE_TO_KEYCODE(.KP_DBLAMPERSAND)

    K_KP_DBLVERTICALBAR ¶

    K_KP_DBLVERTICALBAR :: 0x400000ca
     

    *< SCANCODE_TO_KEYCODE(.KP_DBLVERTICALBAR)

    K_KP_DECIMAL ¶

    K_KP_DECIMAL :: 0x400000dc
     

    *< SCANCODE_TO_KEYCODE(.KP_DECIMAL)

    K_KP_DIVIDE ¶

    K_KP_DIVIDE :: 0x40000054
     

    *< SCANCODE_TO_KEYCODE(.KP_DIVIDE)

    K_KP_E ¶

    K_KP_E :: 0x400000c0
     

    *< SCANCODE_TO_KEYCODE(.KP_E)

    K_KP_ENTER ¶

    K_KP_ENTER :: 0x40000058
     

    *< SCANCODE_TO_KEYCODE(.KP_ENTER)

    K_KP_EQUALS ¶

    K_KP_EQUALS :: 0x40000067
     

    *< SCANCODE_TO_KEYCODE(.KP_EQUALS)

    K_KP_EQUALSAS400 ¶

    K_KP_EQUALSAS400 :: 0x40000086
     

    *< SCANCODE_TO_KEYCODE(.KP_EQUALSAS400)

    K_KP_EXCLAM ¶

    K_KP_EXCLAM :: 0x400000cf
     

    *< SCANCODE_TO_KEYCODE(.KP_EXCLAM)

    K_KP_F ¶

    K_KP_F :: 0x400000c1
     

    *< SCANCODE_TO_KEYCODE(.KP_F)

    K_KP_GREATER ¶

    K_KP_GREATER :: 0x400000c6
     

    *< SCANCODE_TO_KEYCODE(.KP_GREATER)

    K_KP_HASH ¶

    K_KP_HASH :: 0x400000cc
     

    *< SCANCODE_TO_KEYCODE(.KP_HASH)

    K_KP_HEXADECIMAL ¶

    K_KP_HEXADECIMAL :: 0x400000dd
     

    *< SCANCODE_TO_KEYCODE(.KP_HEXADECIMAL)

    K_KP_LEFTBRACE ¶

    K_KP_LEFTBRACE :: 0x400000b8
     

    *< SCANCODE_TO_KEYCODE(.KP_LEFTBRACE)

    K_KP_LEFTPAREN ¶

    K_KP_LEFTPAREN :: 0x400000b6
     

    *< SCANCODE_TO_KEYCODE(.KP_LEFTPAREN)

    K_KP_LESS ¶

    K_KP_LESS :: 0x400000c5
     

    *< SCANCODE_TO_KEYCODE(.KP_LESS)

    K_KP_MEMADD ¶

    K_KP_MEMADD :: 0x400000d3
     

    *< SCANCODE_TO_KEYCODE(.KP_MEMADD)

    K_KP_MEMCLEAR ¶

    K_KP_MEMCLEAR :: 0x400000d2
     

    *< SCANCODE_TO_KEYCODE(.KP_MEMCLEAR)

    K_KP_MEMDIVIDE ¶

    K_KP_MEMDIVIDE :: 0x400000d6
     

    *< SCANCODE_TO_KEYCODE(.KP_MEMDIVIDE)

    K_KP_MEMMULTIPLY ¶

    K_KP_MEMMULTIPLY :: 0x400000d5
     

    *< SCANCODE_TO_KEYCODE(.KP_MEMMULTIPLY)

    K_KP_MEMRECALL ¶

    K_KP_MEMRECALL :: 0x400000d1
     

    *< SCANCODE_TO_KEYCODE(.KP_MEMRECALL)

    K_KP_MEMSTORE ¶

    K_KP_MEMSTORE :: 0x400000d0
     

    *< SCANCODE_TO_KEYCODE(.KP_MEMSTORE)

    K_KP_MEMSUBTRACT ¶

    K_KP_MEMSUBTRACT :: 0x400000d4
     

    *< SCANCODE_TO_KEYCODE(.KP_MEMSUBTRACT)

    K_KP_MINUS ¶

    K_KP_MINUS :: 0x40000056
     

    *< SCANCODE_TO_KEYCODE(.KP_MINUS)

    K_KP_MULTIPLY ¶

    K_KP_MULTIPLY :: 0x40000055
     

    *< SCANCODE_TO_KEYCODE(.KP_MULTIPLY)

    K_KP_OCTAL ¶

    K_KP_OCTAL :: 0x400000db
     

    *< SCANCODE_TO_KEYCODE(.KP_OCTAL)

    K_KP_PERCENT ¶

    K_KP_PERCENT :: 0x400000c4
     

    *< SCANCODE_TO_KEYCODE(.KP_PERCENT)

    K_KP_PERIOD ¶

    K_KP_PERIOD :: 0x40000063
     

    *< SCANCODE_TO_KEYCODE(.KP_PERIOD)

    K_KP_PLUS ¶

    K_KP_PLUS :: 0x40000057
     

    *< SCANCODE_TO_KEYCODE(.KP_PLUS)

    K_KP_PLUSMINUS ¶

    K_KP_PLUSMINUS :: 0x400000d7
     

    *< SCANCODE_TO_KEYCODE(.KP_PLUSMINUS)

    K_KP_POWER ¶

    K_KP_POWER :: 0x400000c3
     

    *< SCANCODE_TO_KEYCODE(.KP_POWER)

    K_KP_RIGHTBRACE ¶

    K_KP_RIGHTBRACE :: 0x400000b9
     

    *< SCANCODE_TO_KEYCODE(.KP_RIGHTBRACE)

    K_KP_RIGHTPAREN ¶

    K_KP_RIGHTPAREN :: 0x400000b7
     

    *< SCANCODE_TO_KEYCODE(.KP_RIGHTPAREN)

    K_KP_SPACE ¶

    K_KP_SPACE :: 0x400000cd
     

    *< SCANCODE_TO_KEYCODE(.KP_SPACE)

    K_KP_TAB ¶

    K_KP_TAB :: 0x400000ba
     

    *< SCANCODE_TO_KEYCODE(.KP_TAB)

    K_KP_VERTICALBAR ¶

    K_KP_VERTICALBAR :: 0x400000c9
     

    *< SCANCODE_TO_KEYCODE(.KP_VERTICALBAR)

    K_KP_XOR ¶

    K_KP_XOR :: 0x400000c2
     

    *< SCANCODE_TO_KEYCODE(.KP_XOR)

    K_L ¶

    K_L :: 0x0000006c
     

    *< 'l'

    K_LALT ¶

    K_LALT :: 0x400000e2
     

    *< SCANCODE_TO_KEYCODE(.LALT)

    K_LCTRL ¶

    K_LCTRL :: 0x400000e0
     

    *< SCANCODE_TO_KEYCODE(.LCTRL)

    K_LEFT ¶

    K_LEFT :: 0x40000050
     

    *< SCANCODE_TO_KEYCODE(.LEFT)

    K_LEFTBRACE ¶

    K_LEFTBRACE :: 0x0000007b
     

    *< '{'

    K_LEFTBRACKET ¶

    K_LEFTBRACKET :: 0x0000005b
     

    *< '['

    K_LEFTPAREN ¶

    K_LEFTPAREN :: 0x00000028
     

    *< '('

    K_LEFT_TAB ¶

    K_LEFT_TAB :: 0x20000001
     

    *< Extended key Left Tab

    K_LESS ¶

    K_LESS :: 0x0000003c
     

    *< '<'

    K_LEVEL5_SHIFT ¶

    K_LEVEL5_SHIFT :: 0x20000002
     

    *< Extended key Level 5 Shift

    K_LGUI ¶

    K_LGUI :: 0x400000e3
     

    *< SCANCODE_TO_KEYCODE(.LGUI)

    K_LHYPER ¶

    K_LHYPER :: 0x20000006
     

    *< Extended key Left Hyper

    K_LMETA ¶

    K_LMETA :: 0x20000004
     

    *< Extended key Left Meta

    K_LSHIFT ¶

    K_LSHIFT :: 0x400000e1
     

    *< SCANCODE_TO_KEYCODE(.LSHIFT)

    K_M ¶

    K_M :: 0x0000006d
     

    *< 'm'

    K_MEDIA_EJECT ¶

    K_MEDIA_EJECT :: 0x4000010e
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_EJECT)

    K_MEDIA_FAST_FORWARD ¶

    K_MEDIA_FAST_FORWARD :: 0x40000109
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_FAST_FORWARD)

    K_MEDIA_NEXT_TRACK ¶

    K_MEDIA_NEXT_TRACK :: 0x4000010b
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_NEXT_TRACK)

    K_MEDIA_PAUSE ¶

    K_MEDIA_PAUSE :: 0x40000107
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_PAUSE)

    K_MEDIA_PLAY ¶

    K_MEDIA_PLAY :: 0x40000106
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_PLAY)

    K_MEDIA_PLAY_PAUSE ¶

    K_MEDIA_PLAY_PAUSE :: 0x4000010f
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_PLAY_PAUSE)

    K_MEDIA_PREVIOUS_TRACK ¶

    K_MEDIA_PREVIOUS_TRACK :: 0x4000010c
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_PREVIOUS_TRACK)

    K_MEDIA_RECORD ¶

    K_MEDIA_RECORD :: 0x40000108
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_RECORD)

    K_MEDIA_REWIND ¶

    K_MEDIA_REWIND :: 0x4000010a
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_REWIND)

    K_MEDIA_SELECT ¶

    K_MEDIA_SELECT :: 0x40000110
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_SELECT)

    K_MEDIA_STOP ¶

    K_MEDIA_STOP :: 0x4000010d
     

    *< SCANCODE_TO_KEYCODE(.MEDIA_STOP)

    K_MENU ¶

    K_MENU :: 0x40000076
     

    *< SCANCODE_TO_KEYCODE(.MENU)

    K_MINUS ¶

    K_MINUS :: 0x0000002d
     

    *< '-'

    K_MODE ¶

    K_MODE :: 0x40000101
     

    *< SCANCODE_TO_KEYCODE(.MODE)

    K_MULTI_KEY_COMPOSE ¶

    K_MULTI_KEY_COMPOSE :: 0x20000003
     

    *< Extended key Multi-key Compose

    K_MUTE ¶

    K_MUTE :: 0x4000007f
     

    *< SCANCODE_TO_KEYCODE(.MUTE)

    K_N ¶

    K_N :: 0x0000006e
     

    *< 'n'

    K_NUMLOCKCLEAR ¶

    K_NUMLOCKCLEAR :: 0x40000053
     

    *< SCANCODE_TO_KEYCODE(.NUMLOCKCLEAR)

    K_O ¶

    K_O :: 0x0000006f
     

    *< 'o'

    K_OPER ¶

    K_OPER :: 0x400000a1
     

    *< SCANCODE_TO_KEYCODE(.OPER)

    K_OUT ¶

    K_OUT :: 0x400000a0
     

    *< SCANCODE_TO_KEYCODE(.OUT)

    K_P ¶

    K_P :: 0x00000070
     

    *< 'p'

    K_PAGEDOWN ¶

    K_PAGEDOWN :: 0x4000004e
     

    *< SCANCODE_TO_KEYCODE(.PAGEDOWN)

    K_PAGEUP ¶

    K_PAGEUP :: 0x4000004b
     

    *< SCANCODE_TO_KEYCODE(.PAGEUP)

    K_PASTE ¶

    K_PASTE :: 0x4000007d
     

    *< SCANCODE_TO_KEYCODE(.PASTE)

    K_PAUSE ¶

    K_PAUSE :: 0x40000048
     

    *< SCANCODE_TO_KEYCODE(.PAUSE)

    K_PERCENT ¶

    K_PERCENT :: 0x00000025
     

    *< '%'

    K_PERIOD ¶

    K_PERIOD :: 0x0000002e
     

    *< '.'

    K_PIPE ¶

    K_PIPE :: 0x0000007c
     

    *< '|'

    K_PLUS ¶

    K_PLUS :: 0x0000002b
     

    *< '+'

    K_PLUSMINUS ¶

    K_PLUSMINUS :: 0x000000b1
     

    *< '\xB1'

    K_POWER ¶

    K_POWER :: 0x40000066
     

    *< SCANCODE_TO_KEYCODE(.POWER)

    K_PRINTSCREEN ¶

    K_PRINTSCREEN :: 0x40000046
     

    *< SCANCODE_TO_KEYCODE(.PRINTSCREEN)

    K_PRIOR ¶

    K_PRIOR :: 0x4000009d
     

    *< SCANCODE_TO_KEYCODE(.PRIOR)

    K_Q ¶

    K_Q :: 0x00000071
     

    *< 'q'

    K_QUESTION ¶

    K_QUESTION :: 0x0000003f
     

    *< '?'

    K_R ¶

    K_R :: 0x00000072
     

    *< 'r'

    K_RALT ¶

    K_RALT :: 0x400000e6
     

    *< SCANCODE_TO_KEYCODE(.RALT)

    K_RCTRL ¶

    K_RCTRL :: 0x400000e4
     

    *< SCANCODE_TO_KEYCODE(.RCTRL)

    K_RETURN ¶

    K_RETURN :: 0x0000000d
     

    *< '\r'

    K_RETURN2 ¶

    K_RETURN2 :: 0x4000009e
     

    *< SCANCODE_TO_KEYCODE(.RETURN2)

    K_RGUI ¶

    K_RGUI :: 0x400000e7
     

    *< SCANCODE_TO_KEYCODE(.RGUI)

    K_RHYPER ¶

    K_RHYPER :: 0x20000007
     

    *< Extended key Right Hyper

    K_RIGHT ¶

    K_RIGHT :: 0x4000004f
     

    *< SCANCODE_TO_KEYCODE(.RIGHT)

    K_RIGHTBRACE ¶

    K_RIGHTBRACE :: 0x0000007d
     

    *< '}'

    K_RIGHTBRACKET ¶

    K_RIGHTBRACKET :: 0x0000005d
     

    *< ']'

    K_RIGHTPAREN ¶

    K_RIGHTPAREN :: 0x00000029
     

    *< ')'

    K_RMETA ¶

    K_RMETA :: 0x20000005
     

    *< Extended key Right Meta

    K_RSHIFT ¶

    K_RSHIFT :: 0x400000e5
     

    *< SCANCODE_TO_KEYCODE(.RSHIFT)

    K_S ¶

    K_S :: 0x00000073
     

    *< 's'

    K_SCANCODE_MASK ¶

    K_SCANCODE_MASK :: 1 << 30

    K_SCROLLLOCK ¶

    K_SCROLLLOCK :: 0x40000047
     

    *< SCANCODE_TO_KEYCODE(.SCROLLLOCK)

    K_SELECT ¶

    K_SELECT :: 0x40000077
     

    *< SCANCODE_TO_KEYCODE(.SELECT)

    K_SEMICOLON ¶

    K_SEMICOLON :: 0x0000003b
     

    *< ';'

    K_SEPARATOR ¶

    K_SEPARATOR :: 0x4000009f
     

    *< SCANCODE_TO_KEYCODE(.SEPARATOR)

    K_SLASH ¶

    K_SLASH :: 0x0000002f
     

    *< '/'

    K_SLEEP ¶

    K_SLEEP :: 0x40000102
     

    *< SCANCODE_TO_KEYCODE(.SLEEP)

    K_SOFTLEFT ¶

    K_SOFTLEFT :: 0x4000011f
     

    *< SCANCODE_TO_KEYCODE(.SOFTLEFT)

    K_SOFTRIGHT ¶

    K_SOFTRIGHT :: 0x40000120
     

    *< SCANCODE_TO_KEYCODE(.SOFTRIGHT)

    K_SPACE ¶

    K_SPACE :: 0x00000020
     

    *< ' '

    K_STOP ¶

    K_STOP :: 0x40000078
     

    *< SCANCODE_TO_KEYCODE(.STOP)

    K_SYSREQ ¶

    K_SYSREQ :: 0x4000009a
     

    *< SCANCODE_TO_KEYCODE(.SYSREQ)

    K_T ¶

    K_T :: 0x00000074
     

    *< 't'

    K_TAB ¶

    K_TAB :: 0x00000009
     

    *< '\t'

    K_THOUSANDSSEPARATOR ¶

    K_THOUSANDSSEPARATOR :: 0x400000b2
     

    *< SCANCODE_TO_KEYCODE(.THOUSANDSSEPARATOR)

    K_TILDE ¶

    K_TILDE :: 0x0000007e
     

    *< '~'

    K_U ¶

    K_U :: 0x00000075
     

    *< 'u'

    K_UNDERSCORE ¶

    K_UNDERSCORE :: 0x0000005f
     

    *< '_'

    K_UNDO ¶

    K_UNDO :: 0x4000007a
     

    *< SCANCODE_TO_KEYCODE(.UNDO)

    K_UNKNOWN ¶

    K_UNKNOWN :: 0x00000000
     

    *< 0

    K_UP ¶

    K_UP :: 0x40000052
     

    *< SCANCODE_TO_KEYCODE(.UP)

    K_V ¶

    K_V :: 0x00000076
     

    *< 'v'

    K_VOLUMEDOWN ¶

    K_VOLUMEDOWN :: 0x40000081
     

    *< SCANCODE_TO_KEYCODE(.VOLUMEDOWN)

    K_VOLUMEUP ¶

    K_VOLUMEUP :: 0x40000080
     

    *< SCANCODE_TO_KEYCODE(.VOLUMEUP)

    K_W ¶

    K_W :: 0x00000077
     

    *< 'w'

    K_WAKE ¶

    K_WAKE :: 0x40000103
     

    *< SCANCODE_TO_KEYCODE(.WAKE)

    K_X ¶

    K_X :: 0x00000078
     

    *< 'x'

    K_Y ¶

    K_Y :: 0x00000079
     

    *< 'y'

    K_Z ¶

    K_Z :: 0x0000007a
     

    *< 'z'

    LIL_ENDIAN ¶

    LIL_ENDIAN :: 1234

    MAJOR_VERSION ¶

    MAJOR_VERSION :: 3

    MICRO_VERSION ¶

    MICRO_VERSION :: 2

    MINOR_VERSION ¶

    MINOR_VERSION :: 2

    MOUSE_TOUCHID ¶

    MOUSE_TOUCHID :: TouchID(1 << 64 - 1)

    MS_PER_SECOND ¶

    MS_PER_SECOND :: 1000

    NS_PER_MS ¶

    NS_PER_MS :: 1000000

    NS_PER_SECOND ¶

    NS_PER_SECOND :: 1000000000

    NS_PER_US ¶

    NS_PER_US :: 1000

    PEN_MOUSEID ¶

    PEN_MOUSEID :: MouseID(1 << 32 - 2)

    PEN_TOUCHID ¶

    PEN_TOUCHID :: TouchID(1 << 64 - 2)
    PROP_APP_METADATA_COPYRIGHT_STRING :: "SDL.app.metadata.copyright"

    PROP_APP_METADATA_CREATOR_STRING ¶

    PROP_APP_METADATA_CREATOR_STRING :: "SDL.app.metadata.creator"

    PROP_APP_METADATA_IDENTIFIER_STRING ¶

    PROP_APP_METADATA_IDENTIFIER_STRING :: "SDL.app.metadata.identifier"

    PROP_APP_METADATA_NAME_STRING ¶

    PROP_APP_METADATA_NAME_STRING :: "SDL.app.metadata.name"

    PROP_APP_METADATA_TYPE_STRING ¶

    PROP_APP_METADATA_TYPE_STRING :: "SDL.app.metadata.type"

    PROP_APP_METADATA_URL_STRING ¶

    PROP_APP_METADATA_URL_STRING :: "SDL.app.metadata.url"

    PROP_APP_METADATA_VERSION_STRING ¶

    PROP_APP_METADATA_VERSION_STRING :: "SDL.app.metadata.version"

    PROP_DISPLAY_HDR_ENABLED_BOOLEAN ¶

    PROP_DISPLAY_HDR_ENABLED_BOOLEAN :: "SDL.display.HDR_enabled"

    PROP_DISPLAY_KMSDRM_PANEL_ORIENTATION_NUMBER ¶

    PROP_DISPLAY_KMSDRM_PANEL_ORIENTATION_NUMBER :: "SDL.display.KMSDRM.panel_orientation"

    PROP_FILE_DIALOG_ACCEPT_STRING ¶

    PROP_FILE_DIALOG_ACCEPT_STRING :: "SDL.filedialog.accept"

    PROP_FILE_DIALOG_CANCEL_STRING ¶

    PROP_FILE_DIALOG_CANCEL_STRING :: "SDL.filedialog.cancel"

    PROP_FILE_DIALOG_FILTERS_POINTER ¶

    PROP_FILE_DIALOG_FILTERS_POINTER :: "SDL.filedialog.filters"

    PROP_FILE_DIALOG_LOCATION_STRING ¶

    PROP_FILE_DIALOG_LOCATION_STRING :: "SDL.filedialog.location"

    PROP_FILE_DIALOG_MANY_BOOLEAN ¶

    PROP_FILE_DIALOG_MANY_BOOLEAN :: "SDL.filedialog.many"

    PROP_FILE_DIALOG_NFILTERS_NUMBER ¶

    PROP_FILE_DIALOG_NFILTERS_NUMBER :: "SDL.filedialog.nfilters"

    PROP_FILE_DIALOG_TITLE_STRING ¶

    PROP_FILE_DIALOG_TITLE_STRING :: "SDL.filedialog.title"

    PROP_FILE_DIALOG_WINDOW_POINTER ¶

    PROP_FILE_DIALOG_WINDOW_POINTER :: "SDL.filedialog.window"

    PROP_GAMEPAD_CAP_MONO_LED_BOOLEAN ¶

    PROP_GAMEPAD_CAP_MONO_LED_BOOLEAN :: PROP_JOYSTICK_CAP_MONO_LED_BOOLEAN

    PROP_GAMEPAD_CAP_PLAYER_LED_BOOLEAN ¶

    PROP_GAMEPAD_CAP_PLAYER_LED_BOOLEAN :: PROP_JOYSTICK_CAP_PLAYER_LED_BOOLEAN

    PROP_GAMEPAD_CAP_RGB_LED_BOOLEAN ¶

    PROP_GAMEPAD_CAP_RGB_LED_BOOLEAN :: PROP_JOYSTICK_CAP_RGB_LED_BOOLEAN

    PROP_GAMEPAD_CAP_RUMBLE_BOOLEAN ¶

    PROP_GAMEPAD_CAP_RUMBLE_BOOLEAN :: PROP_JOYSTICK_CAP_RUMBLE_BOOLEAN

    PROP_GAMEPAD_CAP_TRIGGER_RUMBLE_BOOLEAN ¶

    PROP_GAMEPAD_CAP_TRIGGER_RUMBLE_BOOLEAN :: PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN

    PROP_GLOBAL_VIDEO_WAYLAND_WL_DISPLAY_POINTER ¶

    PROP_GLOBAL_VIDEO_WAYLAND_WL_DISPLAY_POINTER :: "SDL.video.wayland.wl_display"

    PROP_GPU_BUFFER_CREATE_NAME_STRING ¶

    PROP_GPU_BUFFER_CREATE_NAME_STRING :: "SDL.gpu.buffer.create.name"

    PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING ¶

    PROP_GPU_COMPUTEPIPELINE_CREATE_NAME_STRING :: "SDL.gpu.computepipeline.create.name"

    PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING ¶

    PROP_GPU_DEVICE_CREATE_D3D12_SEMANTIC_NAME_STRING :: "SDL.gpu.device.create.d3d12.semantic"

    PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN ¶

    PROP_GPU_DEVICE_CREATE_DEBUGMODE_BOOLEAN :: "SDL.gpu.device.create.debugmode"

    PROP_GPU_DEVICE_CREATE_NAME_STRING ¶

    PROP_GPU_DEVICE_CREATE_NAME_STRING :: "SDL.gpu.device.create.name"

    PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN ¶

    PROP_GPU_DEVICE_CREATE_PREFERLOWPOWER_BOOLEAN :: "SDL.gpu.device.create.preferlowpower"

    PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN ¶

    PROP_GPU_DEVICE_CREATE_SHADERS_DXBC_BOOLEAN :: "SDL.gpu.device.create.shaders.dxbc"

    PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN ¶

    PROP_GPU_DEVICE_CREATE_SHADERS_DXIL_BOOLEAN :: "SDL.gpu.device.create.shaders.dxil"

    PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN ¶

    PROP_GPU_DEVICE_CREATE_SHADERS_METALLIB_BOOLEAN :: "SDL.gpu.device.create.shaders.metallib"

    PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN ¶

    PROP_GPU_DEVICE_CREATE_SHADERS_MSL_BOOLEAN :: "SDL.gpu.device.create.shaders.msl"

    PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN ¶

    PROP_GPU_DEVICE_CREATE_SHADERS_PRIVATE_BOOLEAN :: "SDL.gpu.device.create.shaders.private"

    PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN ¶

    PROP_GPU_DEVICE_CREATE_SHADERS_SPIRV_BOOLEAN :: "SDL.gpu.device.create.shaders.spirv"

    PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING ¶

    PROP_GPU_GRAPHICSPIPELINE_CREATE_NAME_STRING :: "SDL.gpu.graphicspipeline.create.name"

    PROP_GPU_SAMPLER_CREATE_NAME_STRING ¶

    PROP_GPU_SAMPLER_CREATE_NAME_STRING :: "SDL.gpu.sampler.create.name"

    PROP_GPU_SHADER_CREATE_NAME_STRING ¶

    PROP_GPU_SHADER_CREATE_NAME_STRING :: "SDL.gpu.shader.create.name"

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT ¶

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_A_FLOAT :: "SDL.gpu.texture.create.d3d12.clear.a"

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT ¶

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_B_FLOAT :: "SDL.gpu.texture.create.d3d12.clear.b"

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT ¶

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_DEPTH_FLOAT :: "SDL.gpu.texture.create.d3d12.clear.depth"

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT ¶

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_G_FLOAT :: "SDL.gpu.texture.create.d3d12.clear.g"

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT ¶

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_R_FLOAT :: "SDL.gpu.texture.create.d3d12.clear.r"

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_UINT8 ¶

    PROP_GPU_TEXTURE_CREATE_D3D12_CLEAR_STENCIL_UINT8 :: "SDL.gpu.texture.create.d3d12.clear.stencil"

    PROP_GPU_TEXTURE_CREATE_NAME_STRING ¶

    PROP_GPU_TEXTURE_CREATE_NAME_STRING :: "SDL.gpu.texture.create.name"

    PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING ¶

    PROP_GPU_TRANSFERBUFFER_CREATE_NAME_STRING :: "SDL.gpu.transferbuffer.create.name"

    PROP_IOSTREAM_ANDROID_AASSET_POINTER ¶

    PROP_IOSTREAM_ANDROID_AASSET_POINTER :: "SDL.iostream.android.aasset"

    PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER ¶

    PROP_IOSTREAM_DYNAMIC_CHUNKSIZE_NUMBER :: "SDL.iostream.dynamic.chunksize"

    PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER ¶

    PROP_IOSTREAM_DYNAMIC_MEMORY_POINTER :: "SDL.iostream.dynamic.memory"

    PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER ¶

    PROP_IOSTREAM_FILE_DESCRIPTOR_NUMBER :: "SDL.iostream.file_descriptor"

    PROP_IOSTREAM_MEMORY_POINTER ¶

    PROP_IOSTREAM_MEMORY_POINTER :: "SDL.iostream.memory.base"

    PROP_IOSTREAM_MEMORY_SIZE_NUMBER ¶

    PROP_IOSTREAM_MEMORY_SIZE_NUMBER :: "SDL.iostream.memory.size"

    PROP_IOSTREAM_STDIO_FILE_POINTER ¶

    PROP_IOSTREAM_STDIO_FILE_POINTER :: "SDL.iostream.stdio.file"

    PROP_IOSTREAM_WINDOWS_HANDLE_POINTER ¶

    PROP_IOSTREAM_WINDOWS_HANDLE_POINTER :: "SDL.iostream.windows.handle"

    PROP_JOYSTICK_CAP_MONO_LED_BOOLEAN ¶

    PROP_JOYSTICK_CAP_MONO_LED_BOOLEAN :: "SDL.joystick.cap.mono_led"

    PROP_JOYSTICK_CAP_PLAYER_LED_BOOLEAN ¶

    PROP_JOYSTICK_CAP_PLAYER_LED_BOOLEAN :: "SDL.joystick.cap.player_led"

    PROP_JOYSTICK_CAP_RGB_LED_BOOLEAN ¶

    PROP_JOYSTICK_CAP_RGB_LED_BOOLEAN :: "SDL.joystick.cap.rgb_led"

    PROP_JOYSTICK_CAP_RUMBLE_BOOLEAN ¶

    PROP_JOYSTICK_CAP_RUMBLE_BOOLEAN :: "SDL.joystick.cap.rumble"

    PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN ¶

    PROP_JOYSTICK_CAP_TRIGGER_RUMBLE_BOOLEAN :: "SDL.joystick.cap.trigger_rumble"

    PROP_PROCESS_BACKGROUND_BOOLEAN ¶

    PROP_PROCESS_BACKGROUND_BOOLEAN :: "SDL.process.background"

    PROP_PROCESS_CREATE_ARGS_POINTER ¶

    PROP_PROCESS_CREATE_ARGS_POINTER :: "SDL.process.create.args"

    PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN ¶

    PROP_PROCESS_CREATE_BACKGROUND_BOOLEAN :: "SDL.process.create.background"

    PROP_PROCESS_CREATE_ENVIRONMENT_POINTER ¶

    PROP_PROCESS_CREATE_ENVIRONMENT_POINTER :: "SDL.process.create.environment"

    PROP_PROCESS_CREATE_STDERR_NUMBER ¶

    PROP_PROCESS_CREATE_STDERR_NUMBER :: "SDL.process.create.stderr_option"

    PROP_PROCESS_CREATE_STDERR_POINTER ¶

    PROP_PROCESS_CREATE_STDERR_POINTER :: "SDL.process.create.stderr_source"

    PROP_PROCESS_CREATE_STDERR_TO_STDOUT_BOOLEAN ¶

    PROP_PROCESS_CREATE_STDERR_TO_STDOUT_BOOLEAN :: "SDL.process.create.stderr_to_stdout"

    PROP_PROCESS_CREATE_STDIN_NUMBER ¶

    PROP_PROCESS_CREATE_STDIN_NUMBER :: "SDL.process.create.stdin_option"

    PROP_PROCESS_CREATE_STDIN_POINTER ¶

    PROP_PROCESS_CREATE_STDIN_POINTER :: "SDL.process.create.stdin_source"

    PROP_PROCESS_CREATE_STDOUT_NUMBER ¶

    PROP_PROCESS_CREATE_STDOUT_NUMBER :: "SDL.process.create.stdout_option"

    PROP_PROCESS_CREATE_STDOUT_POINTER ¶

    PROP_PROCESS_CREATE_STDOUT_POINTER :: "SDL.process.create.stdout_source"

    PROP_PROCESS_PID_NUMBER ¶

    PROP_PROCESS_PID_NUMBER :: "SDL.process.pid"

    PROP_PROCESS_STDERR_POINTER ¶

    PROP_PROCESS_STDERR_POINTER :: "SDL.process.stderr"

    PROP_PROCESS_STDIN_POINTER ¶

    PROP_PROCESS_STDIN_POINTER :: "SDL.process.stdin"

    PROP_PROCESS_STDOUT_POINTER ¶

    PROP_PROCESS_STDOUT_POINTER :: "SDL.process.stdout"

    PROP_RENDERER_CREATE_NAME_STRING ¶

    PROP_RENDERER_CREATE_NAME_STRING :: "SDL.renderer.create.name"

    PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER ¶

    PROP_RENDERER_CREATE_OUTPUT_COLORSPACE_NUMBER :: "SDL.renderer.create.output_colorspace"

    PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER ¶

    PROP_RENDERER_CREATE_PRESENT_VSYNC_NUMBER :: "SDL.renderer.create.present_vsync"

    PROP_RENDERER_CREATE_SURFACE_POINTER ¶

    PROP_RENDERER_CREATE_SURFACE_POINTER :: "SDL.renderer.create.surface"

    PROP_RENDERER_CREATE_VULKAN_DEVICE_POINTER ¶

    PROP_RENDERER_CREATE_VULKAN_DEVICE_POINTER :: "SDL.renderer.create.vulkan.device"

    PROP_RENDERER_CREATE_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER ¶

    PROP_RENDERER_CREATE_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER :: "SDL.renderer.create.vulkan.graphics_queue_family_index"

    PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER ¶

    PROP_RENDERER_CREATE_VULKAN_INSTANCE_POINTER :: "SDL.renderer.create.vulkan.instance"

    PROP_RENDERER_CREATE_VULKAN_PHYSICAL_DEVICE_POINTER ¶

    PROP_RENDERER_CREATE_VULKAN_PHYSICAL_DEVICE_POINTER :: "SDL.renderer.create.vulkan.physical_device"

    PROP_RENDERER_CREATE_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER ¶

    PROP_RENDERER_CREATE_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER :: "SDL.renderer.create.vulkan.present_queue_family_index"

    PROP_RENDERER_CREATE_VULKAN_SURFACE_NUMBER ¶

    PROP_RENDERER_CREATE_VULKAN_SURFACE_NUMBER :: "SDL.renderer.create.vulkan.surface"

    PROP_RENDERER_CREATE_WINDOW_POINTER ¶

    PROP_RENDERER_CREATE_WINDOW_POINTER :: "SDL.renderer.create.window"

    PROP_RENDERER_D3D11_DEVICE_POINTER ¶

    PROP_RENDERER_D3D11_DEVICE_POINTER :: "SDL.renderer.d3d11.device"

    PROP_RENDERER_D3D11_SWAPCHAIN_POINTER ¶

    PROP_RENDERER_D3D11_SWAPCHAIN_POINTER :: "SDL.renderer.d3d11.swap_chain"

    PROP_RENDERER_D3D12_COMMAND_QUEUE_POINTER ¶

    PROP_RENDERER_D3D12_COMMAND_QUEUE_POINTER :: "SDL.renderer.d3d12.command_queue"

    PROP_RENDERER_D3D12_DEVICE_POINTER ¶

    PROP_RENDERER_D3D12_DEVICE_POINTER :: "SDL.renderer.d3d12.device"

    PROP_RENDERER_D3D12_SWAPCHAIN_POINTER ¶

    PROP_RENDERER_D3D12_SWAPCHAIN_POINTER :: "SDL.renderer.d3d12.swap_chain"

    PROP_RENDERER_D3D9_DEVICE_POINTER ¶

    PROP_RENDERER_D3D9_DEVICE_POINTER :: "SDL.renderer.d3d9.device"

    PROP_RENDERER_GPU_DEVICE_POINTER ¶

    PROP_RENDERER_GPU_DEVICE_POINTER :: "SDL.renderer.gpu.device"

    PROP_RENDERER_HDR_ENABLED_BOOLEAN ¶

    PROP_RENDERER_HDR_ENABLED_BOOLEAN :: "SDL.renderer.HDR_enabled"

    PROP_RENDERER_HDR_HEADROOM_FLOAT ¶

    PROP_RENDERER_HDR_HEADROOM_FLOAT :: "SDL.renderer.HDR_headroom"

    PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER ¶

    PROP_RENDERER_MAX_TEXTURE_SIZE_NUMBER :: "SDL.renderer.max_texture_size"

    PROP_RENDERER_NAME_STRING ¶

    PROP_RENDERER_NAME_STRING :: "SDL.renderer.name"

    PROP_RENDERER_OUTPUT_COLORSPACE_NUMBER ¶

    PROP_RENDERER_OUTPUT_COLORSPACE_NUMBER :: "SDL.renderer.output_colorspace"

    PROP_RENDERER_SDR_WHITE_POINT_FLOAT ¶

    PROP_RENDERER_SDR_WHITE_POINT_FLOAT :: "SDL.renderer.SDR_white_point"

    PROP_RENDERER_SURFACE_POINTER ¶

    PROP_RENDERER_SURFACE_POINTER :: "SDL.renderer.surface"

    PROP_RENDERER_TEXTURE_FORMATS_POINTER ¶

    PROP_RENDERER_TEXTURE_FORMATS_POINTER :: "SDL.renderer.texture_formats"

    PROP_RENDERER_VSYNC_NUMBER ¶

    PROP_RENDERER_VSYNC_NUMBER :: "SDL.renderer.vsync"

    PROP_RENDERER_VULKAN_DEVICE_POINTER ¶

    PROP_RENDERER_VULKAN_DEVICE_POINTER :: "SDL.renderer.vulkan.device"

    PROP_RENDERER_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER ¶

    PROP_RENDERER_VULKAN_GRAPHICS_QUEUE_FAMILY_INDEX_NUMBER :: "SDL.renderer.vulkan.graphics_queue_family_index"

    PROP_RENDERER_VULKAN_INSTANCE_POINTER ¶

    PROP_RENDERER_VULKAN_INSTANCE_POINTER :: "SDL.renderer.vulkan.instance"

    PROP_RENDERER_VULKAN_PHYSICAL_DEVICE_POINTER ¶

    PROP_RENDERER_VULKAN_PHYSICAL_DEVICE_POINTER :: "SDL.renderer.vulkan.physical_device"

    PROP_RENDERER_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER ¶

    PROP_RENDERER_VULKAN_PRESENT_QUEUE_FAMILY_INDEX_NUMBER :: "SDL.renderer.vulkan.present_queue_family_index"

    PROP_RENDERER_VULKAN_SURFACE_NUMBER ¶

    PROP_RENDERER_VULKAN_SURFACE_NUMBER :: "SDL.renderer.vulkan.surface"

    PROP_RENDERER_VULKAN_SWAPCHAIN_IMAGE_COUNT_NUMBER ¶

    PROP_RENDERER_VULKAN_SWAPCHAIN_IMAGE_COUNT_NUMBER :: "SDL.renderer.vulkan.swapchain_image_count"

    PROP_RENDERER_WINDOW_POINTER ¶

    PROP_RENDERER_WINDOW_POINTER :: "SDL.renderer.window"

    PROP_TEXTINPUT_ANDROID_INPUTTYPE_NUMBER ¶

    PROP_TEXTINPUT_ANDROID_INPUTTYPE_NUMBER :: "SDL.textinput.android.inputtype"

    PROP_TEXTINPUT_AUTOCORRECT_BOOLEAN ¶

    PROP_TEXTINPUT_AUTOCORRECT_BOOLEAN :: "SDL.textinput.autocorrect"

    PROP_TEXTINPUT_CAPITALIZATION_NUMBER ¶

    PROP_TEXTINPUT_CAPITALIZATION_NUMBER :: "SDL.textinput.capitalization"

    PROP_TEXTINPUT_MULTILINE_BOOLEAN ¶

    PROP_TEXTINPUT_MULTILINE_BOOLEAN :: "SDL.textinput.multiline"

    PROP_TEXTINPUT_TYPE_NUMBER ¶

    PROP_TEXTINPUT_TYPE_NUMBER :: "SDL.textinput.type"

    PROP_TEXTURE_ACCESS_NUMBER ¶

    PROP_TEXTURE_ACCESS_NUMBER :: "SDL.texture.access"

    PROP_TEXTURE_COLORSPACE_NUMBER ¶

    PROP_TEXTURE_COLORSPACE_NUMBER :: "SDL.texture.colorspace"

    PROP_TEXTURE_CREATE_ACCESS_NUMBER ¶

    PROP_TEXTURE_CREATE_ACCESS_NUMBER :: "SDL.texture.create.access"

    PROP_TEXTURE_CREATE_COLORSPACE_NUMBER ¶

    PROP_TEXTURE_CREATE_COLORSPACE_NUMBER :: "SDL.texture.create.colorspace"

    PROP_TEXTURE_CREATE_D3D11_TEXTURE_POINTER ¶

    PROP_TEXTURE_CREATE_D3D11_TEXTURE_POINTER :: "SDL.texture.create.d3d11.texture"

    PROP_TEXTURE_CREATE_D3D11_TEXTURE_U_POINTER ¶

    PROP_TEXTURE_CREATE_D3D11_TEXTURE_U_POINTER :: "SDL.texture.create.d3d11.texture_u"

    PROP_TEXTURE_CREATE_D3D11_TEXTURE_V_POINTER ¶

    PROP_TEXTURE_CREATE_D3D11_TEXTURE_V_POINTER :: "SDL.texture.create.d3d11.texture_v"

    PROP_TEXTURE_CREATE_D3D12_TEXTURE_POINTER ¶

    PROP_TEXTURE_CREATE_D3D12_TEXTURE_POINTER :: "SDL.texture.create.d3d12.texture"

    PROP_TEXTURE_CREATE_D3D12_TEXTURE_U_POINTER ¶

    PROP_TEXTURE_CREATE_D3D12_TEXTURE_U_POINTER :: "SDL.texture.create.d3d12.texture_u"

    PROP_TEXTURE_CREATE_D3D12_TEXTURE_V_POINTER ¶

    PROP_TEXTURE_CREATE_D3D12_TEXTURE_V_POINTER :: "SDL.texture.create.d3d12.texture_v"

    PROP_TEXTURE_CREATE_FORMAT_NUMBER ¶

    PROP_TEXTURE_CREATE_FORMAT_NUMBER :: "SDL.texture.create.format"

    PROP_TEXTURE_CREATE_HDR_HEADROOM_FLOAT ¶

    PROP_TEXTURE_CREATE_HDR_HEADROOM_FLOAT :: "SDL.texture.create.HDR_headroom"

    PROP_TEXTURE_CREATE_HEIGHT_NUMBER ¶

    PROP_TEXTURE_CREATE_HEIGHT_NUMBER :: "SDL.texture.create.height"

    PROP_TEXTURE_CREATE_METAL_PIXELBUFFER_POINTER ¶

    PROP_TEXTURE_CREATE_METAL_PIXELBUFFER_POINTER :: "SDL.texture.create.metal.pixelbuffer"

    PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_NUMBER ¶

    PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_NUMBER :: "SDL.texture.create.opengles2.texture"

    PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_UV_NUMBER ¶

    PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_UV_NUMBER :: "SDL.texture.create.opengles2.texture_uv"

    PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_U_NUMBER ¶

    PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_U_NUMBER :: "SDL.texture.create.opengles2.texture_u"

    PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER ¶

    PROP_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER :: "SDL.texture.create.opengles2.texture_v"

    PROP_TEXTURE_CREATE_OPENGL_TEXTURE_NUMBER ¶

    PROP_TEXTURE_CREATE_OPENGL_TEXTURE_NUMBER :: "SDL.texture.create.opengl.texture"

    PROP_TEXTURE_CREATE_OPENGL_TEXTURE_UV_NUMBER ¶

    PROP_TEXTURE_CREATE_OPENGL_TEXTURE_UV_NUMBER :: "SDL.texture.create.opengl.texture_uv"

    PROP_TEXTURE_CREATE_OPENGL_TEXTURE_U_NUMBER ¶

    PROP_TEXTURE_CREATE_OPENGL_TEXTURE_U_NUMBER :: "SDL.texture.create.opengl.texture_u"

    PROP_TEXTURE_CREATE_OPENGL_TEXTURE_V_NUMBER ¶

    PROP_TEXTURE_CREATE_OPENGL_TEXTURE_V_NUMBER :: "SDL.texture.create.opengl.texture_v"

    PROP_TEXTURE_CREATE_SDR_WHITE_POINT_FLOAT ¶

    PROP_TEXTURE_CREATE_SDR_WHITE_POINT_FLOAT :: "SDL.texture.create.SDR_white_point"

    PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER ¶

    PROP_TEXTURE_CREATE_VULKAN_TEXTURE_NUMBER :: "SDL.texture.create.vulkan.texture"

    PROP_TEXTURE_CREATE_WIDTH_NUMBER ¶

    PROP_TEXTURE_CREATE_WIDTH_NUMBER :: "SDL.texture.create.width"

    PROP_TEXTURE_D3D11_TEXTURE_POINTER ¶

    PROP_TEXTURE_D3D11_TEXTURE_POINTER :: "SDL.texture.d3d11.texture"

    PROP_TEXTURE_D3D11_TEXTURE_U_POINTER ¶

    PROP_TEXTURE_D3D11_TEXTURE_U_POINTER :: "SDL.texture.d3d11.texture_u"

    PROP_TEXTURE_D3D11_TEXTURE_V_POINTER ¶

    PROP_TEXTURE_D3D11_TEXTURE_V_POINTER :: "SDL.texture.d3d11.texture_v"

    PROP_TEXTURE_D3D12_TEXTURE_POINTER ¶

    PROP_TEXTURE_D3D12_TEXTURE_POINTER :: "SDL.texture.d3d12.texture"

    PROP_TEXTURE_D3D12_TEXTURE_U_POINTER ¶

    PROP_TEXTURE_D3D12_TEXTURE_U_POINTER :: "SDL.texture.d3d12.texture_u"

    PROP_TEXTURE_D3D12_TEXTURE_V_POINTER ¶

    PROP_TEXTURE_D3D12_TEXTURE_V_POINTER :: "SDL.texture.d3d12.texture_v"

    PROP_TEXTURE_FORMAT_NUMBER ¶

    PROP_TEXTURE_FORMAT_NUMBER :: "SDL.texture.format"

    PROP_TEXTURE_HDR_HEADROOM_FLOAT ¶

    PROP_TEXTURE_HDR_HEADROOM_FLOAT :: "SDL.texture.HDR_headroom"

    PROP_TEXTURE_HEIGHT_NUMBER ¶

    PROP_TEXTURE_HEIGHT_NUMBER :: "SDL.texture.height"

    PROP_TEXTURE_OPENGLES2_TEXTURE_NUMBER ¶

    PROP_TEXTURE_OPENGLES2_TEXTURE_NUMBER :: "SDL.texture.opengles2.texture"

    PROP_TEXTURE_OPENGLES2_TEXTURE_TARGET_NUMBER ¶

    PROP_TEXTURE_OPENGLES2_TEXTURE_TARGET_NUMBER :: "SDL.texture.opengles2.target"

    PROP_TEXTURE_OPENGLES2_TEXTURE_UV_NUMBER ¶

    PROP_TEXTURE_OPENGLES2_TEXTURE_UV_NUMBER :: "SDL.texture.opengles2.texture_uv"

    PROP_TEXTURE_OPENGLES2_TEXTURE_U_NUMBER ¶

    PROP_TEXTURE_OPENGLES2_TEXTURE_U_NUMBER :: "SDL.texture.opengles2.texture_u"

    PROP_TEXTURE_OPENGLES2_TEXTURE_V_NUMBER ¶

    PROP_TEXTURE_OPENGLES2_TEXTURE_V_NUMBER :: "SDL.texture.opengles2.texture_v"

    PROP_TEXTURE_OPENGL_TEXTURE_NUMBER ¶

    PROP_TEXTURE_OPENGL_TEXTURE_NUMBER :: "SDL.texture.opengl.texture"

    PROP_TEXTURE_OPENGL_TEXTURE_TARGET_NUMBER ¶

    PROP_TEXTURE_OPENGL_TEXTURE_TARGET_NUMBER :: "SDL.texture.opengl.target"

    PROP_TEXTURE_OPENGL_TEXTURE_UV_NUMBER ¶

    PROP_TEXTURE_OPENGL_TEXTURE_UV_NUMBER :: "SDL.texture.opengl.texture_uv"

    PROP_TEXTURE_OPENGL_TEXTURE_U_NUMBER ¶

    PROP_TEXTURE_OPENGL_TEXTURE_U_NUMBER :: "SDL.texture.opengl.texture_u"

    PROP_TEXTURE_OPENGL_TEXTURE_V_NUMBER ¶

    PROP_TEXTURE_OPENGL_TEXTURE_V_NUMBER :: "SDL.texture.opengl.texture_v"

    PROP_TEXTURE_OPENGL_TEX_H_FLOAT ¶

    PROP_TEXTURE_OPENGL_TEX_H_FLOAT :: "SDL.texture.opengl.tex_h"

    PROP_TEXTURE_OPENGL_TEX_W_FLOAT ¶

    PROP_TEXTURE_OPENGL_TEX_W_FLOAT :: "SDL.texture.opengl.tex_w"

    PROP_TEXTURE_SDR_WHITE_POINT_FLOAT ¶

    PROP_TEXTURE_SDR_WHITE_POINT_FLOAT :: "SDL.texture.SDR_white_point"

    PROP_TEXTURE_VULKAN_TEXTURE_NUMBER ¶

    PROP_TEXTURE_VULKAN_TEXTURE_NUMBER :: "SDL.texture.vulkan.texture"

    PROP_TEXTURE_WIDTH_NUMBER ¶

    PROP_TEXTURE_WIDTH_NUMBER :: "SDL.texture.width"

    PROP_THREAD_CREATE_ENTRY_FUNCTION_POINTER ¶

    PROP_THREAD_CREATE_ENTRY_FUNCTION_POINTER :: "SDL.thread.create.entry_function"

    PROP_THREAD_CREATE_NAME_STRING ¶

    PROP_THREAD_CREATE_NAME_STRING :: "SDL.thread.create.name"

    PROP_THREAD_CREATE_STACKSIZE_NUMBER ¶

    PROP_THREAD_CREATE_STACKSIZE_NUMBER :: "SDL.thread.create.stacksize"

    PROP_THREAD_CREATE_USERDATA_POINTER ¶

    PROP_THREAD_CREATE_USERDATA_POINTER :: "SDL.thread.create.userdata"

    PROP_WINDOW_ANDROID_SURFACE_POINTER ¶

    PROP_WINDOW_ANDROID_SURFACE_POINTER :: "SDL.window.android.surface"

    PROP_WINDOW_ANDROID_WINDOW_POINTER ¶

    PROP_WINDOW_ANDROID_WINDOW_POINTER :: "SDL.window.android.window"

    PROP_WINDOW_COCOA_METAL_VIEW_TAG_NUMBER ¶

    PROP_WINDOW_COCOA_METAL_VIEW_TAG_NUMBER :: "SDL.window.cocoa.metal_view_tag"

    PROP_WINDOW_COCOA_WINDOW_POINTER ¶

    PROP_WINDOW_COCOA_WINDOW_POINTER :: "SDL.window.cocoa.window"

    PROP_WINDOW_CREATE_ALWAYS_ON_TOP_BOOLEAN ¶

    PROP_WINDOW_CREATE_ALWAYS_ON_TOP_BOOLEAN :: "SDL.window.create.always_on_top"

    PROP_WINDOW_CREATE_BORDERLESS_BOOLEAN ¶

    PROP_WINDOW_CREATE_BORDERLESS_BOOLEAN :: "SDL.window.create.borderless"

    PROP_WINDOW_CREATE_COCOA_VIEW_POINTER ¶

    PROP_WINDOW_CREATE_COCOA_VIEW_POINTER :: "SDL.window.create.cocoa.view"

    PROP_WINDOW_CREATE_COCOA_WINDOW_POINTER ¶

    PROP_WINDOW_CREATE_COCOA_WINDOW_POINTER :: "SDL.window.create.cocoa.window"

    PROP_WINDOW_CREATE_EXTERNAL_GRAPHICS_CONTEXT_BOOLEAN ¶

    PROP_WINDOW_CREATE_EXTERNAL_GRAPHICS_CONTEXT_BOOLEAN :: "SDL.window.create.external_graphics_context"

    PROP_WINDOW_CREATE_FLAGS_NUMBER ¶

    PROP_WINDOW_CREATE_FLAGS_NUMBER :: "SDL.window.create.flags"

    PROP_WINDOW_CREATE_FOCUSABLE_BOOLEAN ¶

    PROP_WINDOW_CREATE_FOCUSABLE_BOOLEAN :: "SDL.window.create.focusable"

    PROP_WINDOW_CREATE_FULLSCREEN_BOOLEAN ¶

    PROP_WINDOW_CREATE_FULLSCREEN_BOOLEAN :: "SDL.window.create.fullscreen"

    PROP_WINDOW_CREATE_HEIGHT_NUMBER ¶

    PROP_WINDOW_CREATE_HEIGHT_NUMBER :: "SDL.window.create.height"

    PROP_WINDOW_CREATE_HIDDEN_BOOLEAN ¶

    PROP_WINDOW_CREATE_HIDDEN_BOOLEAN :: "SDL.window.create.hidden"

    PROP_WINDOW_CREATE_HIGH_PIXEL_DENSITY_BOOLEAN ¶

    PROP_WINDOW_CREATE_HIGH_PIXEL_DENSITY_BOOLEAN :: "SDL.window.create.high_pixel_density"

    PROP_WINDOW_CREATE_MAXIMIZED_BOOLEAN ¶

    PROP_WINDOW_CREATE_MAXIMIZED_BOOLEAN :: "SDL.window.create.maximized"

    PROP_WINDOW_CREATE_MENU_BOOLEAN ¶

    PROP_WINDOW_CREATE_MENU_BOOLEAN :: "SDL.window.create.menu"

    PROP_WINDOW_CREATE_METAL_BOOLEAN ¶

    PROP_WINDOW_CREATE_METAL_BOOLEAN :: "SDL.window.create.metal"

    PROP_WINDOW_CREATE_MINIMIZED_BOOLEAN ¶

    PROP_WINDOW_CREATE_MINIMIZED_BOOLEAN :: "SDL.window.create.minimized"

    PROP_WINDOW_CREATE_MODAL_BOOLEAN ¶

    PROP_WINDOW_CREATE_MODAL_BOOLEAN :: "SDL.window.create.modal"

    PROP_WINDOW_CREATE_MOUSE_GRABBED_BOOLEAN ¶

    PROP_WINDOW_CREATE_MOUSE_GRABBED_BOOLEAN :: "SDL.window.create.mouse_grabbed"

    PROP_WINDOW_CREATE_OPENGL_BOOLEAN ¶

    PROP_WINDOW_CREATE_OPENGL_BOOLEAN :: "SDL.window.create.opengl"

    PROP_WINDOW_CREATE_PARENT_POINTER ¶

    PROP_WINDOW_CREATE_PARENT_POINTER :: "SDL.window.create.parent"

    PROP_WINDOW_CREATE_RESIZABLE_BOOLEAN ¶

    PROP_WINDOW_CREATE_RESIZABLE_BOOLEAN :: "SDL.window.create.resizable"

    PROP_WINDOW_CREATE_TITLE_STRING ¶

    PROP_WINDOW_CREATE_TITLE_STRING :: "SDL.window.create.title"

    PROP_WINDOW_CREATE_TOOLTIP_BOOLEAN ¶

    PROP_WINDOW_CREATE_TOOLTIP_BOOLEAN :: "SDL.window.create.tooltip"

    PROP_WINDOW_CREATE_TRANSPARENT_BOOLEAN ¶

    PROP_WINDOW_CREATE_TRANSPARENT_BOOLEAN :: "SDL.window.create.transparent"

    PROP_WINDOW_CREATE_UTILITY_BOOLEAN ¶

    PROP_WINDOW_CREATE_UTILITY_BOOLEAN :: "SDL.window.create.utility"

    PROP_WINDOW_CREATE_VULKAN_BOOLEAN ¶

    PROP_WINDOW_CREATE_VULKAN_BOOLEAN :: "SDL.window.create.vulkan"

    PROP_WINDOW_CREATE_WAYLAND_CREATE_EGL_WINDOW_BOOLEAN ¶

    PROP_WINDOW_CREATE_WAYLAND_CREATE_EGL_WINDOW_BOOLEAN :: "SDL.window.create.wayland.create_egl_window"

    PROP_WINDOW_CREATE_WAYLAND_SURFACE_ROLE_CUSTOM_BOOLEAN ¶

    PROP_WINDOW_CREATE_WAYLAND_SURFACE_ROLE_CUSTOM_BOOLEAN :: "SDL.window.create.wayland.surface_role_custom"

    PROP_WINDOW_CREATE_WAYLAND_WL_SURFACE_POINTER ¶

    PROP_WINDOW_CREATE_WAYLAND_WL_SURFACE_POINTER :: "SDL.window.create.wayland.wl_surface"

    PROP_WINDOW_CREATE_WIDTH_NUMBER ¶

    PROP_WINDOW_CREATE_WIDTH_NUMBER :: "SDL.window.create.width"

    PROP_WINDOW_CREATE_WIN32_HWND_POINTER ¶

    PROP_WINDOW_CREATE_WIN32_HWND_POINTER :: "SDL.window.create.win32.hwnd"

    PROP_WINDOW_CREATE_WIN32_PIXEL_FORMAT_HWND_POINTER ¶

    PROP_WINDOW_CREATE_WIN32_PIXEL_FORMAT_HWND_POINTER :: "SDL.window.create.win32.pixel_format_hwnd"

    PROP_WINDOW_CREATE_X11_WINDOW_NUMBER ¶

    PROP_WINDOW_CREATE_X11_WINDOW_NUMBER :: "SDL.window.create.x11.window"

    PROP_WINDOW_CREATE_X_NUMBER ¶

    PROP_WINDOW_CREATE_X_NUMBER :: "SDL.window.create.x"

    PROP_WINDOW_CREATE_Y_NUMBER ¶

    PROP_WINDOW_CREATE_Y_NUMBER :: "SDL.window.create.y"

    PROP_WINDOW_HDR_ENABLED_BOOLEAN ¶

    PROP_WINDOW_HDR_ENABLED_BOOLEAN :: "SDL.window.HDR_enabled"

    PROP_WINDOW_HDR_HEADROOM_FLOAT ¶

    PROP_WINDOW_HDR_HEADROOM_FLOAT :: "SDL.window.HDR_headroom"

    PROP_WINDOW_KMSDRM_DEVICE_INDEX_NUMBER ¶

    PROP_WINDOW_KMSDRM_DEVICE_INDEX_NUMBER :: "SDL.window.kmsdrm.dev_index"

    PROP_WINDOW_KMSDRM_DRM_FD_NUMBER ¶

    PROP_WINDOW_KMSDRM_DRM_FD_NUMBER :: "SDL.window.kmsdrm.drm_fd"

    PROP_WINDOW_KMSDRM_GBM_DEVICE_POINTER ¶

    PROP_WINDOW_KMSDRM_GBM_DEVICE_POINTER :: "SDL.window.kmsdrm.gbm_dev"

    PROP_WINDOW_OPENVR_OVERLAY_ID ¶

    PROP_WINDOW_OPENVR_OVERLAY_ID :: "SDL.window.openvr.overlay_id"

    PROP_WINDOW_SDR_WHITE_LEVEL_FLOAT ¶

    PROP_WINDOW_SDR_WHITE_LEVEL_FLOAT :: "SDL.window.SDR_white_level"

    PROP_WINDOW_SHAPE_POINTER ¶

    PROP_WINDOW_SHAPE_POINTER :: "SDL.window.shape"

    PROP_WINDOW_UIKIT_METAL_VIEW_TAG_NUMBER ¶

    PROP_WINDOW_UIKIT_METAL_VIEW_TAG_NUMBER :: "SDL.window.uikit.metal_view_tag"

    PROP_WINDOW_UIKIT_OPENGL_FRAMEBUFFER_NUMBER ¶

    PROP_WINDOW_UIKIT_OPENGL_FRAMEBUFFER_NUMBER :: "SDL.window.uikit.opengl.framebuffer"

    PROP_WINDOW_UIKIT_OPENGL_RENDERBUFFER_NUMBER ¶

    PROP_WINDOW_UIKIT_OPENGL_RENDERBUFFER_NUMBER :: "SDL.window.uikit.opengl.renderbuffer"

    PROP_WINDOW_UIKIT_OPENGL_RESOLVE_FRAMEBUFFER_NUMBER ¶

    PROP_WINDOW_UIKIT_OPENGL_RESOLVE_FRAMEBUFFER_NUMBER :: "SDL.window.uikit.opengl.resolve_framebuffer"

    PROP_WINDOW_UIKIT_WINDOW_POINTER ¶

    PROP_WINDOW_UIKIT_WINDOW_POINTER :: "SDL.window.uikit.window"

    PROP_WINDOW_VIVANTE_DISPLAY_POINTER ¶

    PROP_WINDOW_VIVANTE_DISPLAY_POINTER :: "SDL.window.vivante.display"

    PROP_WINDOW_VIVANTE_SURFACE_POINTER ¶

    PROP_WINDOW_VIVANTE_SURFACE_POINTER :: "SDL.window.vivante.surface"

    PROP_WINDOW_VIVANTE_WINDOW_POINTER ¶

    PROP_WINDOW_VIVANTE_WINDOW_POINTER :: "SDL.window.vivante.window"

    PROP_WINDOW_WAYLAND_DISPLAY_POINTER ¶

    PROP_WINDOW_WAYLAND_DISPLAY_POINTER :: "SDL.window.wayland.display"

    PROP_WINDOW_WAYLAND_EGL_WINDOW_POINTER ¶

    PROP_WINDOW_WAYLAND_EGL_WINDOW_POINTER :: "SDL.window.wayland.egl_window"

    PROP_WINDOW_WAYLAND_SURFACE_POINTER ¶

    PROP_WINDOW_WAYLAND_SURFACE_POINTER :: "SDL.window.wayland.surface"

    PROP_WINDOW_WAYLAND_VIEWPORT_POINTER ¶

    PROP_WINDOW_WAYLAND_VIEWPORT_POINTER :: "SDL.window.wayland.viewport"

    PROP_WINDOW_WAYLAND_XDG_POPUP_POINTER ¶

    PROP_WINDOW_WAYLAND_XDG_POPUP_POINTER :: "SDL.window.wayland.xdg_popup"

    PROP_WINDOW_WAYLAND_XDG_POSITIONER_POINTER ¶

    PROP_WINDOW_WAYLAND_XDG_POSITIONER_POINTER :: "SDL.window.wayland.xdg_positioner"

    PROP_WINDOW_WAYLAND_XDG_SURFACE_POINTER ¶

    PROP_WINDOW_WAYLAND_XDG_SURFACE_POINTER :: "SDL.window.wayland.xdg_surface"

    PROP_WINDOW_WAYLAND_XDG_TOPLEVEL_EXPORT_HANDLE_STRING ¶

    PROP_WINDOW_WAYLAND_XDG_TOPLEVEL_EXPORT_HANDLE_STRING :: "SDL.window.wayland.xdg_toplevel_export_handle"

    PROP_WINDOW_WAYLAND_XDG_TOPLEVEL_POINTER ¶

    PROP_WINDOW_WAYLAND_XDG_TOPLEVEL_POINTER :: "SDL.window.wayland.xdg_toplevel"

    PROP_WINDOW_WIN32_HDC_POINTER ¶

    PROP_WINDOW_WIN32_HDC_POINTER :: "SDL.window.win32.hdc"

    PROP_WINDOW_WIN32_HWND_POINTER ¶

    PROP_WINDOW_WIN32_HWND_POINTER :: "SDL.window.win32.hwnd"

    PROP_WINDOW_WIN32_INSTANCE_POINTER ¶

    PROP_WINDOW_WIN32_INSTANCE_POINTER :: "SDL.window.win32.instance"

    PROP_WINDOW_X11_DISPLAY_POINTER ¶

    PROP_WINDOW_X11_DISPLAY_POINTER :: "SDL.window.x11.display"

    PROP_WINDOW_X11_SCREEN_NUMBER ¶

    PROP_WINDOW_X11_SCREEN_NUMBER :: "SDL.window.x11.screen"

    PROP_WINDOW_X11_WINDOW_NUMBER ¶

    PROP_WINDOW_X11_WINDOW_NUMBER :: "SDL.window.x11.window"

    RENDERER_VSYNC_ADAPTIVE ¶

    RENDERER_VSYNC_ADAPTIVE :: -1

    RENDERER_VSYNC_DISABLED ¶

    RENDERER_VSYNC_DISABLED :: 0

    SIZE_MAX ¶

    SIZE_MAX :: 1 << (8 * size_of(uint)) - 1

    SOFTWARE_RENDERER ¶

    SOFTWARE_RENDERER :: "software"

    STANDARD_GRAVITY ¶

    STANDARD_GRAVITY :: 9.80665

    SURFACE_LOCKED ¶

    SURFACE_LOCKED :: SurfaceFlags{.LOCKED}

    SURFACE_LOCK_NEEDED ¶

    SURFACE_LOCK_NEEDED :: SurfaceFlags{.LOCK_NEEDED}

    SURFACE_PREALLOCATED ¶

    SURFACE_PREALLOCATED :: SurfaceFlags{.PREALLOCATED}

    SURFACE_SIMD_ALIGNED ¶

    SURFACE_SIMD_ALIGNED :: SurfaceFlags{.SIMD_ALIGNED}

    TOUCH_MOUSEID ¶

    TOUCH_MOUSEID :: MouseID(1 << 32 - 1)

    TRAYENTRY_BUTTON ¶

    TRAYENTRY_BUTTON :: TrayEntryFlags{.BUTTON}
     

    *< Make the entry a simple button. Required.

    TRAYENTRY_CHECKBOX ¶

    TRAYENTRY_CHECKBOX :: TrayEntryFlags{.CHECKBOX}
     

    *< Make the entry a checkbox. Required.

    TRAYENTRY_CHECKED ¶

    TRAYENTRY_CHECKED :: TrayEntryFlags{.CHECKED}
     

    *< Make the entry checked. This is valid only for checkboxes. Optional.

    TRAYENTRY_DISABLED ¶

    TRAYENTRY_DISABLED :: TrayEntryFlags{.DISABLED}
     

    *< Make the entry disabled. Optional.

    TRAYENTRY_SUBMENU ¶

    TRAYENTRY_SUBMENU :: TrayEntryFlags{.SUBMENU}
     

    *< Prepare the entry to have a submenu. Required

    US_PER_SECOND ¶

    US_PER_SECOND :: 1000000

    VERSION ¶

    VERSION :: MAJOR_VERSION * 1000000 + MINOR_VERSION * 1000 + MICRO_VERSION

    WINDOWPOS_CENTERED ¶

    WINDOWPOS_CENTERED :: WINDOWPOS_CENTERED_MASK | 0

    WINDOWPOS_CENTERED_MASK ¶

    WINDOWPOS_CENTERED_MASK :: 0x2FFF0000

    WINDOWPOS_UNDEFINED ¶

    WINDOWPOS_UNDEFINED :: WINDOWPOS_UNDEFINED_MASK | 0

    WINDOWPOS_UNDEFINED_MASK ¶

    WINDOWPOS_UNDEFINED_MASK :: 0x1FFF0000

    WINDOW_ALWAYS_ON_TOP ¶

    WINDOW_ALWAYS_ON_TOP :: WindowFlags{.ALWAYS_ON_TOP}
     

    *< window should always be above others

    WINDOW_BORDERLESS ¶

    WINDOW_BORDERLESS :: WindowFlags{.BORDERLESS}
     

    *< no window decoration

    WINDOW_EXTERNAL ¶

    WINDOW_EXTERNAL :: WindowFlags{.EXTERNAL}
     

    *< window not created by SDL

    WINDOW_FULLSCREEN ¶

    WINDOW_FULLSCREEN :: WindowFlags{.FULLSCREEN}
     

    *< window is in fullscreen mode

    WINDOW_HIDDEN ¶

    WINDOW_HIDDEN :: WindowFlags{.HIDDEN}
     

    *< window is neither mapped onto the desktop nor shown in the taskbar/dock/window list; SDL_ShowWindow() is required for it to become visible

    WINDOW_HIGH_PIXEL_DENSITY ¶

    WINDOW_HIGH_PIXEL_DENSITY :: WindowFlags{.HIGH_PIXEL_DENSITY}
     

    *< window uses high pixel density back buffer if possible

    WINDOW_INPUT_FOCUS ¶

    WINDOW_INPUT_FOCUS :: WindowFlags{.INPUT_FOCUS}
     

    *< window has input focus

    WINDOW_KEYBOARD_GRABBED ¶

    WINDOW_KEYBOARD_GRABBED :: WindowFlags{.KEYBOARD_GRABBED}
     

    *< window has grabbed keyboard input

    WINDOW_MAXIMIZED ¶

    WINDOW_MAXIMIZED :: WindowFlags{.MAXIMIZED}
     

    *< window is maximized

    WINDOW_METAL ¶

    WINDOW_METAL :: WindowFlags{.METAL}
     

    *< window usable for Metal view

    WINDOW_MINIMIZED ¶

    WINDOW_MINIMIZED :: WindowFlags{.MINIMIZED}
     

    *< window is minimized

    WINDOW_MODAL ¶

    WINDOW_MODAL :: WindowFlags{.MODAL}
     

    *< window is modal

    WINDOW_MOUSE_CAPTURE ¶

    WINDOW_MOUSE_CAPTURE :: WindowFlags{.MOUSE_CAPTURE}
     

    *< window has mouse captured (unrelated to MOUSE_GRABBED)

    WINDOW_MOUSE_FOCUS ¶

    WINDOW_MOUSE_FOCUS :: WindowFlags{.MOUSE_FOCUS}
     

    *< window has mouse focus

    WINDOW_MOUSE_GRABBED ¶

    WINDOW_MOUSE_GRABBED :: WindowFlags{.MOUSE_GRABBED}
     

    *< window has grabbed mouse input

    WINDOW_MOUSE_RELATIVE_MODE ¶

    WINDOW_MOUSE_RELATIVE_MODE :: WindowFlags{.MOUSE_RELATIVE_MODE}
     

    *< window has relative mode enabled

    WINDOW_NOT_FOCUSABLE ¶

    WINDOW_NOT_FOCUSABLE :: WindowFlags{.NOT_FOCUSABLE}
     

    *< window should not be focusable

    WINDOW_OCCLUDED ¶

    WINDOW_OCCLUDED :: WindowFlags{.OCCLUDED}
     

    *< window is occluded

    WINDOW_OPENGL ¶

    WINDOW_OPENGL :: WindowFlags{.OPENGL}
     

    *< window usable with OpenGL context

    WINDOW_POPUP_MENU ¶

    WINDOW_POPUP_MENU :: WindowFlags{.POPUP_MENU}
     

    *< window should be treated as a popup menu, requires a parent window

    WINDOW_RESIZABLE ¶

    WINDOW_RESIZABLE :: WindowFlags{.RESIZABLE}
     

    *< window can be resized

    WINDOW_SURFACE_VSYNC_ADAPTIVE ¶

    WINDOW_SURFACE_VSYNC_ADAPTIVE :: -1

    WINDOW_SURFACE_VSYNC_DISABLED ¶

    WINDOW_SURFACE_VSYNC_DISABLED :: 0

    WINDOW_TOOLTIP ¶

    WINDOW_TOOLTIP :: WindowFlags{.TOOLTIP}
     

    *< window should be treated as a tooltip and does not get mouse or keyboard focus, requires a parent window

    WINDOW_TRANSPARENT ¶

    WINDOW_TRANSPARENT :: WindowFlags{.TRANSPARENT}
     

    *< window with transparent buffer

    WINDOW_UTILITY ¶

    WINDOW_UTILITY :: WindowFlags{.UTILITY}
     

    *< window should be treated as a utility window, not showing in the task bar and window list

    WINDOW_VULKAN ¶

    WINDOW_VULKAN :: WindowFlags{.VULKAN}
     

    *< window usable for Vulkan surface

    Variables

    joystick_lock ¶

    joystick_lock: ^Mutex

    Procedures

    AUDIO_BITSIZE ¶

    AUDIO_BITSIZE :: proc "c" (x: AudioFormat) -> u16 {…}

    AUDIO_BYTESIZE ¶

    AUDIO_BYTESIZE :: proc "c" (x: AudioFormat) -> u16 {…}

    AUDIO_FRAMESIZE ¶

    AUDIO_FRAMESIZE :: proc "c" (x: AudioSpec) -> i32 {…}

    AUDIO_ISBIGENDIAN ¶

    AUDIO_ISBIGENDIAN :: proc "c" (x: AudioFormat) -> bool {…}

    AUDIO_ISFLOAT ¶

    AUDIO_ISFLOAT :: proc "c" (x: AudioFormat) -> bool {…}

    AUDIO_ISINT ¶

    AUDIO_ISINT :: proc "c" (x: AudioFormat) -> bool {…}

    AUDIO_ISLITTLEENDIAN ¶

    AUDIO_ISLITTLEENDIAN :: proc "c" (x: AudioFormat) -> bool {…}

    AUDIO_ISSIGNED ¶

    AUDIO_ISSIGNED :: proc "c" (x: AudioFormat) -> bool {…}

    AUDIO_ISUNSIGNED ¶

    AUDIO_ISUNSIGNED :: proc "c" (x: AudioFormat) -> bool {…}

    AcquireCameraFrame ¶

    AcquireCameraFrame :: proc "c" (camera: ^Camera, timestampNS: ^u64) -> ^Surface ---

    AcquireGPUCommandBuffer ¶

    AcquireGPUCommandBuffer :: proc "c" (device: ^GPUDevice) -> ^GPUCommandBuffer ---

    AcquireGPUSwapchainTexture ¶

    AcquireGPUSwapchainTexture :: proc "c" (command_buffer: ^GPUCommandBuffer, window: ^Window, swapchain_texture: ^^GPUTexture, swapchain_texture_width, swapchain_texture_height: ^u32) -> bool ---

    AddAtomicInt ¶

    AddAtomicInt :: proc "c" (a: ^AtomicInt, v: i32) -> int ---

    AddEventWatch ¶

    AddEventWatch :: proc "c" (filter: EventFilter, userdata: rawptr) -> bool ---

    AddGamepadMapping ¶

    AddGamepadMapping :: proc "c" (mapping: cstring) -> i32 ---

    AddGamepadMappingsFromFile ¶

    AddGamepadMappingsFromFile :: proc "c" (file: cstring) -> i32 ---

    AddGamepadMappingsFromIO ¶

    AddGamepadMappingsFromIO :: proc "c" (src: ^IOStream, closeio: bool) -> i32 ---

    AddHintCallback ¶

    AddHintCallback :: proc "c" (name: cstring, callback: HintCallback, userdata: rawptr) -> bool ---

    AddSurfaceAlternateImage ¶

    AddSurfaceAlternateImage :: proc "c" (surface: ^Surface, image: ^Surface) -> bool ---

    AddTimer ¶

    AddTimer :: proc "c" (interval: u32, callback: TimerCallback, userdata: rawptr) -> TimerID ---

    AddTimerNS ¶

    AddTimerNS :: proc "c" (interval: u64, callback: NSTimerCallback, userdata: rawptr) -> TimerID ---

    AddVulkanRenderSemaphores ¶

    AddVulkanRenderSemaphores :: proc "c" (renderer: ^Renderer, wait_stage_mask: u32, wait_semaphore, signal_semaphore: i64) -> bool ---

    AppEvent ¶

    AppEvent :: proc "c" (appstate: rawptr, event: ^Event) -> AppResult ---

    AppInit ¶

    AppInit :: proc "c" (appstate: ^rawptr, argc: i32, argv: [^]cstring) -> AppResult ---

    AppIterate ¶

    AppIterate :: proc "c" (appstate: rawptr) -> AppResult ---

    AppQuit ¶

    AppQuit :: proc "c" (appstate: rawptr, result: AppResult) ---

    AssertBreakpoint ¶

    AssertBreakpoint :: intrinsics.debug_trap

    AsyncIOFromFile ¶

    AsyncIOFromFile :: proc "c" (file: cstring, mode: cstring) -> ^AsyncIO ---

    AttachVirtualJoystick ¶

    AttachVirtualJoystick :: proc "c" (#by_ptr desc: VirtualJoystickDesc) -> JoystickID ---

    AudioDevicePaused ¶

    AudioDevicePaused :: proc "c" (dev: AudioDeviceID) -> bool ---

    AudioStreamDevicePaused ¶

    AudioStreamDevicePaused :: proc "c" (stream: ^AudioStream) -> bool ---

    BITSPERPIXEL ¶

    BITSPERPIXEL :: proc "c" (format: PixelFormat) -> u32 {…}

    BeginGPUComputePass ¶

    BeginGPUComputePass :: proc "c" (command_buffer: ^GPUCommandBuffer, storage_texture_bindings: [^]GPUStorageTextureReadWriteBinding, num_storage_texture_bindings: u32, storage_buffer_bindings: [^]GPUStorageBufferReadWriteBinding, num_storage_buffer_bindings: u32) -> ^GPUComputePass ---

    BeginGPUCopyPass ¶

    BeginGPUCopyPass :: proc "c" (command_buffer: ^GPUCommandBuffer) -> ^GPUCopyPass ---

    BeginGPURenderPass ¶

    BeginGPURenderPass :: proc "c" (command_buffer: ^GPUCommandBuffer, color_target_infos: [^]GPUColorTargetInfo, num_color_targets: u32, depth_stencil_target_info: runtime.Maybe($T=^GPUDepthStencilTargetInfo)) -> ^GPURenderPass ---

    BeginThreadFunction ¶

    BeginThreadFunction :: proc "c" () -> FunctionPointer {…}

    BindAudioStream ¶

    BindAudioStream :: proc "c" (devid: AudioDeviceID, stream: ^AudioStream) -> bool ---

    BindAudioStreams ¶

    BindAudioStreams :: proc "c" (devid: AudioDeviceID, streams: [^]^AudioStream, num_streams: i32) -> bool ---

    BindGPUComputePipeline ¶

    BindGPUComputePipeline :: proc "c" (compute_pass: ^GPUComputePass, compute_pipeline: ^GPUComputePipeline) ---

    BindGPUComputeSamplers ¶

    BindGPUComputeSamplers :: proc "c" (compute_pass: ^GPUComputePass, first_slot: u32, texture_sampler_bindings: [^]GPUTextureSamplerBinding, num_bindings: u32) ---

    BindGPUComputeStorageBuffers ¶

    BindGPUComputeStorageBuffers :: proc "c" (compute_pass: ^GPUComputePass, first_slot: u32, storage_buffers: [^]^GPUBuffer, num_bindings: u32) ---

    BindGPUComputeStorageTextures ¶

    BindGPUComputeStorageTextures :: proc "c" (compute_pass: ^GPUComputePass, first_slot: u32, storage_textures: [^]^GPUTexture, num_bindings: u32) ---

    BindGPUFragmentSamplers ¶

    BindGPUFragmentSamplers :: proc "c" (render_pass: ^GPURenderPass, first_slot: u32, texture_sampler_bindings: [^]GPUTextureSamplerBinding, num_bindings: u32) ---

    BindGPUFragmentStorageBuffers ¶

    BindGPUFragmentStorageBuffers :: proc "c" (render_pass: ^GPURenderPass, first_slot: u32, storage_buffers: [^]^GPUBuffer, num_bindings: u32) ---

    BindGPUFragmentStorageTextures ¶

    BindGPUFragmentStorageTextures :: proc "c" (render_pass: ^GPURenderPass, first_slot: u32, storage_textures: [^]^GPUTexture, num_bindings: u32) ---

    BindGPUGraphicsPipeline ¶

    BindGPUGraphicsPipeline :: proc "c" (render_pass: ^GPURenderPass, graphics_pipeline: ^GPUGraphicsPipeline) ---

    BindGPUIndexBuffer ¶

    BindGPUIndexBuffer :: proc "c" (render_pass: ^GPURenderPass, #by_ptr binding: GPUBufferBinding, index_element_size: GPUIndexElementSize) ---

    BindGPUVertexBuffers ¶

    BindGPUVertexBuffers :: proc "c" (render_pass: ^GPURenderPass, first_slot: u32, bindings: [^]GPUBufferBinding, num_bindings: u32) ---

    BindGPUVertexSamplers ¶

    BindGPUVertexSamplers :: proc "c" (render_pass: ^GPURenderPass, first_slot: u32, texture_sampler_bindings: [^]GPUTextureSamplerBinding, num_bindings: u32) ---

    BindGPUVertexStorageBuffers ¶

    BindGPUVertexStorageBuffers :: proc "c" (render_pass: ^GPURenderPass, first_slot: u32, storage_buffers: [^]^GPUBuffer, num_bindings: u32) ---

    BindGPUVertexStorageTextures ¶

    BindGPUVertexStorageTextures :: proc "c" (render_pass: ^GPURenderPass, first_slot: u32, storage_textures: [^]^GPUTexture, num_bindings: u32) ---

    BlitGPUTexture ¶

    BlitGPUTexture :: proc "c" (command_buffer: ^GPUCommandBuffer, #by_ptr info: GPUBlitInfo) ---

    BlitSurface ¶

    BlitSurface :: proc "c" (src: ^Surface, #by_ptr srcrect: Rect, dst: ^Surface, #by_ptr dstrect: Rect) -> bool ---

    BlitSurface9Grid ¶

    BlitSurface9Grid :: proc "c" (
    	src:                                                ^Surface, 
    	#by_ptr srcrect:                                    Rect, 
    	left_width, right_width, top_height, bottom_height: i32, 
    	scale:                                              f32, 
    	scaleMode:                                          ScaleMode, 
    	dst:                                                ^Surface, 
    	#by_ptr dstrect:                                    Rect, 
    ) -> bool ---

    BlitSurfaceScaled ¶

    BlitSurfaceScaled :: proc "c" (src: ^Surface, #by_ptr srcrect: Rect, dst: ^Surface, #by_ptr dstrect: Rect, scaleMode: ScaleMode) -> bool ---

    BlitSurfaceTiled ¶

    BlitSurfaceTiled :: proc "c" (src: ^Surface, #by_ptr srcrect: Rect, dst: ^Surface, #by_ptr dstrect: Rect) -> bool ---

    BlitSurfaceTiledWithScale ¶

    BlitSurfaceTiledWithScale :: proc "c" (
    	src:       ^Surface, 
    	#by_ptr srcrect: Rect, 
    	scale:     f32, 
    	scaleMode: ScaleMode, 
    	dst:       ^Surface, 
    	#by_ptr dstrect: Rect, 
    ) -> bool ---

    BlitSurfaceUnchecked ¶

    BlitSurfaceUnchecked :: proc "c" (src: ^Surface, #by_ptr srcrect: Rect, dst: ^Surface, #by_ptr dstrect: Rect) -> bool ---

    BlitSurfaceUncheckedScaled ¶

    BlitSurfaceUncheckedScaled :: proc "c" (src: ^Surface, #by_ptr srcrect: Rect, dst: ^Surface, #by_ptr dstrect: Rect, scaleMode: ScaleMode) -> bool ---

    COLORSPACECHROMA ¶

    COLORSPACECHROMA :: proc "c" (cspace: Colorspace) -> ChromaLocation {…}

    COLORSPACEMATRIX ¶

    COLORSPACEMATRIX :: proc "c" (cspace: Colorspace) -> MatrixCoefficients {…}

    COLORSPACEPRIMARIES ¶

    COLORSPACEPRIMARIES :: proc "c" (cspace: Colorspace) -> ColorPrimaries {…}

    COLORSPACERANGE ¶

    COLORSPACERANGE :: proc "c" (cspace: Colorspace) -> ColorRange {…}

    COLORSPACETRANSFER ¶

    COLORSPACETRANSFER :: proc "c" (cspace: Colorspace) -> TransferCharacteristics {…}

    COLORSPACETYPE ¶

    COLORSPACETYPE :: proc "c" (cspace: Colorspace) -> ColorType {…}

    CPUPauseInstruction ¶

    CPUPauseInstruction :: intrinsics.cpu_relax

    CalculateGPUTextureFormatSize ¶

    CalculateGPUTextureFormatSize :: proc "c" (format: GPUTextureFormat, width, height: u32, depth_or_layer_count: u32) -> u32 ---

    CancelGPUCommandBuffer ¶

    CancelGPUCommandBuffer :: proc "c" (command_buffer: ^GPUCommandBuffer) -> bool ---

    CaptureMouse ¶

    CaptureMouse :: proc "c" (enabled: bool) -> bool ---

    ClaimWindowForGPUDevice ¶

    ClaimWindowForGPUDevice :: proc "c" (device: ^GPUDevice, window: ^Window) -> bool ---

    CleanupTLS ¶

    CleanupTLS :: proc "c" () ---

    ClearAudioStream ¶

    ClearAudioStream :: proc "c" (stream: ^AudioStream) -> bool ---

    ClearClipboardData ¶

    ClearClipboardData :: proc "c" () -> bool ---

    ClearComposition ¶

    ClearComposition :: proc "c" (window: ^Window) -> bool ---

    ClearError ¶

    ClearError :: proc "c" () -> bool ---

    ClearProperty ¶

    ClearProperty :: proc "c" (props: PropertiesID, name: cstring) -> bool ---

    ClearSurface ¶

    ClearSurface :: proc "c" (surface: ^Surface, r, g, b, a: f32) -> bool ---

    ClickTrayEntry ¶

    ClickTrayEntry :: proc "c" (entry: ^TrayEntry) ---

    CloseAsyncIO ¶

    CloseAsyncIO :: proc "c" (asyncio: ^AsyncIO, flush: bool, queue: ^AsyncIOQueue, userdata: rawptr) -> bool ---

    CloseAudioDevice ¶

    CloseAudioDevice :: proc "c" (devid: AudioDeviceID) ---

    CloseCamera ¶

    CloseCamera :: proc "c" (camera: ^Camera) ---

    CloseGamepad ¶

    CloseGamepad :: proc "c" (gamepad: ^Gamepad) ---

    CloseHaptic ¶

    CloseHaptic :: proc "c" (haptic: ^Haptic) ---

    CloseIO ¶

    CloseIO :: proc "c" (ctx: ^IOStream) -> bool ---

    CloseJoystick ¶

    CloseJoystick :: proc "c" (joystick: ^Joystick) ---

    CloseSensor ¶

    CloseSensor :: proc "c" (sensor: ^Sensor) ---

    CloseStorage ¶

    CloseStorage :: proc "c" (storage: ^Storage) -> bool ---

    CompareAndSwapAtomicInt ¶

    CompareAndSwapAtomicInt :: proc "c" (a: ^AtomicInt, oldval, newval: i32) -> bool ---

    CompareAndSwapAtomicPointer ¶

    CompareAndSwapAtomicPointer :: proc "c" (a: ^rawptr, oldval, newval: rawptr) -> bool ---

    CompareAndSwapAtomicU32 ¶

    CompareAndSwapAtomicU32 :: proc "c" (a: ^AtomicU32, oldval, newval: u32) -> bool ---

    ComposeCustomBlendMode ¶

    ComposeCustomBlendMode :: proc "c" (
    	srcColorFactor: BlendFactor, 
    	dstColorFactor: BlendFactor, 
    	colorOperation: BlendOperation, 
    	srcAlphaFactor: BlendFactor, 
    	dstAlphaFactor: BlendFactor, 
    	alphaOperation: BlendOperation, 
    ) -> BlendMode ---

    ConvertAudioSamples ¶

    ConvertAudioSamples :: proc "c" (
    	src_spec: ^AudioSpec, 
    	src_data: [^]u8, 
    	src_len:  i32, 
    	dst_spec: ^AudioSpec, 
    	dst_data: ^[^]u8, 
    	dst_len:  ^i32, 
    ) -> bool ---

    ConvertEventToRenderCoordinates ¶

    ConvertEventToRenderCoordinates :: proc "c" (renderer: ^Renderer, event: ^Event) -> bool ---

    ConvertPixels ¶

    ConvertPixels :: proc "c" (
    	width, height: i32, 
    	src_format:    PixelFormat, 
    	src:           rawptr, 
    	src_pitch:     i32, 
    	dst_format:    PixelFormat, 
    	dst:           rawptr, 
    	dst_pitch:     i32, 
    ) -> bool ---

    ConvertPixelsAndColorspace ¶

    ConvertPixelsAndColorspace :: proc "c" (
    	width, height:  i32, 
    	src_format:     PixelFormat, 
    	src_colorspace: Colorspace, 
    	src_properties: PropertiesID, 
    	src:            rawptr, 
    	src_pitch:      i32, 
    	dst_format:     PixelFormat, 
    	dst_colorspace: Colorspace, 
    	dst_properties: PropertiesID, 
    	dst:            rawptr, 
    	dst_pitch:      i32, 
    ) -> bool ---

    ConvertSurface ¶

    ConvertSurface :: proc "c" (surface: ^Surface, format: PixelFormat) -> ^Surface ---

    ConvertSurfaceAndColorspace ¶

    ConvertSurfaceAndColorspace :: proc "c" (surface: ^Surface, format: PixelFormat, palette: ^Palette, colorspace: Colorspace, props: PropertiesID) -> ^Surface ---

    CopyFile ¶

    CopyFile :: proc "c" (oldpath, newpath: cstring) -> bool ---

    CopyGPUBufferToBuffer ¶

    CopyGPUBufferToBuffer :: proc "c" (copy_pass: ^GPUCopyPass, #by_ptr source: GPUBufferLocation, #by_ptr destination: GPUBufferLocation, size: u32, cycle: bool) ---

    CopyGPUTextureToTexture ¶

    CopyGPUTextureToTexture :: proc "c" (
    	copy_pass:   ^GPUCopyPass, 
    	#by_ptr source: GPUTextureLocation, 
    	#by_ptr destination: GPUTextureLocation, 
    	w, h, d:     u32, 
    	cycle:       bool, 
    ) ---

    CopyProperties ¶

    CopyProperties :: proc "c" (src, dst: PropertiesID) -> bool ---

    CopyStorageFile ¶

    CopyStorageFile :: proc "c" (storage: ^Storage, oldpath, newpath: cstring) -> bool ---

    CreateAsyncIOQueue ¶

    CreateAsyncIOQueue :: proc "c" () -> ^AsyncIOQueue ---

    CreateAudioStream ¶

    CreateAudioStream :: proc "c" (src_spec, dst_spec: ^AudioSpec) -> ^AudioStream ---

    CreateColorCursor ¶

    CreateColorCursor :: proc "c" (surface: ^Surface, hot_x, hot_y: i32) -> ^Cursor ---

    CreateCursor ¶

    CreateCursor :: proc "c" (
    	data:        [^]u8, 
    	mask:        [^]u8, 
    	w, h, hot_x, 
    	hot_y:       i32, 
    ) -> ^Cursor ---

    CreateDirectory ¶

    CreateDirectory :: proc "c" (path: cstring) -> bool ---

    CreateEnvironment ¶

    CreateEnvironment :: proc "c" (populated: bool) -> ^Environment ---

    CreateGPUBuffer ¶

    CreateGPUBuffer :: proc "c" (device: ^GPUDevice, #by_ptr createinfo: GPUBufferCreateInfo) -> ^GPUBuffer ---

    CreateGPUComputePipeline ¶

    CreateGPUComputePipeline :: proc "c" (device: ^GPUDevice, #by_ptr createinfo: GPUComputePipelineCreateInfo) -> ^GPUComputePipeline ---

    CreateGPUDevice ¶

    CreateGPUDevice :: proc "c" (format_flags: GPUShaderFormat, debug_mode: bool, name: cstring) -> ^GPUDevice ---

    CreateGPUDeviceWithProperties ¶

    CreateGPUDeviceWithProperties :: proc "c" (props: PropertiesID) -> ^GPUDevice ---

    CreateGPUGraphicsPipeline ¶

    CreateGPUGraphicsPipeline :: proc "c" (device: ^GPUDevice, #by_ptr createinfo: GPUGraphicsPipelineCreateInfo) -> ^GPUGraphicsPipeline ---

    CreateGPUSampler ¶

    CreateGPUSampler :: proc "c" (device: ^GPUDevice, #by_ptr createinfo: GPUSamplerCreateInfo) -> ^GPUSampler ---

    CreateGPUShader ¶

    CreateGPUShader :: proc "c" (device: ^GPUDevice, #by_ptr createinfo: GPUShaderCreateInfo) -> ^GPUShader ---

    CreateGPUTexture ¶

    CreateGPUTexture :: proc "c" (device: ^GPUDevice, #by_ptr createinfo: GPUTextureCreateInfo) -> ^GPUTexture ---

    CreateGPUTransferBuffer ¶

    CreateGPUTransferBuffer :: proc "c" (device: ^GPUDevice, #by_ptr createinfo: GPUTransferBufferCreateInfo) -> ^GPUTransferBuffer ---

    CreateHapticEffect ¶

    CreateHapticEffect :: proc "c" (haptic: ^Haptic, #by_ptr effect: HapticEffect) -> i32 ---

    CreateMutex ¶

    CreateMutex :: proc "c" () -> ^Mutex ---

    CreatePalette ¶

    CreatePalette :: proc "c" (ncolors: i32) -> ^Palette ---

    CreatePopupWindow ¶

    CreatePopupWindow :: proc "c" (
    	parent:             ^Window, 
    	offset_x, offset_y: i32, 
    	w, h:               i32, 
    	flags:              WindowFlags, 
    ) -> ^Window ---

    CreateProcess ¶

    CreateProcess :: proc "c" (args: [^]cstring, pipe_stdio: bool) -> ^Process ---

    CreateProcessWithProperties ¶

    CreateProcessWithProperties :: proc "c" (props: PropertiesID) -> ^Process ---

    CreateProperties ¶

    CreateProperties :: proc "c" () -> PropertiesID ---

    CreateRWLock ¶

    CreateRWLock :: proc "c" () -> ^RWLock ---

    CreateRenderer ¶

    CreateRenderer :: proc "c" (window: ^Window, name: cstring) -> ^Renderer ---

    CreateRendererWithProperties ¶

    CreateRendererWithProperties :: proc "c" (props: PropertiesID) -> ^Renderer ---

    CreateSoftwareRenderer ¶

    CreateSoftwareRenderer :: proc "c" (surface: ^Surface) -> ^Renderer ---

    CreateStorageDirectory ¶

    CreateStorageDirectory :: proc "c" (storage: ^Storage, path: cstring) -> bool ---

    CreateSurface ¶

    CreateSurface :: proc "c" (width, height: i32, format: PixelFormat) -> ^Surface ---

    CreateSurfaceFrom ¶

    CreateSurfaceFrom :: proc "c" (width, height: i32, format: PixelFormat, pixels: rawptr, pitch: i32) -> ^Surface ---

    CreateSurfacePalette ¶

    CreateSurfacePalette :: proc "c" (surface: ^Surface) -> ^Palette ---

    CreateSystemCursor ¶

    CreateSystemCursor :: proc "c" (id: SystemCursor) -> ^Cursor ---

    CreateTexture ¶

    CreateTexture :: proc "c" (renderer: ^Renderer, format: PixelFormat, access: TextureAccess, w, h: i32) -> ^Texture ---

    CreateTextureFromSurface ¶

    CreateTextureFromSurface :: proc "c" (renderer: ^Renderer, surface: ^Surface) -> ^Texture ---

    CreateTextureWithProperties ¶

    CreateTextureWithProperties :: proc "c" (renderer: ^Renderer, props: PropertiesID) -> ^Texture ---

    CreateThread ¶

    CreateThread :: proc "c" (fn: ThreadFunction, name: cstring, data: rawptr) -> ^Thread {…}

    CreateThreadRuntime ¶

    CreateThreadRuntime :: proc "c" (fn: ThreadFunction, name: cstring, data: rawptr, pfnBeginThread: FunctionPointer, pfnEndThread: FunctionPointer) -> ^Thread ---

    CreateThreadWithProperties ¶

    CreateThreadWithProperties :: proc "c" (props: PropertiesID) -> ^Thread {…}

    CreateThreadWithPropertiesRuntime ¶

    CreateThreadWithPropertiesRuntime :: proc "c" (props: PropertiesID, pfnBeginThread: FunctionPointer, pfnEndThread: FunctionPointer) -> ^Thread ---

    CreateTray ¶

    CreateTray :: proc "c" (icon: ^Surface, tooltip: cstring) -> ^Tray ---

    CreateTrayMenu ¶

    CreateTrayMenu :: proc "c" (tray: ^Tray) -> ^TrayMenu ---

    CreateTraySubmenu ¶

    CreateTraySubmenu :: proc "c" (entry: ^TrayEntry) -> ^TrayMenu ---

    CreateWindow ¶

    CreateWindow :: proc "c" (title: cstring, w, h: i32, flags: WindowFlags) -> ^Window ---

    CreateWindowAndRenderer ¶

    CreateWindowAndRenderer :: proc "c" (
    	title:         cstring, 
    	width, height: i32, 
    	window_flags:  WindowFlags, 
    	window:        ^^Window, 
    	renderer:      ^^Renderer, 
    ) -> bool ---

    CreateWindowWithProperties ¶

    CreateWindowWithProperties :: proc "c" (props: PropertiesID) -> ^Window ---

    CursorVisible ¶

    CursorVisible :: proc "c" () -> bool ---

    DEFINE_AUDIO_FORMAT ¶

    DEFINE_AUDIO_FORMAT :: proc "c" (signed, bigendian, flt, size: u16) -> u16 {…}

    DEFINE_COLORSPACE ¶

    DEFINE_COLORSPACE :: proc "c" (
    	type:      ColorType, 
    	range:     ColorRange, 
    	primaries: ColorPrimaries, 
    	transfer:  TransferCharacteristics, 
    	matrix_:   MatrixCoefficients, 
    	chroma:    ChromaLocation, 
    ) -> Colorspace {…}

    DEFINE_PIXELFORMAT ¶

    DEFINE_PIXELFORMAT :: proc "c" (type: PixelType, order: PackedOrder, layout: PackedLayout, bits: u32, bytes: u32) -> PixelFormat {…}

    DEFINE_PIXELFOURCC ¶

    DEFINE_PIXELFOURCC :: proc "c" (#any_int A, #any_int B, #any_int C, #any_int D: u8) -> u32 {…}

    DateTimeToTime ¶

    DateTimeToTime :: proc "c" (#by_ptr dt: DateTime, ticks: ^Time) -> bool ---

    Delay ¶

    Delay :: proc "c" (ms: u32) ---

    DelayNS ¶

    DelayNS :: proc "c" (ns: u64) ---

    DelayPrecise ¶

    DelayPrecise :: proc "c" (ns: u64) ---

    DestroyAsyncIOQueue ¶

    DestroyAsyncIOQueue :: proc "c" (queue: ^AsyncIOQueue) ---

    DestroyAudioStream ¶

    DestroyAudioStream :: proc "c" (stream: ^AudioStream) ---

    DestroyCursor ¶

    DestroyCursor :: proc "c" (cursor: ^Cursor) ---

    DestroyEnvironment ¶

    DestroyEnvironment :: proc "c" (env: ^Environment) ---

    DestroyGPUDevice ¶

    DestroyGPUDevice :: proc "c" (device: ^GPUDevice) ---

    DestroyHapticEffect ¶

    DestroyHapticEffect :: proc "c" (haptic: ^Haptic, effect: i32) ---

    DestroyMutex ¶

    DestroyMutex :: proc "c" (mutex: ^Mutex) ---

    DestroyPalette ¶

    DestroyPalette :: proc "c" (palette: ^Palette) ---

    DestroyProcess ¶

    DestroyProcess :: proc "c" (process: ^Process) ---

    DestroyProperties ¶

    DestroyProperties :: proc "c" (props: PropertiesID) ---

    DestroyRWLock ¶

    DestroyRWLock :: proc "c" (rwlock: ^RWLock) ---

    DestroyRenderer ¶

    DestroyRenderer :: proc "c" (renderer: ^Renderer) ---

    DestroySurface ¶

    DestroySurface :: proc "c" (surface: ^Surface) ---

    DestroyTexture ¶

    DestroyTexture :: proc "c" (texture: ^Texture) ---

    DestroyTray ¶

    DestroyTray :: proc "c" (tray: ^Tray) ---

    DestroyWindow ¶

    DestroyWindow :: proc "c" (window: ^Window) ---

    DestroyWindowSurface ¶

    DestroyWindowSurface :: proc "c" (window: ^Window) -> bool ---

    DetachThread ¶

    DetachThread :: proc "c" (thread: ^Thread) ---

    DetachVirtualJoystick ¶

    DetachVirtualJoystick :: proc "c" (instance_id: JoystickID) -> bool ---

    DisableScreenSaver ¶

    DisableScreenSaver :: proc "c" () -> bool ---

    DispatchGPUCompute ¶

    DispatchGPUCompute :: proc "c" (compute_pass: ^GPUComputePass, groupcount_x, groupcount_y, groupcount_z: u32) ---

    DispatchGPUComputeIndirect ¶

    DispatchGPUComputeIndirect :: proc "c" (compute_pass: ^GPUComputePass, buffer: ^GPUBuffer, offset: u32) ---

    DownloadFromGPUBuffer ¶

    DownloadFromGPUBuffer :: proc "c" (copy_pass: ^GPUCopyPass, #by_ptr source: GPUBufferRegion, #by_ptr destination: GPUTransferBufferLocation) ---

    DownloadFromGPUTexture ¶

    DownloadFromGPUTexture :: proc "c" (copy_pass: ^GPUCopyPass, #by_ptr source: GPUTextureRegion, #by_ptr destination: GPUTextureTransferInfo) ---

    DrawGPUIndexedPrimitives ¶

    DrawGPUIndexedPrimitives :: proc "c" (
    	render_pass:    ^GPURenderPass, 
    	num_indices:    u32, 
    	num_instances:  u32, 
    	first_index:    u32, 
    	vertex_offset:  i32, 
    	first_instance: u32, 
    ) ---

    DrawGPUIndexedPrimitivesIndirect ¶

    DrawGPUIndexedPrimitivesIndirect :: proc "c" (render_pass: ^GPURenderPass, buffer: ^GPUBuffer, offset: u32, draw_count: u32) ---

    DrawGPUPrimitives ¶

    DrawGPUPrimitives :: proc "c" (render_pass: ^GPURenderPass, num_vertices: u32, num_instances: u32, first_vertex: u32, first_instance: u32) ---

    DrawGPUPrimitivesIndirect ¶

    DrawGPUPrimitivesIndirect :: proc "c" (render_pass: ^GPURenderPass, buffer: ^GPUBuffer, offset: u32, draw_count: u32) ---

    DuplicateSurface ¶

    DuplicateSurface :: proc "c" (surface: ^Surface) -> ^Surface ---

    EGL_GetCurrentConfig ¶

    EGL_GetCurrentConfig :: proc "c" () -> EGLConfig ---

    EGL_GetCurrentDisplay ¶

    EGL_GetCurrentDisplay :: proc "c" () -> EGLDisplay ---

    EGL_GetProcAddress ¶

    EGL_GetProcAddress :: proc "c" (procName: cstring) -> FunctionPointer ---

    EGL_GetWindowSurface ¶

    EGL_GetWindowSurface :: proc "c" (window: ^Window) -> EGLSurface ---

    EGL_SetAttributeCallbacks ¶

    EGL_SetAttributeCallbacks :: proc "c" (platformAttribCallback: EGLAttribArrayCallback, surfaceAttribCallback: EGLIntArrayCallback, contextAttribCallback: EGLIntArrayCallback, userdata: rawptr) ---

    EnableScreenSaver ¶

    EnableScreenSaver :: proc "c" () -> bool ---

    EndGPUComputePass ¶

    EndGPUComputePass :: proc "c" (compute_pass: ^GPUComputePass) ---

    EndGPUCopyPass ¶

    EndGPUCopyPass :: proc "c" (copy_pass: ^GPUCopyPass) ---

    EndGPURenderPass ¶

    EndGPURenderPass :: proc "c" (render_pass: ^GPURenderPass) ---

    EndThreadFunction ¶

    EndThreadFunction :: proc "c" () -> FunctionPointer {…}

    EnterAppMainCallbacks ¶

    EnterAppMainCallbacks :: proc "c" (
    	argc:     i32, 
    	argv:     [^]cstring, 
    	appinit:  AppInit_func, 
    	appiter:  AppIterate_func, 
    	appevent: AppEvent_func, 
    	appquit:  AppQuit_func, 
    ) -> i32 ---

    EnumerateDirectory ¶

    EnumerateDirectory :: proc "c" (path: cstring, callback: EnumerateDirectoryCallback, userdata: rawptr) -> bool ---

    EnumerateProperties ¶

    EnumerateProperties :: proc "c" (props: PropertiesID, callback: EnumeratePropertiesCallback, userdata: rawptr) -> bool ---

    EnumerateStorageDirectory ¶

    EnumerateStorageDirectory :: proc "c" (storage: ^Storage, path: cstring, callback: EnumerateDirectoryCallback, userdata: rawptr) -> bool ---

    EventEnabled ¶

    EventEnabled :: proc "c" (type: EventType) -> bool ---

    FOURCC ¶

    FOURCC :: proc "contextless" (#any_int A, #any_int B, #any_int C, #any_int D: u8) -> u32 {…}

    FillSurfaceRect ¶

    FillSurfaceRect :: proc "c" (dst: ^Surface, #by_ptr rect: Rect, color: u32) -> bool ---

    FillSurfaceRects ¶

    FillSurfaceRects :: proc "c" (dst: ^Surface, rects: [^]Rect, count: i32, color: u32) -> bool ---

    FilterEvents ¶

    FilterEvents :: proc "c" (filter: EventFilter, userdata: rawptr) ---

    FlashWindow ¶

    FlashWindow :: proc "c" (window: ^Window, operation: FlashOperation) -> bool ---

    FlipSurface ¶

    FlipSurface :: proc "c" (surface: ^Surface, flip: FlipMode) -> bool ---

    FlushAudioStream ¶

    FlushAudioStream :: proc "c" (stream: ^AudioStream) -> bool ---

    FlushEvent ¶

    FlushEvent :: proc "c" (type: EventType) ---

    FlushEvents ¶

    FlushEvents :: proc "c" (minType, maxType: EventType) ---

    FlushIO ¶

    FlushIO :: proc "c" (ctx: ^IOStream) -> bool ---

    FlushRenderer ¶

    FlushRenderer :: proc "c" (renderer: ^Renderer) -> bool ---

    GDKResumeGPU ¶

    GDKResumeGPU :: proc "c" (device: ^GPUDevice) ---

    GDKSuspendComplete ¶

    GDKSuspendComplete :: proc "c" () ---

    GDKSuspendGPU ¶

    GDKSuspendGPU :: proc "c" (device: ^GPUDevice) ---

    GL_CreateContext ¶

    GL_CreateContext :: proc "c" (window: ^Window) -> ^GLContextState ---

    GL_DestroyContext ¶

    GL_DestroyContext :: proc "c" (ctx: ^GLContextState) -> bool ---

    GL_ExtensionSupported ¶

    GL_ExtensionSupported :: proc "c" (extension: cstring) -> bool ---

    GL_GetAttribute ¶

    GL_GetAttribute :: proc "c" (attr: GLAttr, value: ^i32) -> bool ---

    GL_GetCurrentContext ¶

    GL_GetCurrentContext :: proc "c" () -> ^GLContextState ---

    GL_GetCurrentWindow ¶

    GL_GetCurrentWindow :: proc "c" () -> ^Window ---

    GL_GetProcAddress ¶

    GL_GetProcAddress :: proc "c" (procName: cstring) -> FunctionPointer ---

    GL_GetSwapInterval ¶

    GL_GetSwapInterval :: proc "c" (interval: ^i32) -> bool ---

    GL_LoadLibrary ¶

    GL_LoadLibrary :: proc "c" (path: cstring) -> bool ---

    GL_MakeCurrent ¶

    GL_MakeCurrent :: proc "c" (window: ^Window, ctx: ^GLContextState) -> bool ---

    GL_ResetAttributes ¶

    GL_ResetAttributes :: proc "c" () ---

    GL_SetAttribute ¶

    GL_SetAttribute :: proc "c" (attr: GLAttr, value: i32) -> bool ---

    GL_SetSwapInterval ¶

    GL_SetSwapInterval :: proc "c" (interval: i32) -> bool ---

    GL_SwapWindow ¶

    GL_SwapWindow :: proc "c" (window: ^Window) -> bool ---

    GL_UnloadLibrary ¶

    GL_UnloadLibrary :: proc "c" () ---

    GPUSupportsProperties ¶

    GPUSupportsProperties :: proc "c" (props: PropertiesID) -> bool ---

    GPUSupportsShaderFormats ¶

    GPUSupportsShaderFormats :: proc "c" (format_flags: GPUShaderFormat, name: cstring) -> bool ---

    GPUTextureFormatTexelBlockSize ¶

    GPUTextureFormatTexelBlockSize :: proc "c" (format: GPUTextureFormat) -> u32 ---

    GPUTextureSupportsFormat ¶

    GPUTextureSupportsFormat :: proc "c" (device: ^GPUDevice, format: GPUTextureFormat, type: GPUTextureType, usage: GPUTextureUsageFlags) -> bool ---

    GPUTextureSupportsSampleCount ¶

    GPUTextureSupportsSampleCount :: proc "c" (device: ^GPUDevice, format: GPUTextureFormat, sample_count: GPUSampleCount) -> bool ---

    GUIDToString ¶

    GUIDToString :: proc "c" (guid: GUID, pszGUID: [^]u8, cbGUID: i32) ---

    GamepadConnected ¶

    GamepadConnected :: proc "c" (gamepad: ^Gamepad) -> bool ---

    GamepadEventsEnabled ¶

    GamepadEventsEnabled :: proc "c" () -> bool ---

    GamepadHasAxis ¶

    GamepadHasAxis :: proc "c" (gamepad: ^Gamepad, axis: GamepadAxis) -> bool ---

    GamepadHasButton ¶

    GamepadHasButton :: proc "c" (gamepad: ^Gamepad, button: GamepadButton) -> bool ---

    GamepadHasSensor ¶

    GamepadHasSensor :: proc "c" (gamepad: ^Gamepad, type: SensorType) -> bool ---

    GamepadSensorEnabled ¶

    GamepadSensorEnabled :: proc "c" (gamepad: ^Gamepad, type: SensorType) -> bool ---

    GenerateMipmapsForGPUTexture ¶

    GenerateMipmapsForGPUTexture :: proc "c" (command_buffer: ^GPUCommandBuffer, texture: ^GPUTexture) ---

    GetAndroidActivity ¶

    GetAndroidActivity :: proc "c" () -> rawptr ---

    GetAndroidCachePath ¶

    GetAndroidCachePath :: proc "c" () -> cstring ---

    GetAndroidExternalStoragePath ¶

    GetAndroidExternalStoragePath :: proc "c" () -> cstring ---

    GetAndroidExternalStorageState ¶

    GetAndroidExternalStorageState :: proc "c" () -> u32 ---

    GetAndroidInternalStoragePath ¶

    GetAndroidInternalStoragePath :: proc "c" () -> cstring ---

    GetAndroidJNIEnv ¶

    GetAndroidJNIEnv :: proc "c" () -> rawptr ---

    GetAndroidSDKVersion ¶

    GetAndroidSDKVersion :: proc "c" () -> i32 ---

    GetAppMetadataProperty ¶

    GetAppMetadataProperty :: proc "c" (name: cstring) -> cstring ---

    GetAssertionReport ¶

    GetAssertionReport :: proc "c" () -> AssertData ---

    GetAsyncIOResult ¶

    GetAsyncIOResult :: proc "c" (queue: ^AsyncIOQueue, outcome: ^AsyncIOOutcome) -> bool ---

    GetAsyncIOSize ¶

    GetAsyncIOSize :: proc "c" (asyncio: ^AsyncIO) -> i64 ---

    GetAtomicInt ¶

    GetAtomicInt :: proc "c" (a: ^AtomicInt) -> int ---

    GetAtomicPointer ¶

    GetAtomicPointer :: proc "c" (a: ^rawptr) -> rawptr ---

    GetAtomicU32 ¶

    GetAtomicU32 :: proc "c" (a: ^AtomicU32) -> u32 ---

    GetAudioDeviceChannelMap ¶

    GetAudioDeviceChannelMap :: proc "c" (devid: AudioDeviceID, count: ^i32) -> [^]i32 ---

    GetAudioDeviceFormat ¶

    GetAudioDeviceFormat :: proc "c" (devid: AudioDeviceID, spec: ^AudioSpec, sample_frames: ^i32) -> bool ---

    GetAudioDeviceGain ¶

    GetAudioDeviceGain :: proc "c" (devid: AudioDeviceID) -> f32 ---

    GetAudioDeviceName ¶

    GetAudioDeviceName :: proc "c" (devid: AudioDeviceID) -> cstring ---

    GetAudioDriver ¶

    GetAudioDriver :: proc "c" (index: i32) -> cstring ---

    GetAudioFormatName ¶

    GetAudioFormatName :: proc "c" (format: AudioFormat) -> cstring ---

    GetAudioPlaybackDevices ¶

    GetAudioPlaybackDevices :: proc "c" (count: ^i32) -> [^]AudioDeviceID ---

    GetAudioRecordingDevices ¶

    GetAudioRecordingDevices :: proc "c" (count: ^i32) -> [^]AudioDeviceID ---

    GetAudioStreamAvailable ¶

    GetAudioStreamAvailable :: proc "c" (stream: ^AudioStream) -> i32 ---

    GetAudioStreamData ¶

    GetAudioStreamData :: proc "c" (stream: ^AudioStream, buf: rawptr, len: i32) -> i32 ---

    GetAudioStreamDevice ¶

    GetAudioStreamDevice :: proc "c" (stream: ^AudioStream) -> AudioDeviceID ---

    GetAudioStreamFormat ¶

    GetAudioStreamFormat :: proc "c" (stream: ^AudioStream, src_spec, dst_spec: ^AudioSpec) -> bool ---

    GetAudioStreamFrequencyRatio ¶

    GetAudioStreamFrequencyRatio :: proc "c" (stream: ^AudioStream) -> f32 ---

    GetAudioStreamGain ¶

    GetAudioStreamGain :: proc "c" (stream: ^AudioStream) -> f32 ---

    GetAudioStreamInputChannelMap ¶

    GetAudioStreamInputChannelMap :: proc "c" (stream: ^AudioStream, count: ^i32) -> [^]i32 ---

    GetAudioStreamOutputChannelMap ¶

    GetAudioStreamOutputChannelMap :: proc "c" (stream: ^AudioStream, count: ^i32) -> [^]i32 ---

    GetAudioStreamProperties ¶

    GetAudioStreamProperties :: proc "c" (stream: ^AudioStream) -> PropertiesID ---

    GetAudioStreamQueued ¶

    GetAudioStreamQueued :: proc "c" (stream: ^AudioStream) -> i32 ---

    GetBasePath ¶

    GetBasePath :: proc "c" () -> cstring ---

    GetBooleanProperty ¶

    GetBooleanProperty :: proc "c" (props: PropertiesID, name: cstring, default_value: bool) -> bool ---

    GetCPUCacheLineSize ¶

    GetCPUCacheLineSize :: proc "c" () -> i32 ---

    GetCameraDriver ¶

    GetCameraDriver :: proc "c" (index: i32) -> cstring ---

    GetCameraFormat ¶

    GetCameraFormat :: proc "c" (camera: ^Camera, spec: ^CameraSpec) -> bool ---

    GetCameraID ¶

    GetCameraID :: proc "c" (camera: ^Camera) -> CameraID ---

    GetCameraName ¶

    GetCameraName :: proc "c" (instance_id: CameraID) -> cstring ---

    GetCameraPermissionState ¶

    GetCameraPermissionState :: proc "c" (camera: ^Camera) -> i32 ---

    GetCameraPosition ¶

    GetCameraPosition :: proc "c" (instance_id: CameraID) -> CameraPosition ---

    GetCameraProperties ¶

    GetCameraProperties :: proc "c" (camera: ^Camera) -> PropertiesID ---

    GetCameraSupportedFormats ¶

    GetCameraSupportedFormats :: proc "c" (devid: CameraID, count: ^i32) -> [^]^CameraSpec ---

    GetCameras ¶

    GetCameras :: proc "c" (count: ^i32) -> [^]CameraID ---

    GetClipboardData ¶

    GetClipboardData :: proc "c" (mime_type: cstring, size: ^uint) -> rawptr ---

    GetClipboardMimeTypes ¶

    GetClipboardMimeTypes :: proc "c" (num_mime_types: ^uint) -> [^][^]u8 ---

    GetClipboardText ¶

    GetClipboardText :: proc "c" () -> [^]u8 ---

    GetClosestFullscreenDisplayMode ¶

    GetClosestFullscreenDisplayMode :: proc "c" (
    	displayID:                  DisplayID, 
    	w, h:                       i32, 
    	refresh_rate:               f32, 
    	include_high_density_modes: bool, 
    	closest:                    ^DisplayMode, 
    ) -> bool ---

    GetCurrentAudioDriver ¶

    GetCurrentAudioDriver :: proc "c" () -> cstring ---

    GetCurrentCameraDriver ¶

    GetCurrentCameraDriver :: proc "c" () -> cstring ---

    GetCurrentDirectory ¶

    GetCurrentDirectory :: proc "c" () -> [^]u8 ---

    GetCurrentDisplayMode ¶

    GetCurrentDisplayMode :: proc "c" (displayID: DisplayID) -> ^DisplayMode ---

    GetCurrentDisplayOrientation ¶

    GetCurrentDisplayOrientation :: proc "c" (displayID: DisplayID) -> DisplayOrientation ---

    GetCurrentRenderOutputSize ¶

    GetCurrentRenderOutputSize :: proc "c" (renderer: ^Renderer, w, h: ^i32) -> bool ---

    GetCurrentThreadID ¶

    GetCurrentThreadID :: proc "c" () -> ThreadID ---

    GetCurrentTime ¶

    GetCurrentTime :: proc "c" (ticks: ^Time) -> bool ---

    GetCurrentVideoDriver ¶

    GetCurrentVideoDriver :: proc "c" () -> cstring ---

    GetCursor ¶

    GetCursor :: proc "c" () -> ^Cursor ---

    GetDXGIOutputInfo ¶

    GetDXGIOutputInfo :: proc "c" (displayID: DisplayID, adapterIndex: ^i32, outputIndex: ^i32) -> bool ---

    GetDateTimeLocalePreferences ¶

    GetDateTimeLocalePreferences :: proc "c" (dateFormat: ^DateFormat, timeFormat: ^TimeFormat) -> bool ---

    GetDayOfWeek ¶

    GetDayOfWeek :: proc "c" (year, month, day: i32) -> i32 ---

    GetDayOfYear ¶

    GetDayOfYear :: proc "c" (year, month, day: i32) -> i32 ---

    GetDaysInMonth ¶

    GetDaysInMonth :: proc "c" (year, month: i32) -> i32 ---

    GetDefaultAssertionHandler ¶

    GetDefaultAssertionHandler :: proc "c" () -> AssertionHandler ---

    GetDefaultCursor ¶

    GetDefaultCursor :: proc "c" () -> ^Cursor ---

    GetDefaultLogOutputFunction ¶

    GetDefaultLogOutputFunction :: proc "c" () -> LogOutputFunction ---

    GetDesktopDisplayMode ¶

    GetDesktopDisplayMode :: proc "c" (displayID: DisplayID) -> ^DisplayMode ---

    GetDirect3D9AdapterIndex ¶

    GetDirect3D9AdapterIndex :: proc "c" (displayID: DisplayID) -> i32 ---

    GetDisplayBounds ¶

    GetDisplayBounds :: proc "c" (displayID: DisplayID, rect: ^Rect) -> bool ---

    GetDisplayContentScale ¶

    GetDisplayContentScale :: proc "c" (displayID: DisplayID) -> f32 ---

    GetDisplayForPoint ¶

    GetDisplayForPoint :: proc "c" (#by_ptr point: Point) -> DisplayID ---

    GetDisplayForRect ¶

    GetDisplayForRect :: proc "c" (#by_ptr rect: Rect) -> DisplayID ---

    GetDisplayForWindow ¶

    GetDisplayForWindow :: proc "c" (window: ^Window) -> DisplayID ---

    GetDisplayName ¶

    GetDisplayName :: proc "c" (displayID: DisplayID) -> cstring ---

    GetDisplayProperties ¶

    GetDisplayProperties :: proc "c" (displayID: DisplayID) -> PropertiesID ---

    GetDisplayUsableBounds ¶

    GetDisplayUsableBounds :: proc "c" (displayID: DisplayID, rect: ^Rect) -> bool ---

    GetDisplays ¶

    GetDisplays :: proc "c" (count: ^i32) -> [^]DisplayID ---

    GetEnvironment ¶

    GetEnvironment :: proc "c" () -> ^Environment ---

    GetEnvironmentVariable ¶

    GetEnvironmentVariable :: proc "c" (env: ^Environment, name: cstring) -> cstring ---

    GetEnvironmentVariables ¶

    GetEnvironmentVariables :: proc "c" (env: ^Environment) -> [^]cstring ---

    GetError ¶

    GetError :: proc "c" () -> cstring ---

    GetEventFilter ¶

    GetEventFilter :: proc "c" (filter: ^EventFilter, userdata: ^rawptr) -> bool ---

    GetFloatProperty ¶

    GetFloatProperty :: proc "c" (props: PropertiesID, name: cstring, default_value: f32) -> f32 ---

    GetFullscreenDisplayModes ¶

    GetFullscreenDisplayModes :: proc "c" (displayID: DisplayID, count: i32) -> [^]^DisplayMode ---

    GetGDKDefaultUser ¶

    GetGDKDefaultUser :: proc "c" (outUserHandle: ^XUserHandle) -> bool ---

    GetGDKTaskQueue ¶

    GetGDKTaskQueue :: proc "c" (outTaskQueue: ^XTaskQueueHandle) -> bool ---

    GetGPUDeviceDriver ¶

    GetGPUDeviceDriver :: proc "c" (device: ^GPUDevice) -> cstring ---

    GetGPUDriver ¶

    GetGPUDriver :: proc "c" (index: i32) -> cstring ---

    GetGPUShaderFormats ¶

    GetGPUShaderFormats :: proc "c" (device: ^GPUDevice) -> GPUShaderFormat ---

    GetGPUSwapchainTextureFormat ¶

    GetGPUSwapchainTextureFormat :: proc "c" (device: ^GPUDevice, window: ^Window) -> GPUTextureFormat ---

    GetGamepadAppleSFSymbolsNameForAxis ¶

    GetGamepadAppleSFSymbolsNameForAxis :: proc "c" (gamepad: ^Gamepad, axis: GamepadAxis) -> cstring ---

    GetGamepadAppleSFSymbolsNameForButton ¶

    GetGamepadAppleSFSymbolsNameForButton :: proc "c" (gamepad: ^Gamepad, button: GamepadButton) -> cstring ---

    GetGamepadAxis ¶

    GetGamepadAxis :: proc "c" (gamepad: ^Gamepad, axis: GamepadAxis) -> i16 ---

    GetGamepadAxisFromString ¶

    GetGamepadAxisFromString :: proc "c" (str: cstring) -> GamepadAxis ---

    GetGamepadBindings ¶

    GetGamepadBindings :: proc "c" (gamepad: ^Gamepad, count: ^i32) -> [^]^GamepadBinding ---

    GetGamepadButton ¶

    GetGamepadButton :: proc "c" (gamepad: ^Gamepad, button: GamepadButton) -> bool ---

    GetGamepadButtonFromString ¶

    GetGamepadButtonFromString :: proc "c" (str: cstring) -> GamepadButton ---

    GetGamepadButtonLabel ¶

    GetGamepadButtonLabel :: proc "c" (gamepad: ^Gamepad, button: GamepadButton) -> GamepadButtonLabel ---

    GetGamepadButtonLabelForType ¶

    GetGamepadButtonLabelForType :: proc "c" (type: GamepadType, button: GamepadButton) -> GamepadButtonLabel ---

    GetGamepadConnectionState ¶

    GetGamepadConnectionState :: proc "c" (gamepad: ^Gamepad) -> JoystickConnectionState ---

    GetGamepadFirmwareVersion ¶

    GetGamepadFirmwareVersion :: proc "c" (gamepad: ^Gamepad) -> u16 ---

    GetGamepadFromID ¶

    GetGamepadFromID :: proc "c" (instance_id: JoystickID) -> ^Gamepad ---

    GetGamepadFromPlayerIndex ¶

    GetGamepadFromPlayerIndex :: proc "c" (player_index: i32) -> ^Gamepad ---

    GetGamepadGUIDForID ¶

    GetGamepadGUIDForID :: proc "c" (instance_id: JoystickID) -> GUID ---

    GetGamepadID ¶

    GetGamepadID :: proc "c" (gamepad: ^Gamepad) -> JoystickID ---

    GetGamepadJoystick ¶

    GetGamepadJoystick :: proc "c" (gamepad: ^Gamepad) -> ^Joystick ---

    GetGamepadMapping ¶

    GetGamepadMapping :: proc "c" (gamepad: ^Gamepad) -> [^]u8 ---

    GetGamepadMappingForGUID ¶

    GetGamepadMappingForGUID :: proc "c" (guid: GUID) -> [^]u8 ---

    GetGamepadMappingForID ¶

    GetGamepadMappingForID :: proc "c" (instance_id: JoystickID) -> [^]u8 ---

    GetGamepadMappings ¶

    GetGamepadMappings :: proc "c" (count: ^i32) -> [^][^]u8 ---

    GetGamepadName ¶

    GetGamepadName :: proc "c" (gamepad: ^Gamepad) -> cstring ---

    GetGamepadNameForID ¶

    GetGamepadNameForID :: proc "c" (instance_id: JoystickID) -> cstring ---

    GetGamepadPath ¶

    GetGamepadPath :: proc "c" (gamepad: ^Gamepad) -> cstring ---

    GetGamepadPathForID ¶

    GetGamepadPathForID :: proc "c" (instance_id: JoystickID) -> cstring ---

    GetGamepadPlayerIndex ¶

    GetGamepadPlayerIndex :: proc "c" (gamepad: ^Gamepad) -> i32 ---

    GetGamepadPlayerIndexForID ¶

    GetGamepadPlayerIndexForID :: proc "c" (instance_id: JoystickID) -> i32 ---

    GetGamepadPowerInfo ¶

    GetGamepadPowerInfo :: proc "c" (gamepad: ^Gamepad, percent: ^i32) -> PowerState ---

    GetGamepadProduct ¶

    GetGamepadProduct :: proc "c" (gamepad: ^Gamepad) -> u16 ---

    GetGamepadProductForID ¶

    GetGamepadProductForID :: proc "c" (instance_id: JoystickID) -> u16 ---

    GetGamepadProductVersion ¶

    GetGamepadProductVersion :: proc "c" (gamepad: ^Gamepad) -> u16 ---

    GetGamepadProductVersionForID ¶

    GetGamepadProductVersionForID :: proc "c" (instance_id: JoystickID) -> u16 ---

    GetGamepadProperties ¶

    GetGamepadProperties :: proc "c" (gamepad: ^Gamepad) -> PropertiesID ---

    GetGamepadSensorData ¶

    GetGamepadSensorData :: proc "c" (gamepad: ^Gamepad, type: SensorType, data: [^]f32, num_values: i32) -> bool ---

    GetGamepadSensorDataRate ¶

    GetGamepadSensorDataRate :: proc "c" (gamepad: ^Gamepad, type: SensorType) -> f32 ---

    GetGamepadSerial ¶

    GetGamepadSerial :: proc "c" (gamepad: ^Gamepad) -> cstring ---

    GetGamepadSteamHandle ¶

    GetGamepadSteamHandle :: proc "c" (gamepad: ^Gamepad) -> u64 ---

    GetGamepadStringForAxis ¶

    GetGamepadStringForAxis :: proc "c" (axis: GamepadAxis) -> cstring ---

    GetGamepadStringForButton ¶

    GetGamepadStringForButton :: proc "c" (button: GamepadButton) -> cstring ---

    GetGamepadStringForType ¶

    GetGamepadStringForType :: proc "c" (type: GamepadType) -> cstring ---

    GetGamepadTouchpadFinger ¶

    GetGamepadTouchpadFinger :: proc "c" (
    	gamepad:  ^Gamepad, 
    	touchpad: i32, 
    	finger:   i32, 
    	down:     ^bool, 
    	x, y:     ^f32, 
    	pressure: ^f32, 
    ) -> bool ---

    GetGamepadType ¶

    GetGamepadType :: proc "c" (gamepad: ^Gamepad) -> GamepadType ---

    GetGamepadTypeForID ¶

    GetGamepadTypeForID :: proc "c" (instance_id: JoystickID) -> GamepadType ---

    GetGamepadTypeFromString ¶

    GetGamepadTypeFromString :: proc "c" (str: cstring) -> GamepadType ---

    GetGamepadVendor ¶

    GetGamepadVendor :: proc "c" (gamepad: ^Gamepad) -> u16 ---

    GetGamepadVendorForID ¶

    GetGamepadVendorForID :: proc "c" (instance_id: JoystickID) -> u16 ---

    GetGamepads ¶

    GetGamepads :: proc "c" (count: ^i32) -> [^]JoystickID ---

    GetGlobalMouseState ¶

    GetGlobalMouseState :: proc "c" (x, y: ^f32) -> MouseButtonFlags ---

    GetGlobalProperties ¶

    GetGlobalProperties :: proc "c" () -> PropertiesID ---

    GetGrabbedWindow ¶

    GetGrabbedWindow :: proc "c" () -> ^Window ---

    GetHapticEffectStatus ¶

    GetHapticEffectStatus :: proc "c" (haptic: ^Haptic, effect: i32) -> bool ---

    GetHapticFeatures ¶

    GetHapticFeatures :: proc "c" (haptic: ^Haptic) -> u32 ---

    GetHapticFromID ¶

    GetHapticFromID :: proc "c" (instance_id: HapticID) -> ^Haptic ---

    GetHapticID ¶

    GetHapticID :: proc "c" (haptic: ^Haptic) -> HapticID ---

    GetHapticName ¶

    GetHapticName :: proc "c" (haptic: ^Haptic) -> cstring ---

    GetHapticNameForID ¶

    GetHapticNameForID :: proc "c" (instance_id: HapticID) -> cstring ---

    GetHaptics ¶

    GetHaptics :: proc "c" (count: ^i32) -> ^HapticID ---

    GetHint ¶

    GetHint :: proc "c" (name: cstring) -> cstring ---

    GetHintBoolean ¶

    GetHintBoolean :: proc "c" (name: cstring, default_value: bool) -> bool ---

    GetIOProperties ¶

    GetIOProperties :: proc "c" (ctx: ^IOStream) -> PropertiesID ---

    GetIOSize ¶

    GetIOSize :: proc "c" (ctx: ^IOStream) -> i64 ---

    GetIOStatus ¶

    GetIOStatus :: proc "c" (ctx: ^IOStream) -> IOStatus ---

    GetJoystickAxis ¶

    GetJoystickAxis :: proc "c" (joystick: ^Joystick, axis: i32) -> i16 ---

    GetJoystickAxisInitialState ¶

    GetJoystickAxisInitialState :: proc "c" (joystick: ^Joystick, axis: i32, state: ^i16) -> bool ---

    GetJoystickBall ¶

    GetJoystickBall :: proc "c" (joystick: ^Joystick, ball: i32, dx, dy: ^i32) -> bool ---

    GetJoystickButton ¶

    GetJoystickButton :: proc "c" (joystick: ^Joystick, button: i32) -> bool ---

    GetJoystickConnectionState ¶

    GetJoystickConnectionState :: proc "c" (joystick: ^Joystick) -> JoystickConnectionState ---

    GetJoystickFirmwareVersion ¶

    GetJoystickFirmwareVersion :: proc "c" (joystick: ^Joystick) -> u16 ---

    GetJoystickFromID ¶

    GetJoystickFromID :: proc "c" (instance_id: JoystickID) -> ^Joystick ---

    GetJoystickFromPlayerIndex ¶

    GetJoystickFromPlayerIndex :: proc "c" (player_index: i32) -> ^Joystick ---

    GetJoystickGUID ¶

    GetJoystickGUID :: proc "c" (joystick: ^Joystick) -> GUID ---

    GetJoystickGUIDForID ¶

    GetJoystickGUIDForID :: proc "c" (instance_id: JoystickID) -> GUID ---

    GetJoystickGUIDInfo ¶

    GetJoystickGUIDInfo :: proc "c" (guid: GUID, vendor, product, version, crc16: ^u16) ---

    GetJoystickHat ¶

    GetJoystickHat :: proc "c" (joystick: ^Joystick, hat: i32) -> u8 ---

    GetJoystickID ¶

    GetJoystickID :: proc "c" (joystick: ^Joystick) -> JoystickID ---

    GetJoystickName ¶

    GetJoystickName :: proc "c" (joystick: ^Joystick) -> cstring ---

    GetJoystickNameForID ¶

    GetJoystickNameForID :: proc "c" (instance_id: JoystickID) -> cstring ---

    GetJoystickPath ¶

    GetJoystickPath :: proc "c" (joystick: ^Joystick) -> cstring ---

    GetJoystickPathForID ¶

    GetJoystickPathForID :: proc "c" (instance_id: JoystickID) -> cstring ---

    GetJoystickPlayerIndex ¶

    GetJoystickPlayerIndex :: proc "c" (joystick: ^Joystick) -> i32 ---

    GetJoystickPlayerIndexForID ¶

    GetJoystickPlayerIndexForID :: proc "c" (instance_id: JoystickID) -> i32 ---

    GetJoystickPowerInfo ¶

    GetJoystickPowerInfo :: proc "c" (joystick: ^Joystick, percent: i32) -> PowerState ---

    GetJoystickProduct ¶

    GetJoystickProduct :: proc "c" (joystick: ^Joystick) -> u16 ---

    GetJoystickProductForID ¶

    GetJoystickProductForID :: proc "c" (instance_id: JoystickID) -> u16 ---

    GetJoystickProductVersion ¶

    GetJoystickProductVersion :: proc "c" (joystick: ^Joystick) -> u16 ---

    GetJoystickProductVersionForID ¶

    GetJoystickProductVersionForID :: proc "c" (instance_id: JoystickID) -> u16 ---

    GetJoystickProperties ¶

    GetJoystickProperties :: proc "c" (joystick: ^Joystick) -> PropertiesID ---

    GetJoystickSerial ¶

    GetJoystickSerial :: proc "c" (joystick: ^Joystick) -> cstring ---

    GetJoystickType ¶

    GetJoystickType :: proc "c" (joystick: ^Joystick) -> JoystickType ---

    GetJoystickTypeForID ¶

    GetJoystickTypeForID :: proc "c" (instance_id: JoystickID) -> JoystickType ---

    GetJoystickVendor ¶

    GetJoystickVendor :: proc "c" (joystick: ^Joystick) -> u16 ---

    GetJoystickVendorForID ¶

    GetJoystickVendorForID :: proc "c" (instance_id: JoystickID) -> u16 ---

    GetJoysticks ¶

    GetJoysticks :: proc "c" (count: ^i32) -> [^]JoystickID ---

    GetKeyFromName ¶

    GetKeyFromName :: proc "c" (name: cstring) -> Keycode ---

    GetKeyFromScancode ¶

    GetKeyFromScancode :: proc "c" (scancode: Scancode, modstate: Keymod, key_event: bool) -> Keycode ---

    GetKeyName ¶

    GetKeyName :: proc "c" (key: Keycode) -> cstring ---

    GetKeyboardFocus ¶

    GetKeyboardFocus :: proc "c" () -> ^Window ---

    GetKeyboardNameForID ¶

    GetKeyboardNameForID :: proc "c" (instance_id: KeyboardID) -> cstring ---

    GetKeyboardState ¶

    GetKeyboardState :: proc "c" (numkeys: ^i32) -> [^]bool ---

    GetKeyboards ¶

    GetKeyboards :: proc "c" (count: ^i32) -> [^]KeyboardID ---

    GetLogOutputFunction ¶

    GetLogOutputFunction :: proc "c" (callback: ^LogOutputFunction, userdata: ^rawptr) ---

    GetLogPriority ¶

    GetLogPriority :: proc "c" (category: LogCategory) -> LogPriority ---

    GetMasksForPixelFormat ¶

    GetMasksForPixelFormat :: proc "c" (
    	format:              PixelFormat, 
    	bpp:                 ^i32, 
    	Rmask, Gmask, Bmask, 
    	Amask:               ^u32, 
    ) -> bool ---

    GetMaxHapticEffects ¶

    GetMaxHapticEffects :: proc "c" (haptic: ^Haptic) -> i32 ---

    GetMaxHapticEffectsPlaying ¶

    GetMaxHapticEffectsPlaying :: proc "c" (haptic: ^Haptic) -> i32 ---

    GetMemoryFunctions ¶

    GetMemoryFunctions :: proc "c" (malloc_func: ^malloc_func, calloc_func: ^calloc_func, realloc_func: ^realloc_func, free_func: ^free_func) ---

    GetMice ¶

    GetMice :: proc "c" (count: ^i32) -> [^]MouseID ---

    GetModState ¶

    GetModState :: proc "c" () -> Keymod ---

    GetMouseFocus ¶

    GetMouseFocus :: proc "c" () -> ^Window ---

    GetMouseNameForID ¶

    GetMouseNameForID :: proc "c" (instance_id: MouseID) -> cstring ---

    GetMouseState ¶

    GetMouseState :: proc "c" (x, y: ^f32) -> MouseButtonFlags ---

    GetNaturalDisplayOrientation ¶

    GetNaturalDisplayOrientation :: proc "c" (displayID: DisplayID) -> DisplayOrientation ---

    GetNumAllocations ¶

    GetNumAllocations :: proc "c" () -> i32 ---

    GetNumAudioDrivers ¶

    GetNumAudioDrivers :: proc "c" () -> i32 ---

    GetNumCameraDrivers ¶

    GetNumCameraDrivers :: proc "c" () -> i32 ---

    GetNumGPUDrivers ¶

    GetNumGPUDrivers :: proc "c" () -> i32 ---

    GetNumGamepadTouchpadFingers ¶

    GetNumGamepadTouchpadFingers :: proc "c" (gamepad: ^Gamepad, touchpad: i32) -> i32 ---

    GetNumGamepadTouchpads ¶

    GetNumGamepadTouchpads :: proc "c" (gamepad: ^Gamepad) -> i32 ---

    GetNumHapticAxes ¶

    GetNumHapticAxes :: proc "c" (haptic: ^Haptic) -> i32 ---

    GetNumJoystickAxes ¶

    GetNumJoystickAxes :: proc "c" (joystick: ^Joystick) -> i32 ---

    GetNumJoystickBalls ¶

    GetNumJoystickBalls :: proc "c" (joystick: ^Joystick) -> i32 ---

    GetNumJoystickButtons ¶

    GetNumJoystickButtons :: proc "c" (joystick: ^Joystick) -> i32 ---

    GetNumJoystickHats ¶

    GetNumJoystickHats :: proc "c" (joystick: ^Joystick) -> i32 ---

    GetNumLogicalCPUCores ¶

    GetNumLogicalCPUCores :: proc "c" () -> i32 ---

    GetNumRenderDrivers ¶

    GetNumRenderDrivers :: proc "c" () -> i32 ---

    GetNumVideoDrivers ¶

    GetNumVideoDrivers :: proc "c" () -> i32 ---

    GetNumberProperty ¶

    GetNumberProperty :: proc "c" (props: PropertiesID, name: cstring, default_value: i64) -> i64 ---

    GetOriginalMemoryFunctions ¶

    GetOriginalMemoryFunctions :: proc "c" (malloc_func: ^malloc_func, calloc_func: ^calloc_func, realloc_func: ^realloc_func, free_func: ^free_func) ---

    GetPathInfo ¶

    GetPathInfo :: proc "c" (path: cstring, info: ^PathInfo) -> bool ---

    GetPerformanceCounter ¶

    GetPerformanceCounter :: proc "c" () -> u64 ---

    GetPerformanceFrequency ¶

    GetPerformanceFrequency :: proc "c" () -> u64 ---

    GetPixelFormatDetails ¶

    GetPixelFormatDetails :: proc "c" (format: PixelFormat) -> ^PixelFormatDetails ---

    GetPixelFormatForMasks ¶

    GetPixelFormatForMasks :: proc "c" (bpp: i32, Rmask, Gmask, Bmask, Amask: u32) -> PixelFormat ---

    GetPixelFormatName ¶

    GetPixelFormatName :: proc "c" (format: PixelFormat) -> rawptr ---

    GetPlatform ¶

    GetPlatform :: proc "c" () -> cstring ---

    GetPointerProperty ¶

    GetPointerProperty :: proc "c" (props: PropertiesID, name: cstring, default_value: rawptr) -> rawptr ---

    GetPowerInfo ¶

    GetPowerInfo :: proc "c" (seconds: ^i32, percent: ^i32) -> PowerState ---

    GetPrefPath ¶

    GetPrefPath :: proc "c" (org, app: cstring) -> [^]u8 ---

    GetPreferredLocales ¶

    GetPreferredLocales :: proc "c" (count: ^i32) -> [^]^Locale ---

    GetPrimaryDisplay ¶

    GetPrimaryDisplay :: proc "c" () -> DisplayID ---

    GetPrimarySelectionText ¶

    GetPrimarySelectionText :: proc "c" () -> [^]u8 ---

    GetProcessInput ¶

    GetProcessInput :: proc "c" (process: ^Process) -> ^IOStream ---

    GetProcessOutput ¶

    GetProcessOutput :: proc "c" (process: ^Process) -> ^IOStream ---

    GetProcessProperties ¶

    GetProcessProperties :: proc "c" (process: ^Process) -> PropertiesID ---

    GetPropertyType ¶

    GetPropertyType :: proc "c" (props: PropertiesID, name: cstring) -> PropertyType ---

    GetRGB ¶

    GetRGB :: proc "c" (
    	pixel:   u32, 
    	format:  ^PixelFormatDetails, 
    	palette: ^Palette, 
    	r, g, 
    	b:       ^u8, 
    ) ---

    GetRGBA ¶

    GetRGBA :: proc "c" (
    	pixel:   u32, 
    	format:  ^PixelFormatDetails, 
    	palette: ^Palette, 
    	r, g, b, 
    	a:       ^u8, 
    ) ---

    GetRealGamepadType ¶

    GetRealGamepadType :: proc "c" (gamepad: ^Gamepad) -> GamepadType ---

    GetRealGamepadTypeForID ¶

    GetRealGamepadTypeForID :: proc "c" (instance_id: JoystickID) -> GamepadType ---

    GetRectAndLineIntersection ¶

    GetRectAndLineIntersection :: proc "c" (#by_ptr rect: Rect, X1, Y1, X2, Y2: ^i32) -> bool ---

    GetRectAndLineIntersectionFloat ¶

    GetRectAndLineIntersectionFloat :: proc "c" (#by_ptr rect: FRect, X1, Y1, X2, Y2: ^f32) -> bool ---

    GetRectEnclosingPoints ¶

    GetRectEnclosingPoints :: proc "c" (points: [^]Point, count: i32, #by_ptr clip: Rect, result: ^Rect) -> bool ---

    GetRectEnclosingPointsFloat ¶

    GetRectEnclosingPointsFloat :: proc "c" (points: [^]FPoint, count: i32, #by_ptr clip: FRect, result: ^FRect) -> bool ---

    GetRectIntersection ¶

    GetRectIntersection :: proc "c" (#by_ptr A, #by_ptr B: Rect, result: ^Rect) -> bool ---

    GetRectIntersectionFloat ¶

    GetRectIntersectionFloat :: proc "c" (#by_ptr A, #by_ptr B: FRect, result: ^FRect) -> bool ---

    GetRectUnion ¶

    GetRectUnion :: proc "c" (#by_ptr A, #by_ptr B: Rect, result: ^Rect) -> bool ---

    GetRectUnionFloat ¶

    GetRectUnionFloat :: proc "c" (#by_ptr A, #by_ptr B: FRect, result: ^FRect) -> bool ---

    GetRelativeMouseState ¶

    GetRelativeMouseState :: proc "c" (x, y: ^f32) -> MouseButtonFlags ---

    GetRenderClipRect ¶

    GetRenderClipRect :: proc "c" (renderer: ^Renderer, rect: ^Rect) -> bool ---

    GetRenderColorScale ¶

    GetRenderColorScale :: proc "c" (renderer: ^Renderer, scale: ^f32) -> bool ---

    GetRenderDrawBlendMode ¶

    GetRenderDrawBlendMode :: proc "c" (renderer: ^Renderer, blendMode: ^BlendMode) -> bool ---

    GetRenderDrawColor ¶

    GetRenderDrawColor :: proc "c" (renderer: ^Renderer, r, g, b, a: ^u8) -> bool ---

    GetRenderDrawColorFloat ¶

    GetRenderDrawColorFloat :: proc "c" (renderer: ^Renderer, r, g, b, a: ^f32) -> bool ---

    GetRenderDriver ¶

    GetRenderDriver :: proc "c" (index: i32) -> cstring ---

    GetRenderLogicalPresentation ¶

    GetRenderLogicalPresentation :: proc "c" (renderer: ^Renderer, w, h: ^i32, mode: ^RendererLogicalPresentation) -> bool ---

    GetRenderLogicalPresentationRect ¶

    GetRenderLogicalPresentationRect :: proc "c" (renderer: ^Renderer, rect: ^FRect) -> bool ---

    GetRenderMetalCommandEncoder ¶

    GetRenderMetalCommandEncoder :: proc "c" (renderer: ^Renderer) -> rawptr ---

    GetRenderMetalLayer ¶

    GetRenderMetalLayer :: proc "c" (renderer: ^Renderer) -> rawptr ---

    GetRenderOutputSize ¶

    GetRenderOutputSize :: proc "c" (renderer: ^Renderer, w, h: ^i32) -> bool ---

    GetRenderSafeArea ¶

    GetRenderSafeArea :: proc "c" (renderer: ^Renderer, rect: ^Rect) -> bool ---

    GetRenderScale ¶

    GetRenderScale :: proc "c" (renderer: ^Renderer, scaleX, scaleY: ^f32) -> bool ---

    GetRenderTarget ¶

    GetRenderTarget :: proc "c" (renderer: ^Renderer) -> runtime.Maybe($T=^Texture) ---

    GetRenderVSync ¶

    GetRenderVSync :: proc "c" (renderer: ^Renderer, vsync: ^i32) -> bool ---

    GetRenderViewport ¶

    GetRenderViewport :: proc "c" (renderer: ^Renderer, rect: ^Rect) -> bool ---

    GetRenderWindow ¶

    GetRenderWindow :: proc "c" (renderer: ^Renderer) -> ^Window ---

    GetRenderer ¶

    GetRenderer :: proc "c" (window: ^Window) -> ^Renderer ---

    GetRendererFromTexture ¶

    GetRendererFromTexture :: proc "c" (texture: ^Texture) -> ^Renderer ---

    GetRendererName ¶

    GetRendererName :: proc "c" (renderer: ^Renderer) -> cstring ---

    GetRendererProperties ¶

    GetRendererProperties :: proc "c" (renderer: ^Renderer) -> PropertiesID ---

    GetRevision ¶

    GetRevision :: proc "c" () -> cstring ---

    GetSIMDAlignment ¶

    GetSIMDAlignment :: proc "c" () -> uint ---

    GetSandbox ¶

    GetSandbox :: proc "c" () -> Sandbox ---

    GetScancodeFromKey ¶

    GetScancodeFromKey :: proc "c" (key: Keycode, modstate: ^Keymod) -> Scancode ---

    GetScancodeFromName ¶

    GetScancodeFromName :: proc "c" (name: cstring) -> Scancode ---

    GetScancodeName ¶

    GetScancodeName :: proc "c" (scancode: Scancode) -> cstring ---

    GetSensorData ¶

    GetSensorData :: proc "c" (sensor: ^Sensor, data: [^]f32, num_values: i32) -> bool ---

    GetSensorFromID ¶

    GetSensorFromID :: proc "c" (instance_id: SensorID) -> ^Sensor ---

    GetSensorID ¶

    GetSensorID :: proc "c" (sensor: ^Sensor) -> SensorID ---

    GetSensorName ¶

    GetSensorName :: proc "c" (sensor: ^Sensor) -> cstring ---

    GetSensorNameForID ¶

    GetSensorNameForID :: proc "c" (instance_id: SensorID) -> cstring ---

    GetSensorNonPortableType ¶

    GetSensorNonPortableType :: proc "c" (sensor: ^Sensor) -> i32 ---

    GetSensorNonPortableTypeForID ¶

    GetSensorNonPortableTypeForID :: proc "c" (instance_id: SensorID) -> i32 ---

    GetSensorProperties ¶

    GetSensorProperties :: proc "c" (sensor: ^Sensor) -> PropertiesID ---

    GetSensorType ¶

    GetSensorType :: proc "c" (sensor: ^Sensor) -> SensorType ---

    GetSensorTypeForID ¶

    GetSensorTypeForID :: proc "c" (instance_id: SensorID) -> SensorType ---

    GetSensors ¶

    GetSensors :: proc "c" (count: ^i32) -> [^]SensorID ---

    GetSilenceValueForFormat ¶

    GetSilenceValueForFormat :: proc "c" (format: AudioFormat) -> i32 ---

    GetStorageFileSize ¶

    GetStorageFileSize :: proc "c" (storage: ^Storage, path: cstring, length: ^u64) -> bool ---

    GetStoragePathInfo ¶

    GetStoragePathInfo :: proc "c" (storage: ^Storage, path: cstring, info: ^PathInfo) -> bool ---

    GetStorageSpaceRemaining ¶

    GetStorageSpaceRemaining :: proc "c" (storage: ^Storage) -> u64 ---

    GetStringProperty ¶

    GetStringProperty :: proc "c" (props: PropertiesID, name: cstring, default_value: cstring) -> cstring ---

    GetSurfaceAlphaMod ¶

    GetSurfaceAlphaMod :: proc "c" (surface: ^Surface, alpha: ^u8) -> bool ---

    GetSurfaceBlendMode ¶

    GetSurfaceBlendMode :: proc "c" (surface: ^Surface, blendMode: ^BlendMode) -> bool ---

    GetSurfaceClipRect ¶

    GetSurfaceClipRect :: proc "c" (surface: ^Surface, rect: ^Rect) -> bool ---

    GetSurfaceColorKey ¶

    GetSurfaceColorKey :: proc "c" (surface: ^Surface, key: ^u32) -> bool ---

    GetSurfaceColorMod ¶

    GetSurfaceColorMod :: proc "c" (surface: ^Surface, r, g, b: ^u8) -> bool ---

    GetSurfaceColorspace ¶

    GetSurfaceColorspace :: proc "c" (surface: ^Surface) -> Colorspace ---

    GetSurfaceImages ¶

    GetSurfaceImages :: proc "c" (surface: ^Surface, count: ^i32) -> [^]^Surface ---

    GetSurfacePalette ¶

    GetSurfacePalette :: proc "c" (surface: ^Surface) -> ^Palette ---

    GetSurfaceProperties ¶

    GetSurfaceProperties :: proc "c" (surface: ^Surface) -> PropertiesID ---

    GetSystemRAM ¶

    GetSystemRAM :: proc "c" () -> i32 ---

    GetSystemTheme ¶

    GetSystemTheme :: proc "c" () -> SystemTheme ---

    GetTLS ¶

    GetTLS :: proc "c" (id: ^AtomicInt) -> rawptr ---

    GetTextInputArea ¶

    GetTextInputArea :: proc "c" (window: ^Window, rect: ^Rect, cursor: ^i32) -> bool ---

    GetTextureAlphaMod ¶

    GetTextureAlphaMod :: proc "c" (texture: ^Texture, alpha: ^u8) -> bool ---

    GetTextureAlphaModFloat ¶

    GetTextureAlphaModFloat :: proc "c" (texture: ^Texture, alpha: ^f32) -> bool ---

    GetTextureBlendMode ¶

    GetTextureBlendMode :: proc "c" (texture: ^Texture, blendMode: ^BlendMode) -> bool ---

    GetTextureColorMod ¶

    GetTextureColorMod :: proc "c" (texture: ^Texture, r, g, b: ^u8) -> bool ---

    GetTextureColorModFloat ¶

    GetTextureColorModFloat :: proc "c" (texture: ^Texture, r, g, b: ^f32) -> bool ---

    GetTextureProperties ¶

    GetTextureProperties :: proc "c" (texture: ^Texture) -> PropertiesID ---

    GetTextureScaleMode ¶

    GetTextureScaleMode :: proc "c" (texture: ^Texture, scaleMode: ^ScaleMode) -> bool ---

    GetTextureSize ¶

    GetTextureSize :: proc "c" (texture: ^Texture, w, h: ^f32) -> bool ---

    GetThreadID ¶

    GetThreadID :: proc "c" (thread: ^Thread) -> ThreadID ---

    GetThreadName ¶

    GetThreadName :: proc "c" (thread: ^Thread) -> cstring ---

    GetThreadState ¶

    GetThreadState :: proc "c" (thread: ^Thread) -> ThreadState ---

    GetTicks ¶

    GetTicks :: proc "c" () -> u64 ---

    GetTicksNS ¶

    GetTicksNS :: proc "c" () -> u64 ---

    GetTouchDeviceName ¶

    GetTouchDeviceName :: proc "c" (touchID: TouchID) -> cstring ---

    GetTouchDeviceType ¶

    GetTouchDeviceType :: proc "c" (touchID: TouchID) -> TouchDeviceType ---

    GetTouchDevices ¶

    GetTouchDevices :: proc "c" (count: ^i32) -> [^]TouchID ---

    GetTouchFingers ¶

    GetTouchFingers :: proc "c" (touchID: TouchID, count: ^i32) -> [^]^Finger ---

    GetTrayEntries ¶

    GetTrayEntries :: proc "c" (menu: ^TrayMenu, size: ^i32) -> [^]^TrayEntry ---

    GetTrayEntryChecked ¶

    GetTrayEntryChecked :: proc "c" (entry: ^TrayEntry) -> bool ---

    GetTrayEntryEnabled ¶

    GetTrayEntryEnabled :: proc "c" (entry: ^TrayEntry) -> bool ---

    GetTrayEntryLabel ¶

    GetTrayEntryLabel :: proc "c" (entry: ^TrayEntry) -> cstring ---

    GetTrayEntryParent ¶

    GetTrayEntryParent :: proc "c" (entry: ^TrayEntry) -> ^TrayMenu ---

    GetTrayMenu ¶

    GetTrayMenu :: proc "c" (tray: ^Tray) -> TrayMenu ---

    GetTrayMenuParentEntry ¶

    GetTrayMenuParentEntry :: proc "c" (menu: ^TrayMenu) -> ^TrayEntry ---

    GetTrayMenuParentTray ¶

    GetTrayMenuParentTray :: proc "c" (menu: ^TrayMenu) -> ^Tray ---

    GetTraySubmenu ¶

    GetTraySubmenu :: proc "c" (entry: ^TrayEntry) -> ^TrayMenu ---

    GetUserFolder ¶

    GetUserFolder :: proc "c" (folder: Folder) -> cstring ---

    GetVersion ¶

    GetVersion :: proc "c" () -> i32 ---

    GetVideoDriver ¶

    GetVideoDriver :: proc "c" (index: i32) -> cstring ---

    GetWindowAspectRatio ¶

    GetWindowAspectRatio :: proc "c" (window: ^Window, min_aspect, max_aspect: ^f32) -> bool ---

    GetWindowBordersSize ¶

    GetWindowBordersSize :: proc "c" (window: ^Window, top, left, bottom, right: ^i32) -> bool ---

    GetWindowDisplayScale ¶

    GetWindowDisplayScale :: proc "c" (window: ^Window) -> f32 ---

    GetWindowFlags ¶

    GetWindowFlags :: proc "c" (window: ^Window) -> WindowFlags ---

    GetWindowFromEvent ¶

    GetWindowFromEvent :: proc "c" (#by_ptr event: Event) -> ^Window ---

    GetWindowFromID ¶

    GetWindowFromID :: proc "c" (id: WindowID) -> ^Window ---

    GetWindowFullscreenMode ¶

    GetWindowFullscreenMode :: proc "c" (window: ^Window) -> ^DisplayMode ---

    GetWindowICCProfile ¶

    GetWindowICCProfile :: proc "c" (window: ^Window, size: ^uint) -> rawptr ---

    GetWindowID ¶

    GetWindowID :: proc "c" (window: ^Window) -> WindowID ---

    GetWindowKeyboardGrab ¶

    GetWindowKeyboardGrab :: proc "c" (window: ^Window) -> bool ---

    GetWindowMaximumSize ¶

    GetWindowMaximumSize :: proc "c" (window: ^Window, w, h: ^i32) -> bool ---

    GetWindowMinimumSize ¶

    GetWindowMinimumSize :: proc "c" (window: ^Window, w, h: ^i32) -> bool ---

    GetWindowMouseGrab ¶

    GetWindowMouseGrab :: proc "c" (window: ^Window) -> bool ---

    GetWindowMouseRect ¶

    GetWindowMouseRect :: proc "c" (window: ^Window) -> ^Rect ---

    GetWindowOpacity ¶

    GetWindowOpacity :: proc "c" (window: ^Window) -> f32 ---

    GetWindowParent ¶

    GetWindowParent :: proc "c" (window: ^Window) -> ^Window ---

    GetWindowPixelDensity ¶

    GetWindowPixelDensity :: proc "c" (window: ^Window) -> f32 ---

    GetWindowPixelFormat ¶

    GetWindowPixelFormat :: proc "c" (window: ^Window) -> PixelFormat ---

    GetWindowPosition ¶

    GetWindowPosition :: proc "c" (window: ^Window, x, y: ^i32) -> bool ---

    GetWindowProperties ¶

    GetWindowProperties :: proc "c" (window: ^Window) -> PropertiesID ---

    GetWindowRelativeMouseMode ¶

    GetWindowRelativeMouseMode :: proc "c" (window: ^Window) -> bool ---

    GetWindowSafeArea ¶

    GetWindowSafeArea :: proc "c" (window: ^Window, rect: ^Rect) -> bool ---

    GetWindowSize ¶

    GetWindowSize :: proc "c" (window: ^Window, w, h: ^i32) -> bool ---

    GetWindowSizeInPixels ¶

    GetWindowSizeInPixels :: proc "c" (window: ^Window, w, h: ^i32) -> bool ---

    GetWindowSurface ¶

    GetWindowSurface :: proc "c" (window: ^Window) -> ^Surface ---

    GetWindowSurfaceVSync ¶

    GetWindowSurfaceVSync :: proc "c" (window: ^Window, vsync: ^i32) -> bool ---

    GetWindowTitle ¶

    GetWindowTitle :: proc "c" (window: ^Window) -> cstring ---

    GetWindows ¶

    GetWindows :: proc "c" (count: ^i32) -> [^]^Window ---

    GlobDirectory ¶

    GlobDirectory :: proc "c" (path: cstring, pattern: cstring, flags: GlobFlags, count: ^i32) -> [^][^]u8 ---

    GlobStorageDirectory ¶

    GlobStorageDirectory :: proc "c" (storage: ^Storage, path: cstring, pattern: cstring, flags: GlobFlags, count: ^i32) -> [^][^]u8 ---

    HapticEffectSupported ¶

    HapticEffectSupported :: proc "c" (haptic: ^Haptic, #by_ptr effect: HapticEffect) -> bool ---

    HapticRumbleSupported ¶

    HapticRumbleSupported :: proc "c" (haptic: ^Haptic) -> bool ---

    HasARMSIMD ¶

    HasARMSIMD :: proc "c" () -> bool ---

    HasAVX ¶

    HasAVX :: proc "c" () -> bool ---

    HasAVX2 ¶

    HasAVX2 :: proc "c" () -> bool ---

    HasAVX512F ¶

    HasAVX512F :: proc "c" () -> bool ---

    HasAltiVec ¶

    HasAltiVec :: proc "c" () -> bool ---

    HasClipboardData ¶

    HasClipboardData :: proc "c" (mime_type: cstring) -> bool ---

    HasClipboardText ¶

    HasClipboardText :: proc "c" () -> bool ---

    HasEvent ¶

    HasEvent :: proc "c" (type: EventType) -> bool ---

    HasEvents ¶

    HasEvents :: proc "c" (minType, maxType: EventType) -> bool ---

    HasExactlyOneBitSet32 ¶

    HasExactlyOneBitSet32 :: proc "c" (x: u32) -> bool {…}

    HasGamepad ¶

    HasGamepad :: proc "c" () -> bool ---

    HasJoystick ¶

    HasJoystick :: proc "c" () -> bool ---

    HasKeyboard ¶

    HasKeyboard :: proc "c" () -> bool ---

    HasLASX ¶

    HasLASX :: proc "c" () -> bool ---

    HasLSX ¶

    HasLSX :: proc "c" () -> bool ---

    HasMMX ¶

    HasMMX :: proc "c" () -> bool ---

    HasMouse ¶

    HasMouse :: proc "c" () -> bool ---

    HasNEON ¶

    HasNEON :: proc "c" () -> bool ---

    HasPrimarySelectionText ¶

    HasPrimarySelectionText :: proc "c" () -> bool ---

    HasProperty ¶

    HasProperty :: proc "c" (props: PropertiesID, name: cstring) -> bool ---

    HasRectIntersection ¶

    HasRectIntersection :: proc "c" (#by_ptr A, #by_ptr B: Rect) -> bool ---

    HasRectIntersectionFloat ¶

    HasRectIntersectionFloat :: proc "c" (#by_ptr A, #by_ptr B: FRect) -> bool ---

    HasSSE ¶

    HasSSE :: proc "c" () -> bool ---

    HasSSE2 ¶

    HasSSE2 :: proc "c" () -> bool ---

    HasSSE3 ¶

    HasSSE3 :: proc "c" () -> bool ---

    HasSSE41 ¶

    HasSSE41 :: proc "c" () -> bool ---

    HasSSE42 ¶

    HasSSE42 :: proc "c" () -> bool ---

    HasScreenKeyboardSupport ¶

    HasScreenKeyboardSupport :: proc "c" () -> bool ---

    HideCursor ¶

    HideCursor :: proc "c" () -> bool ---

    HideWindow ¶

    HideWindow :: proc "c" (window: ^Window) -> bool ---

    INIT_INTERFACE ¶

    INIT_INTERFACE :: proc "contextless" (iface: ^$T) {…}

    IOFromConstMem ¶

    IOFromConstMem :: proc "c" (mem: rawptr, size: uint) -> ^IOStream ---

    IOFromDynamicMem ¶

    IOFromDynamicMem :: proc "c" () -> ^IOStream ---

    IOFromFile ¶

    IOFromFile :: proc "c" (file: cstring, mode: cstring) -> ^IOStream ---

    IOFromMem ¶

    IOFromMem :: proc "c" (mem: rawptr, size: uint) -> ^IOStream ---

    IOprintf ¶

    IOprintf :: proc "c" (ctx: ^IOStream, fmt: cstring, .. args: ..any) -> uint ---

    IOvprintf ¶

    IOvprintf :: proc "c" (ctx: ^IOStream, fmt: cstring, ap: c.va_list) -> uint ---

    ISCOLORSPACE_FULL_RANGE ¶

    ISCOLORSPACE_FULL_RANGE :: proc "c" (cspace: Colorspace) -> bool {…}

    ISCOLORSPACE_LIMITED_RANGE ¶

    ISCOLORSPACE_LIMITED_RANGE :: proc "c" (cspace: Colorspace) -> bool {…}

    ISCOLORSPACE_MATRIX_BT2020_NCL ¶

    ISCOLORSPACE_MATRIX_BT2020_NCL :: proc "c" (cspace: Colorspace) -> bool {…}

    ISCOLORSPACE_MATRIX_BT601 ¶

    ISCOLORSPACE_MATRIX_BT601 :: proc "c" (cspace: Colorspace) -> bool {…}

    ISCOLORSPACE_MATRIX_BT709 ¶

    ISCOLORSPACE_MATRIX_BT709 :: proc "c" (cspace: Colorspace) -> bool {…}

    ISPIXELFORMAT_10BIT ¶

    ISPIXELFORMAT_10BIT :: proc "c" (format: PixelFormat) -> bool {…}

    ISPIXELFORMAT_ALPHA ¶

    ISPIXELFORMAT_ALPHA :: proc "c" (format: PixelFormat) -> bool {…}

    ISPIXELFORMAT_ARRAY ¶

    ISPIXELFORMAT_ARRAY :: proc "c" (format: PixelFormat) -> bool {…}

    ISPIXELFORMAT_FLOAT ¶

    ISPIXELFORMAT_FLOAT :: proc "c" (format: PixelFormat) -> bool {…}

    ISPIXELFORMAT_FOURCC ¶

    ISPIXELFORMAT_FOURCC :: proc "c" (format: PixelFormat) -> bool {…}

    ISPIXELFORMAT_INDEXED ¶

    ISPIXELFORMAT_INDEXED :: proc "c" (format: PixelFormat) -> bool {…}

    ISPIXELFORMAT_PACKED ¶

    ISPIXELFORMAT_PACKED :: proc "c" (format: PixelFormat) -> bool {…}

    Init ¶

    Init :: proc "c" (flags: InitFlags) -> bool ---

    InitHapticRumble ¶

    InitHapticRumble :: proc "c" (haptic: ^Haptic) -> bool ---

    InitSubSystem ¶

    InitSubSystem :: proc "c" (flags: InitFlags) -> bool ---

    InsertGPUDebugLabel ¶

    InsertGPUDebugLabel :: proc "c" (command_buffer: ^GPUCommandBuffer, text: cstring) ---

    InsertTrayEntryAt ¶

    InsertTrayEntryAt :: proc "c" (menu: ^TrayMenu, pos: i32, label: cstring, flags: TrayEntryFlags) -> ^TrayEntry ---

    InvalidParamError ¶

    InvalidParamError :: proc "c" (param: cstring) -> bool {…}

    IsAudioDevicePhysical ¶

    IsAudioDevicePhysical :: proc "c" (devid: AudioDeviceID) -> bool ---

    IsAudioDevicePlayback ¶

    IsAudioDevicePlayback :: proc "c" (devid: AudioDeviceID) -> bool ---

    IsChromebook ¶

    IsChromebook :: proc "c" () -> bool ---

    IsDeXMode ¶

    IsDeXMode :: proc "c" () -> bool ---

    IsGamepad ¶

    IsGamepad :: proc "c" (instance_id: JoystickID) -> bool ---

    IsJoystickHaptic ¶

    IsJoystickHaptic :: proc "c" (joystick: ^Joystick) -> bool ---

    IsJoystickVirtual ¶

    IsJoystickVirtual :: proc "c" (instance_id: JoystickID) -> bool ---

    IsMainThread ¶

    IsMainThread :: proc "c" () -> bool ---

    IsMouseHaptic ¶

    IsMouseHaptic :: proc "c" () -> bool ---

    IsTV ¶

    IsTV :: proc "c" () -> bool ---

    IsTablet ¶

    IsTablet :: proc "c" () -> bool ---

    JoystickConnected ¶

    JoystickConnected :: proc "c" (joystick: ^Joystick) -> bool ---

    JoystickEventsEnabled ¶

    JoystickEventsEnabled :: proc "c" () -> bool ---

    KillProcess ¶

    KillProcess :: proc "c" (process: ^Process, force: bool) -> bool ---

    LoadBMP ¶

    LoadBMP :: proc "c" (file: cstring) -> ^Surface ---

    LoadBMP_IO ¶

    LoadBMP_IO :: proc "c" (src: ^IOStream, closeio: bool) -> ^Surface ---

    LoadFile ¶

    LoadFile :: proc "c" (file: cstring, datasize: ^uint) -> rawptr ---

    LoadFileAsync ¶

    LoadFileAsync :: proc "c" (file: cstring, queue: ^AsyncIOQueue, userdata: rawptr) -> bool ---

    LoadFile_IO ¶

    LoadFile_IO :: proc "c" (src: ^IOStream, datasize: ^uint, closeio: bool) -> rawptr ---

    LoadFunction ¶

    LoadFunction :: proc "c" (handle: ^SharedObject, name: cstring) -> FunctionPointer ---

    LoadObject ¶

    LoadObject :: proc "c" (sofile: cstring) -> ^SharedObject ---

    LoadWAV ¶

    LoadWAV :: proc "c" (path: cstring, spec: ^AudioSpec, audio_buf: ^[^]u8, audio_len: ^u32) -> bool ---

    LoadWAV_IO ¶

    LoadWAV_IO :: proc "c" (src: ^IOStream, closeio: bool, spec: ^AudioSpec, audio_buf: ^[^]u8, audio_len: ^u32) -> bool ---

    LockAudioStream ¶

    LockAudioStream :: proc "c" (stream: ^AudioStream) -> bool ---

    LockJoysticks ¶

    LockJoysticks :: proc "c" () ---

    LockMutex ¶

    LockMutex :: proc "c" (mutex: ^Mutex) ---

    LockProperties ¶

    LockProperties :: proc "c" (props: PropertiesID) -> bool ---

    LockRWLockForReading ¶

    LockRWLockForReading :: proc "c" (rwlock: ^RWLock) ---

    LockRWLockForWriting ¶

    LockRWLockForWriting :: proc "c" (rwlock: ^RWLock) ---

    LockSpinlock ¶

    LockSpinlock :: proc "c" (lock: ^SpinLock) ---

    LockSurface ¶

    LockSurface :: proc "c" (surface: ^Surface) -> bool ---

    LockTexture ¶

    LockTexture :: proc "c" (texture: ^Texture, rect: runtime.Maybe($T=^Rect), pixels: ^rawptr, pitch: ^i32) -> bool ---

    LockTextureToSurface ¶

    LockTextureToSurface :: proc "c" (texture: ^Texture, rect: runtime.Maybe($T=^Rect), surface: ^^Surface) -> bool ---

    Log ¶

    Log :: proc "c" (fmt: cstring, .. args: ..any) ---

    LogCritical ¶

    LogCritical :: proc "c" (category: i32, fmt: cstring, .. args: ..any) ---

    LogDebug ¶

    LogDebug :: proc "c" (category: i32, fmt: cstring, .. args: ..any) ---

    LogError ¶

    LogError :: proc "c" (category: i32, fmt: cstring, .. args: ..any) ---

    LogInfo ¶

    LogInfo :: proc "c" (category: i32, fmt: cstring, .. args: ..any) ---

    LogMessage ¶

    LogMessage :: proc "c" (category: i32, priority: LogPriority, fmt: cstring, .. args: ..any) ---

    LogMessageV ¶

    LogMessageV :: proc "c" (category: i32, priority: LogPriority, fmt: cstring, ap: c.va_list) ---

    LogTrace ¶

    LogTrace :: proc "c" (category: i32, fmt: cstring, .. args: ..any) ---

    LogVerbose ¶

    LogVerbose :: proc "c" (category: i32, fmt: cstring, .. args: ..any) ---

    LogWarn ¶

    LogWarn :: proc "c" (category: i32, fmt: cstring, .. args: ..any) ---

    MS_TO_NS ¶

    MS_TO_NS :: proc "c" (MS: u64) -> u64 {…}

    MUSTLOCK ¶

    MUSTLOCK :: proc "c" (S: ^Surface) -> bool {…}

    MapGPUTransferBuffer ¶

    MapGPUTransferBuffer :: proc "c" (device: ^GPUDevice, transfer_buffer: ^GPUTransferBuffer, cycle: bool) -> rawptr ---

    MapRGB ¶

    MapRGB :: proc "c" (format: ^PixelFormatDetails, palette: ^Palette, r, g, b: u8) -> u32 ---

    MapRGBA ¶

    MapRGBA :: proc "c" (
    	format:  ^PixelFormatDetails, 
    	palette: ^Palette, 
    	r, g, b, 
    	a:       u8, 
    ) -> u32 ---

    MapSurfaceRGB ¶

    MapSurfaceRGB :: proc "c" (surface: ^Surface, r, g, b: u8) -> u32 ---

    MapSurfaceRGBA ¶

    MapSurfaceRGBA :: proc "c" (surface: ^Surface, r, g, b, a: u8) -> u32 ---

    MaximizeWindow ¶

    MaximizeWindow :: proc "c" (window: ^Window) -> bool ---

    MemoryBarrierAcquireFunction ¶

    MemoryBarrierAcquireFunction :: proc "c" () ---

    MemoryBarrierReleaseFunction ¶

    MemoryBarrierReleaseFunction :: proc "c" () ---

    Metal_CreateView ¶

    Metal_CreateView :: proc "c" (window: ^Window) -> MetalView ---

    Metal_DestroyView ¶

    Metal_DestroyView :: proc "c" (view: MetalView) ---

    Metal_GetLayer ¶

    Metal_GetLayer :: proc "c" (view: MetalView) -> rawptr ---

    MinimizeWindow ¶

    MinimizeWindow :: proc "c" (window: ^Window) -> bool ---

    MixAudio ¶

    MixAudio :: proc "c" (dst, src: [^]u8, format: AudioFormat, len: u32, volume: f32) -> bool ---

    MostSignificantBitIndex32 ¶

    MostSignificantBitIndex32 :: proc "c" (x: u32) -> i32 {…}

    NS_TO_MS ¶

    NS_TO_MS :: proc "c" (NS: u64) -> u64 {…}

    NS_TO_SECONDS ¶

    NS_TO_SECONDS :: proc "c" (NS: u64) -> u64 {…}

    NS_TO_US ¶

    NS_TO_US :: proc "c" (NS: u64) -> u64 {…}

    OnApplicationDidChangeStatusBarOrientation ¶

    OnApplicationDidChangeStatusBarOrientation :: proc "c" () ---

    OnApplicationDidEnterBackground ¶

    OnApplicationDidEnterBackground :: proc "c" () ---

    OnApplicationDidEnterForeground ¶

    OnApplicationDidEnterForeground :: proc "c" () ---

    OnApplicationDidReceiveMemoryWarning ¶

    OnApplicationDidReceiveMemoryWarning :: proc "c" () ---

    OnApplicationWillEnterBackground ¶

    OnApplicationWillEnterBackground :: proc "c" () ---

    OnApplicationWillEnterForeground ¶

    OnApplicationWillEnterForeground :: proc "c" () ---

    OnApplicationWillTerminate ¶

    OnApplicationWillTerminate :: proc "c" () ---

    OpenAudioDevice ¶

    OpenAudioDevice :: proc "c" (devid: AudioDeviceID, spec: ^AudioSpec) -> AudioDeviceID ---

    OpenAudioDeviceStream ¶

    OpenAudioDeviceStream :: proc "c" (devid: AudioDeviceID, spec: ^AudioSpec, callback: AudioStreamCallback, userdata: rawptr) -> ^AudioStream ---

    OpenCamera ¶

    OpenCamera :: proc "c" (instance_id: CameraID, spec: ^CameraSpec) -> ^Camera ---

    OpenFileStorage ¶

    OpenFileStorage :: proc "c" (path: cstring) -> ^Storage ---

    OpenGamepad ¶

    OpenGamepad :: proc "c" (instance_id: JoystickID) -> ^Gamepad ---

    OpenHaptic ¶

    OpenHaptic :: proc "c" (instance_id: HapticID) -> ^Haptic ---

    OpenHapticFromJoystick ¶

    OpenHapticFromJoystick :: proc "c" (joystick: ^Joystick) -> ^Haptic ---

    OpenHapticFromMouse ¶

    OpenHapticFromMouse :: proc "c" () -> ^Haptic ---

    OpenIO ¶

    OpenIO :: proc "c" (iface: ^IOStreamInterface, userdata: rawptr) -> ^IOStream ---

    OpenJoystick ¶

    OpenJoystick :: proc "c" (instance_id: JoystickID) -> ^Joystick ---

    OpenSensor ¶

    OpenSensor :: proc "c" (instance_id: SensorID) -> ^Sensor ---

    OpenStorage ¶

    OpenStorage :: proc "c" (iface: ^StorageInterface, userdata: rawptr) -> ^Storage ---

    OpenTitleStorage ¶

    OpenTitleStorage :: proc "c" (override: cstring, props: PropertiesID) -> ^Storage ---

    OpenURL ¶

    OpenURL :: proc "c" (url: cstring) -> bool ---

    OpenUserStorage ¶

    OpenUserStorage :: proc "c" (org, app: cstring, props: PropertiesID) -> ^Storage ---

    OutOfMemory ¶

    OutOfMemory :: proc "c" () -> bool ---

    PIXELARRAYORDER ¶

    PIXELARRAYORDER :: proc "c" (format: PixelFormat) -> ArrayOrder {…}

    PIXELFLAG ¶

    PIXELFLAG :: proc "c" (format: PixelFormat) -> u32 {…}

    PIXELLAYOUT ¶

    PIXELLAYOUT :: proc "c" (format: PixelFormat) -> PackedLayout {…}

    PIXELORDER ¶

    PIXELORDER :: proc "c" (format: PixelFormat) -> PackedOrder {…}

    PIXELTYPE ¶

    PIXELTYPE :: proc "c" (format: PixelFormat) -> PixelType {…}

    PauseAudioDevice ¶

    PauseAudioDevice :: proc "c" (dev: AudioDeviceID) -> bool ---

    PauseAudioStreamDevice ¶

    PauseAudioStreamDevice :: proc "c" (stream: ^AudioStream) -> bool ---

    PauseHaptic ¶

    PauseHaptic :: proc "c" (haptic: ^Haptic) -> bool ---

    PeepEvents ¶

    PeepEvents :: proc "c" (events: [^]Event, numevents: i32, action: EventAction, minType, maxType: EventType) -> int ---

    PlayHapticRumble ¶

    PlayHapticRumble :: proc "c" (haptic: ^Haptic, strength: f32, length: u32) -> bool ---

    PointInRect ¶

    PointInRect :: proc "c" (p: Point, r: Rect) -> bool {…}

    PollEvent ¶

    PollEvent :: proc "c" (event: ^Event) -> bool ---

    PopGPUDebugGroup ¶

    PopGPUDebugGroup :: proc "c" (command_buffer: ^GPUCommandBuffer) ---

    PremultiplyAlpha ¶

    PremultiplyAlpha :: proc "c" (
    	width, height: i32, 
    	src_format:    PixelFormat, 
    	src:           rawptr, 
    	src_pitch:     i32, 
    	dst_format:    PixelFormat, 
    	dst:           rawptr, 
    	dst_pitch:     i32, 
    	linear:        bool, 
    ) -> bool ---

    PremultiplySurfaceAlpha ¶

    PremultiplySurfaceAlpha :: proc "c" (surface: ^Surface, linear: bool) -> bool ---

    PumpEvents ¶

    PumpEvents :: proc "c" () ---

    PushEvent ¶

    PushEvent :: proc "c" (event: ^Event) -> bool ---

    PushGPUComputeUniformData ¶

    PushGPUComputeUniformData :: proc "c" (command_buffer: ^GPUCommandBuffer, slot_index: u32, data: rawptr, length: u32) ---

    PushGPUDebugGroup ¶

    PushGPUDebugGroup :: proc "c" (command_buffer: ^GPUCommandBuffer, name: cstring) ---

    PushGPUFragmentUniformData ¶

    PushGPUFragmentUniformData :: proc "c" (command_buffer: ^GPUCommandBuffer, slot_index: u32, data: rawptr, length: u32) ---

    PushGPUVertexUniformData ¶

    PushGPUVertexUniformData :: proc "c" (command_buffer: ^GPUCommandBuffer, slot_index: u32, data: rawptr, length: u32) ---

    PutAudioStreamData ¶

    PutAudioStreamData :: proc "c" (stream: ^AudioStream, buf: rawptr, len: i32) -> bool ---

    QueryGPUFence ¶

    QueryGPUFence :: proc "c" (device: ^GPUDevice, fence: ^GPUFence) -> bool ---

    Quit ¶

    Quit :: proc "c" () ---

    QuitSubSystem ¶

    QuitSubSystem :: proc "c" (flags: InitFlags) ---

    RaiseWindow ¶

    RaiseWindow :: proc "c" (window: ^Window) -> bool ---

    ReadAsyncIO ¶

    ReadAsyncIO :: proc "c" (
    	asyncio:      ^AsyncIO, 
    	ptr:          rawptr, 
    	offset, size: u64, 
    	queue:        ^AsyncIOQueue, 
    	userdata:     rawptr, 
    ) -> bool ---

    ReadIO ¶

    ReadIO :: proc "c" (ctx: ^IOStream, ptr: rawptr, size: uint) -> uint ---

    ReadProcess ¶

    ReadProcess :: proc "c" (process: ^Process, datasize: ^uint, exitcode: ^i32) -> rawptr ---

    ReadS16BE ¶

    ReadS16BE :: proc "c" (src: ^IOStream, value: ^i16) -> bool ---

    ReadS16LE ¶

    ReadS16LE :: proc "c" (src: ^IOStream, value: ^i16) -> bool ---

    ReadS32BE ¶

    ReadS32BE :: proc "c" (src: ^IOStream, value: ^i32) -> bool ---

    ReadS32LE ¶

    ReadS32LE :: proc "c" (src: ^IOStream, value: ^i32) -> bool ---

    ReadS64BE ¶

    ReadS64BE :: proc "c" (src: ^IOStream, value: ^i64) -> bool ---

    ReadS64LE ¶

    ReadS64LE :: proc "c" (src: ^IOStream, value: ^i64) -> bool ---

    ReadS8 ¶

    ReadS8 :: proc "c" (src: ^IOStream, value: ^i8) -> bool ---

    ReadStorageFile ¶

    ReadStorageFile :: proc "c" (storage: ^Storage, path: cstring, destination: rawptr, length: u64) -> bool ---

    ReadSurfacePixel ¶

    ReadSurfacePixel :: proc "c" (
    	surface: ^Surface, 
    	x, y:    i32, 
    	r, g, b, 
    	a:       ^u8, 
    ) -> bool ---

    ReadSurfacePixelFloat ¶

    ReadSurfacePixelFloat :: proc "c" (
    	surface: ^Surface, 
    	x, y:    i32, 
    	r, g, b, 
    	a:       ^f32, 
    ) -> bool ---

    ReadU16BE ¶

    ReadU16BE :: proc "c" (src: ^IOStream, value: ^u16) -> bool ---

    ReadU16LE ¶

    ReadU16LE :: proc "c" (src: ^IOStream, value: ^u16) -> bool ---

    ReadU32BE ¶

    ReadU32BE :: proc "c" (src: ^IOStream, value: ^u32) -> bool ---

    ReadU32LE ¶

    ReadU32LE :: proc "c" (src: ^IOStream, value: ^u32) -> bool ---

    ReadU64BE ¶

    ReadU64BE :: proc "c" (src: ^IOStream, value: ^u64) -> bool ---

    ReadU64LE ¶

    ReadU64LE :: proc "c" (src: ^IOStream, value: ^u64) -> bool ---

    ReadU8 ¶

    ReadU8 :: proc "c" (src: ^IOStream, value: ^u8) -> bool ---

    RectEmpty ¶

    RectEmpty :: proc "c" (r: Rect) -> bool {…}

    RectEqual ¶

    RectEqual :: proc "c" (a, b: Rect) -> bool {…}

    RectToFRect ¶

    RectToFRect :: proc "c" (rect: Rect, frect: ^FRect) {…}

    RegisterApp ¶

    RegisterApp :: proc "c" (name: cstring, style: u32, hInst: rawptr) -> bool ---

    RegisterEvents ¶

    RegisterEvents :: proc "c" (numevents: i32) -> u32 ---

    ReleaseCameraFrame ¶

    ReleaseCameraFrame :: proc "c" (camera: ^Camera, frame: ^Surface) ---

    ReleaseGPUBuffer ¶

    ReleaseGPUBuffer :: proc "c" (device: ^GPUDevice, buffer: ^GPUBuffer) ---

    ReleaseGPUComputePipeline ¶

    ReleaseGPUComputePipeline :: proc "c" (device: ^GPUDevice, compute_pipeline: ^GPUComputePipeline) ---

    ReleaseGPUFence ¶

    ReleaseGPUFence :: proc "c" (device: ^GPUDevice, fence: ^GPUFence) ---

    ReleaseGPUGraphicsPipeline ¶

    ReleaseGPUGraphicsPipeline :: proc "c" (device: ^GPUDevice, graphics_pipeline: ^GPUGraphicsPipeline) ---

    ReleaseGPUSampler ¶

    ReleaseGPUSampler :: proc "c" (device: ^GPUDevice, sampler: ^GPUSampler) ---

    ReleaseGPUShader ¶

    ReleaseGPUShader :: proc "c" (device: ^GPUDevice, shader: ^GPUShader) ---

    ReleaseGPUTexture ¶

    ReleaseGPUTexture :: proc "c" (device: ^GPUDevice, texture: ^GPUTexture) ---

    ReleaseGPUTransferBuffer ¶

    ReleaseGPUTransferBuffer :: proc "c" (device: ^GPUDevice, transfer_buffer: ^GPUTransferBuffer) ---

    ReleaseWindowFromGPUDevice ¶

    ReleaseWindowFromGPUDevice :: proc "c" (device: ^GPUDevice, window: ^Window) ---

    ReloadGamepadMappings ¶

    ReloadGamepadMappings :: proc "c" () -> bool ---

    RemoveEventWatch ¶

    RemoveEventWatch :: proc "c" (filter: EventFilter, userdata: rawptr) ---

    RemoveHintCallback ¶

    RemoveHintCallback :: proc "c" (name: cstring, callback: HintCallback, userdata: rawptr) ---

    RemovePath ¶

    RemovePath :: proc "c" (path: cstring) -> bool ---

    RemoveStoragePath ¶

    RemoveStoragePath :: proc "c" (storage: ^Storage, path: cstring) -> bool ---

    RemoveSurfaceAlternateImages ¶

    RemoveSurfaceAlternateImages :: proc "c" (surface: ^Surface) ---

    RemoveTimer ¶

    RemoveTimer :: proc "c" (id: TimerID) -> bool ---

    RemoveTrayEntry ¶

    RemoveTrayEntry :: proc "c" (entry: ^TrayEntry) ---

    RenamePath ¶

    RenamePath :: proc "c" (oldpath, newpath: cstring) -> bool ---

    RenameStoragePath ¶

    RenameStoragePath :: proc "c" (storage: ^Storage, oldpath, newpath: cstring) -> bool ---

    RenderClear ¶

    RenderClear :: proc "c" (renderer: ^Renderer) -> bool ---

    RenderClipEnabled ¶

    RenderClipEnabled :: proc "c" (renderer: ^Renderer) -> bool ---

    RenderCoordinatesFromWindow ¶

    RenderCoordinatesFromWindow :: proc "c" (renderer: ^Renderer, window_x, window_y: f32, x, y: ^f32) -> bool ---

    RenderCoordinatesToWindow ¶

    RenderCoordinatesToWindow :: proc "c" (renderer: ^Renderer, x, y: f32, window_x, window_y: ^f32) -> bool ---

    RenderDebugText ¶

    RenderDebugText :: proc "c" (renderer: ^Renderer, x, y: f32, str: cstring) -> bool ---

    RenderDebugTextFormat ¶

    RenderDebugTextFormat :: proc "c" (renderer: ^Renderer, x, y: f32, fmt: cstring, .. args: ..any) -> bool ---

    RenderFillRect ¶

    RenderFillRect :: proc "c" (renderer: ^Renderer, #by_ptr rect: FRect) -> bool ---

    RenderFillRects ¶

    RenderFillRects :: proc "c" (renderer: ^Renderer, rects: [^]FRect, count: i32) -> bool ---

    RenderGeometry ¶

    RenderGeometry :: proc "c" (
    	renderer:     ^Renderer, 
    	texture:      ^Texture, 
    	vertices:     [^]Vertex, 
    	num_vertices: i32, 
    	indices:      [^]i32, 
    	num_indices:  i32, 
    ) -> bool ---

    RenderGeometryRaw ¶

    RenderGeometryRaw :: proc "c" (
    	renderer:     ^Renderer, 
    	texture:      ^Texture, 
    	xy:           [^]f32, 
    	xy_stride:    i32, 
    	color:        [^]FColor, 
    	color_stride: i32, 
    	uv:           [^]f32, 
    	uv_stride:    i32, 
    	num_vertices: i32, 
    	indices:      rawptr, 
    	num_indices:  i32, 
    	size_indices: i32, 
    ) -> bool ---

    RenderLine ¶

    RenderLine :: proc "c" (renderer: ^Renderer, x1, y1, x2, y2: f32) -> bool ---

    RenderLines ¶

    RenderLines :: proc "c" (renderer: ^Renderer, points: [^]FPoint, count: i32) -> bool ---

    RenderPoint ¶

    RenderPoint :: proc "c" (renderer: ^Renderer, x, y: f32) -> bool ---

    RenderPoints ¶

    RenderPoints :: proc "c" (renderer: ^Renderer, points: [^]FPoint, count: i32) -> bool ---

    RenderPresent ¶

    RenderPresent :: proc "c" (renderer: ^Renderer) -> bool ---

    RenderReadPixels ¶

    RenderReadPixels :: proc "c" (renderer: ^Renderer, rect: runtime.Maybe($T=^Rect)) -> ^Surface ---

    RenderRect ¶

    RenderRect :: proc "c" (renderer: ^Renderer, #by_ptr rect: FRect) -> bool ---

    RenderRects ¶

    RenderRects :: proc "c" (renderer: ^Renderer, rects: [^]FRect, count: i32) -> bool ---

    RenderTexture ¶

    RenderTexture :: proc "c" (renderer: ^Renderer, texture: ^Texture, srcrect, dstrect: runtime.Maybe($T=^FRect)) -> bool ---

    RenderTexture9Grid ¶

    RenderTexture9Grid :: proc "c" (
    	renderer:                                           ^Renderer, 
    	texture:                                            ^Texture, 
    	srcrect:                                            runtime.Maybe($T=^FRect), 
    	left_width, right_width, top_height, bottom_height: f32, 
    	scale:                                              f32, 
    	dstrect:                                            runtime.Maybe($T=^FRect), 
    ) -> bool ---

    RenderTextureAffine ¶

    RenderTextureAffine :: proc "c" (
    	renderer:      ^Renderer, 
    	texture:       ^Texture, 
    	srcrect:       runtime.Maybe($T=^FRect), 
    	origin, right, 
    	down:          runtime.Maybe($T=^FPoint), 
    ) -> bool ---

    RenderTextureRotated ¶

    RenderTextureRotated :: proc "c" (
    	renderer:         ^Renderer, 
    	texture:          ^Texture, 
    	srcrect, dstrect: runtime.Maybe($T=^FRect), 
    	angle:            f64, 
    	#by_ptr center:   FPoint, 
    	flip:             FlipMode, 
    ) -> bool ---

    RenderTextureTiled ¶

    RenderTextureTiled :: proc "c" (renderer: ^Renderer, texture: ^Texture, srcrect: runtime.Maybe($T=^FRect), scale: f32, dstrect: runtime.Maybe($T=^FRect)) -> bool ---

    RenderViewportSet ¶

    RenderViewportSet :: proc "c" (renderer: ^Renderer) -> bool ---

    ReportAssertion ¶

    ReportAssertion :: proc "c" (data: ^AssertData, func, file: cstring, line: i32) -> AssertState ---

    RequestAndroidPermission ¶

    RequestAndroidPermission :: proc "c" (permission: cstring, cb: RequestAndroidPermissionCallback, userdata: rawptr) -> bool ---

    ResetAssertionReport ¶

    ResetAssertionReport :: proc "c" () ---

    ResetHint ¶

    ResetHint :: proc "c" (name: cstring) -> bool ---

    ResetHints ¶

    ResetHints :: proc "c" () ---

    ResetKeyboard ¶

    ResetKeyboard :: proc "c" () ---

    ResetLogPriorities ¶

    ResetLogPriorities :: proc "c" () ---

    RestoreWindow ¶

    RestoreWindow :: proc "c" (window: ^Window) -> bool ---

    ResumeAudioDevice ¶

    ResumeAudioDevice :: proc "c" (dev: AudioDeviceID) -> bool ---

    ResumeAudioStreamDevice ¶

    ResumeAudioStreamDevice :: proc "c" (stream: ^AudioStream) -> bool ---

    ResumeHaptic ¶

    ResumeHaptic :: proc "c" (haptic: ^Haptic) -> bool ---

    RumbleGamepad ¶

    RumbleGamepad :: proc "c" (gamepad: ^Gamepad, low_frequency_rumble, high_frequency_rumble: u16, duration_ms: u32) -> bool ---

    RumbleGamepadTriggers ¶

    RumbleGamepadTriggers :: proc "c" (gamepad: ^Gamepad, left_rumble, right_rumble: u16, duration_ms: u32) -> bool ---

    RumbleJoystick ¶

    RumbleJoystick :: proc "c" (joystick: ^Joystick, low_frequency_rumble, high_frequency_rumble: u16, duration_ms: u32) -> bool ---

    RumbleJoystickTriggers ¶

    RumbleJoystickTriggers :: proc "c" (joystick: ^Joystick, left_rumble, right_rumble: u16, duration_ms: u32) -> bool ---

    RunApp ¶

    RunApp :: proc "c" (argc: i32, argv: [^]cstring, mainFunction: main_func, reserved: rawptr) -> i32 ---

    RunHapticEffect ¶

    RunHapticEffect :: proc "c" (haptic: ^Haptic, effect: i32, iterations: u32) -> bool ---

    RunOnMainThread ¶

    RunOnMainThread :: proc "c" (callback: MainThreadCallback, userdata: rawptr, wait_complete: bool) -> bool ---

    SCANCODE_TO_KEYCODE ¶

    SCANCODE_TO_KEYCODE :: proc "c" (X: Scancode) -> Keycode {…}

    SDL_main ¶

    SDL_main :: proc "c" (argc: i32, argv: [^]cstring) -> i32 ---

    SECONDS_TO_NS ¶

    SECONDS_TO_NS :: proc "c" (S: u64) -> u64 {…}

    SaveBMP ¶

    SaveBMP :: proc "c" (surface: ^Surface, file: cstring) -> bool ---

    SaveBMP_IO ¶

    SaveBMP_IO :: proc "c" (surface: ^Surface, dst: ^IOStream, closeio: bool) -> bool ---

    SaveFile ¶

    SaveFile :: proc "c" (file: cstring, data: rawptr, datasize: uint) -> bool ---

    SaveFile_IO ¶

    SaveFile_IO :: proc "c" (src: ^IOStream, data: rawptr, datasize: uint, closeio: bool) -> bool ---

    ScaleSurface ¶

    ScaleSurface :: proc "c" (surface: ^Surface, width, height: i32, scaleMode: ScaleMode) -> ^Surface ---

    ScreenKeyboardShown ¶

    ScreenKeyboardShown :: proc "c" (window: ^Window) -> bool ---

    ScreenSaverEnabled ¶

    ScreenSaverEnabled :: proc "c" () -> bool ---

    SeekIO ¶

    SeekIO :: proc "c" (ctx: ^IOStream, offset: i64, whence: IOWhence) -> i64 ---

    SendAndroidBackButton ¶

    SendAndroidBackButton :: proc "c" () ---

    SendAndroidMessage ¶

    SendAndroidMessage :: proc "c" (command: u32, param: i32) -> bool ---

    SendGamepadEffect ¶

    SendGamepadEffect :: proc "c" (gamepad: ^Gamepad, data: rawptr, size: i32) -> bool ---

    SendJoystickEffect ¶

    SendJoystickEffect :: proc "c" (joystick: ^Joystick, data: rawptr, size: i32) -> bool ---

    SendJoystickVirtualSensorData ¶

    SendJoystickVirtualSensorData :: proc "c" (joystick: ^Joystick, type: SensorType, sensor_timestamp: u64, data: [^]f32, num_values: i32) -> bool ---

    SetAppMetadata ¶

    SetAppMetadata :: proc "c" (appname, appversion, appidentifier: cstring) -> bool ---

    SetAppMetadataProperty ¶

    SetAppMetadataProperty :: proc "c" (name: cstring, value: cstring) -> bool ---

    SetAssertionHandler ¶

    SetAssertionHandler :: proc "c" (handler: AssertionHandler, userdata: rawptr) ---

    SetAtomicInt ¶

    SetAtomicInt :: proc "c" (a: ^AtomicInt, v: i32) -> int ---

    SetAtomicPointer ¶

    SetAtomicPointer :: proc "c" (a: ^rawptr, v: rawptr) -> rawptr ---

    SetAtomicU32 ¶

    SetAtomicU32 :: proc "c" (a: ^AtomicU32, v: u32) -> u32 ---

    SetAudioDeviceGain ¶

    SetAudioDeviceGain :: proc "c" (devid: AudioDeviceID, gain: f32) -> bool ---

    SetAudioPostmixCallback ¶

    SetAudioPostmixCallback :: proc "c" (devid: AudioDeviceID, callback: AudioPostmixCallback, userdata: rawptr) -> bool ---

    SetAudioStreamFormat ¶

    SetAudioStreamFormat :: proc "c" (stream: ^AudioStream, src_spec, dst_spec: ^AudioSpec) -> bool ---

    SetAudioStreamFrequencyRatio ¶

    SetAudioStreamFrequencyRatio :: proc "c" (stream: ^AudioStream, ratio: f32) -> bool ---

    SetAudioStreamGain ¶

    SetAudioStreamGain :: proc "c" (stream: ^AudioStream, gain: f32) -> bool ---

    SetAudioStreamGetCallback ¶

    SetAudioStreamGetCallback :: proc "c" (stream: ^AudioStream, callback: AudioStreamCallback, userdata: rawptr) -> bool ---

    SetAudioStreamInputChannelMap ¶

    SetAudioStreamInputChannelMap :: proc "c" (stream: ^AudioStream, chmap: [^]i32, count: i32) -> bool ---

    SetAudioStreamOutputChannelMap ¶

    SetAudioStreamOutputChannelMap :: proc "c" (stream: ^AudioStream, chmap: [^]i32, count: i32) -> bool ---

    SetAudioStreamPutCallback ¶

    SetAudioStreamPutCallback :: proc "c" (stream: ^AudioStream, callback: AudioStreamCallback, userdata: rawptr) -> bool ---

    SetBooleanProperty ¶

    SetBooleanProperty :: proc "c" (props: PropertiesID, name: cstring, value: bool) -> bool ---

    SetClipboardData ¶

    SetClipboardData :: proc "c" (callback: ClipboardDataCallback, cleanup: ClipboardCleanupCallback, userdata: rawptr, mime_types: [^]cstring, num_mime_types: uint) -> bool ---

    SetClipboardText ¶

    SetClipboardText :: proc "c" (text: cstring) -> bool ---

    SetCurrentThreadPriority ¶

    SetCurrentThreadPriority :: proc "c" (priority: ThreadPriority) -> bool ---

    SetCursor ¶

    SetCursor :: proc "c" (cursor: ^Cursor) -> bool ---

    SetEnvironmentVariable ¶

    SetEnvironmentVariable :: proc "c" (env: ^Environment, name, value: cstring, overwrite: bool) -> bool ---

    SetError ¶

    SetError :: proc "c" (fmt: cstring, .. args: ..any) -> bool ---

    SetErrorV ¶

    SetErrorV :: proc "c" (fmt: cstring, ap: c.va_list) -> bool ---

    SetEventEnabled ¶

    SetEventEnabled :: proc "c" (type: EventType, enabled: bool) ---

    SetEventFilter ¶

    SetEventFilter :: proc "c" (filter: EventFilter, userdata: rawptr) ---

    SetFloatProperty ¶

    SetFloatProperty :: proc "c" (props: PropertiesID, name: cstring, value: f32) -> bool ---

    SetGPUAllowedFramesInFlight ¶

    SetGPUAllowedFramesInFlight :: proc "c" (device: ^GPUDevice, allowed_frames_in_flight: u32) -> bool ---

    SetGPUBlendConstants ¶

    SetGPUBlendConstants :: proc "c" (render_pass: ^GPURenderPass, blend_constants: FColor) ---

    SetGPUBufferName ¶

    SetGPUBufferName :: proc "c" (device: ^GPUDevice, buffer: ^GPUBuffer, text: cstring) ---

    SetGPUScissor ¶

    SetGPUScissor :: proc "c" (render_pass: ^GPURenderPass, #by_ptr scissor: Rect) ---

    SetGPUStencilReference ¶

    SetGPUStencilReference :: proc "c" (render_pass: ^GPURenderPass, reference: u8) ---

    SetGPUSwapchainParameters ¶

    SetGPUSwapchainParameters :: proc "c" (device: ^GPUDevice, window: ^Window, swapchain_composition: GPUSwapchainComposition, present_mode: GPUPresentMode) -> bool ---

    SetGPUTextureName ¶

    SetGPUTextureName :: proc "c" (device: ^GPUDevice, texture: ^GPUTexture, text: cstring) ---

    SetGPUViewport ¶

    SetGPUViewport :: proc "c" (render_pass: ^GPURenderPass, #by_ptr viewport: GPUViewport) ---

    SetGamepadEventsEnabled ¶

    SetGamepadEventsEnabled :: proc "c" (enabled: bool) ---

    SetGamepadLED ¶

    SetGamepadLED :: proc "c" (gamepad: ^Gamepad, red, green, blue: u8) -> bool ---

    SetGamepadMapping ¶

    SetGamepadMapping :: proc "c" (instance_id: JoystickID, mapping: cstring) -> bool ---

    SetGamepadPlayerIndex ¶

    SetGamepadPlayerIndex :: proc "c" (gamepad: ^Gamepad, player_index: i32) -> bool ---

    SetGamepadSensorEnabled ¶

    SetGamepadSensorEnabled :: proc "c" (gamepad: ^Gamepad, type: SensorType, enabled: bool) -> bool ---

    SetHapticAutocenter ¶

    SetHapticAutocenter :: proc "c" (haptic: ^Haptic, autocenter: i32) -> bool ---

    SetHapticGain ¶

    SetHapticGain :: proc "c" (haptic: ^Haptic, gain: i32) -> bool ---

    SetHint ¶

    SetHint :: proc "c" (name: cstring, value: cstring) -> bool ---

    SetHintWithPriority ¶

    SetHintWithPriority :: proc "c" (name: cstring, value: cstring, priority: HintPriority) -> bool ---

    SetJoystickEventsEnabled ¶

    SetJoystickEventsEnabled :: proc "c" (enabled: bool) ---

    SetJoystickLED ¶

    SetJoystickLED :: proc "c" (joystick: ^Joystick, red, green, blue: u8) -> bool ---

    SetJoystickPlayerIndex ¶

    SetJoystickPlayerIndex :: proc "c" (joystick: ^Joystick, player_index: i32) -> bool ---

    SetJoystickVirtualAxis ¶

    SetJoystickVirtualAxis :: proc "c" (joystick: ^Joystick, axis: i32, value: i16) -> bool ---

    SetJoystickVirtualBall ¶

    SetJoystickVirtualBall :: proc "c" (joystick: ^Joystick, ball: i32, xrel, yrel: i16) -> bool ---

    SetJoystickVirtualButton ¶

    SetJoystickVirtualButton :: proc "c" (joystick: ^Joystick, button: i32, down: bool) -> bool ---

    SetJoystickVirtualHat ¶

    SetJoystickVirtualHat :: proc "c" (joystick: ^Joystick, hat: i32, value: u8) -> bool ---

    SetJoystickVirtualTouchpad ¶

    SetJoystickVirtualTouchpad :: proc "c" (
    	joystick: ^Joystick, 
    	touchpad: i32, 
    	finger:   i32, 
    	down:     bool, 
    	x, y:     f32, 
    	pressure: f32, 
    ) -> bool ---

    SetLinuxThreadPriority ¶

    SetLinuxThreadPriority :: proc "c" (threadID: i64, priority: i32) -> bool ---

    SetLinuxThreadPriorityAndPolicy ¶

    SetLinuxThreadPriorityAndPolicy :: proc "c" (threadID: i64, sdlPriority: i32, schedPolicy: i32) -> bool ---

    SetLogOutputFunction ¶

    SetLogOutputFunction :: proc "c" (callback: LogOutputFunction, userdata: rawptr) ---

    SetLogPriorities ¶

    SetLogPriorities :: proc "c" (priority: LogPriority) ---

    SetLogPriority ¶

    SetLogPriority :: proc "c" (category: LogCategory, priority: LogPriority) ---

    SetLogPriorityPrefix ¶

    SetLogPriorityPrefix :: proc "c" (priority: LogPriority, prefix: cstring) -> bool ---

    SetMainReady ¶

    SetMainReady :: proc "c" () ---

    SetMemoryFunctions ¶

    SetMemoryFunctions :: proc "c" (malloc_func: malloc_func, calloc_func: calloc_func, realloc_func: realloc_func, free_func: free_func) ---

    SetModState ¶

    SetModState :: proc "c" (modstate: Keymod) ---

    SetNumberProperty ¶

    SetNumberProperty :: proc "c" (props: PropertiesID, name: cstring, value: i64) -> bool ---

    SetPaletteColors ¶

    SetPaletteColors :: proc "c" (palette: ^Palette, colors: [^]Color, firstcolor: i32, ncolors: i32) -> bool ---

    SetPointerProperty ¶

    SetPointerProperty :: proc "c" (props: PropertiesID, name: cstring, value: rawptr) -> bool ---

    SetPointerPropertyWithCleanup ¶

    SetPointerPropertyWithCleanup :: proc "c" (props: PropertiesID, name: cstring, value: rawptr, cleanup: CleanupPropertyCallback, userdata: rawptr) -> bool ---

    SetPrimarySelectionText ¶

    SetPrimarySelectionText :: proc "c" (text: cstring) -> bool ---

    SetRenderClipRect ¶

    SetRenderClipRect :: proc "c" (renderer: ^Renderer, #by_ptr rect: Rect) -> bool ---

    SetRenderColorScale ¶

    SetRenderColorScale :: proc "c" (renderer: ^Renderer, scale: f32) -> bool ---

    SetRenderDrawBlendMode ¶

    SetRenderDrawBlendMode :: proc "c" (renderer: ^Renderer, blendMode: BlendMode) -> bool ---

    SetRenderDrawColor ¶

    SetRenderDrawColor :: proc "c" (renderer: ^Renderer, r, g, b, a: u8) -> bool ---

    SetRenderDrawColorFloat ¶

    SetRenderDrawColorFloat :: proc "c" (renderer: ^Renderer, r, g, b, a: f32) -> bool ---

    SetRenderLogicalPresentation ¶

    SetRenderLogicalPresentation :: proc "c" (renderer: ^Renderer, w, h: i32, mode: RendererLogicalPresentation) -> bool ---

    SetRenderScale ¶

    SetRenderScale :: proc "c" (renderer: ^Renderer, scaleX, scaleY: f32) -> bool ---

    SetRenderTarget ¶

    SetRenderTarget :: proc "c" (renderer: ^Renderer, texture: runtime.Maybe($T=^Texture)) -> bool ---

    SetRenderVSync ¶

    SetRenderVSync :: proc "c" (renderer: ^Renderer, vsync: i32) -> bool ---

    SetRenderViewport ¶

    SetRenderViewport :: proc "c" (renderer: ^Renderer, #by_ptr rect: Rect) -> bool ---

    SetScancodeName ¶

    SetScancodeName :: proc "c" (scancode: Scancode, name: cstring) -> bool ---

    SetStringProperty ¶

    SetStringProperty :: proc "c" (props: PropertiesID, name: cstring, value: cstring) -> bool ---

    SetSurfaceAlphaMod ¶

    SetSurfaceAlphaMod :: proc "c" (surface: ^Surface, alpha: u8) -> bool ---

    SetSurfaceBlendMode ¶

    SetSurfaceBlendMode :: proc "c" (surface: ^Surface, blendMode: BlendMode) -> bool ---

    SetSurfaceClipRect ¶

    SetSurfaceClipRect :: proc "c" (surface: ^Surface, #by_ptr rect: Rect) -> bool ---

    SetSurfaceColorKey ¶

    SetSurfaceColorKey :: proc "c" (surface: ^Surface, enabled: bool, key: u32) -> bool ---

    SetSurfaceColorMod ¶

    SetSurfaceColorMod :: proc "c" (surface: ^Surface, r, g, b: u8) -> bool ---

    SetSurfaceColorspace ¶

    SetSurfaceColorspace :: proc "c" (surface: ^Surface, colorspace: Colorspace) -> bool ---

    SetSurfacePalette ¶

    SetSurfacePalette :: proc "c" (surface: ^Surface, palette: ^Palette) -> bool ---

    SetSurfaceRLE ¶

    SetSurfaceRLE :: proc "c" (surface: ^Surface, enabled: bool) -> bool ---

    SetTLS ¶

    SetTLS :: proc "c" (id: ^AtomicInt, value: rawptr, destructor: TLSDestructorCallback) -> bool ---

    SetTextInputArea ¶

    SetTextInputArea :: proc "c" (window: ^Window, #by_ptr rect: Rect, cursor: i32) -> bool ---

    SetTextureAlphaMod ¶

    SetTextureAlphaMod :: proc "c" (texture: ^Texture, alpha: u8) -> bool ---

    SetTextureAlphaModFloat ¶

    SetTextureAlphaModFloat :: proc "c" (texture: ^Texture, alpha: f32) -> bool ---

    SetTextureBlendMode ¶

    SetTextureBlendMode :: proc "c" (texture: ^Texture, blendMode: BlendMode) -> bool ---

    SetTextureColorMod ¶

    SetTextureColorMod :: proc "c" (texture: ^Texture, r, g, b: u8) -> bool ---

    SetTextureColorModFloat ¶

    SetTextureColorModFloat :: proc "c" (texture: ^Texture, r, g, b: f32) -> bool ---

    SetTextureScaleMode ¶

    SetTextureScaleMode :: proc "c" (texture: ^Texture, scaleMode: ScaleMode) -> bool ---

    SetTrayEntryCallback ¶

    SetTrayEntryCallback :: proc "c" (entry: ^TrayEntry, callback: TrayCallback, userdata: rawptr) ---

    SetTrayEntryChecked ¶

    SetTrayEntryChecked :: proc "c" (entry: ^TrayEntry, checked: bool) ---

    SetTrayEntryEnabled ¶

    SetTrayEntryEnabled :: proc "c" (entry: ^TrayEntry, enabled: bool) ---

    SetTrayEntryLabel ¶

    SetTrayEntryLabel :: proc "c" (entry: ^TrayEntry, label: cstring) ---

    SetTrayIcon ¶

    SetTrayIcon :: proc "c" (tray: ^Tray, icon: ^Surface) ---

    SetTrayTooltip ¶

    SetTrayTooltip :: proc "c" (tray: ^Tray, tooltip: cstring) ---

    SetWindowAlwaysOnTop ¶

    SetWindowAlwaysOnTop :: proc "c" (window: ^Window, on_top: bool) -> bool ---

    SetWindowAspectRatio ¶

    SetWindowAspectRatio :: proc "c" (window: ^Window, min_aspect, max_aspect: f32) -> bool ---

    SetWindowBordered ¶

    SetWindowBordered :: proc "c" (window: ^Window, bordered: bool) -> bool ---

    SetWindowFocusable ¶

    SetWindowFocusable :: proc "c" (window: ^Window, focusable: bool) -> bool ---

    SetWindowFullscreen ¶

    SetWindowFullscreen :: proc "c" (window: ^Window, fullscreen: bool) -> bool ---

    SetWindowFullscreenMode ¶

    SetWindowFullscreenMode :: proc "c" (window: ^Window, #by_ptr mode: DisplayMode) -> bool ---

    SetWindowHitTest ¶

    SetWindowHitTest :: proc "c" (window: ^Window, callback: HitTest, callback_data: rawptr) -> bool ---

    SetWindowIcon ¶

    SetWindowIcon :: proc "c" (window: ^Window, icon: ^Surface) -> bool ---

    SetWindowKeyboardGrab ¶

    SetWindowKeyboardGrab :: proc "c" (window: ^Window, grabbed: bool) -> bool ---

    SetWindowMaximumSize ¶

    SetWindowMaximumSize :: proc "c" (window: ^Window, max_w, max_h: i32) -> bool ---

    SetWindowMinimumSize ¶

    SetWindowMinimumSize :: proc "c" (window: ^Window, min_w, min_h: i32) -> bool ---

    SetWindowModal ¶

    SetWindowModal :: proc "c" (window: ^Window, modal: bool) -> bool ---

    SetWindowMouseGrab ¶

    SetWindowMouseGrab :: proc "c" (window: ^Window, grabbed: bool) -> bool ---

    SetWindowMouseRect ¶

    SetWindowMouseRect :: proc "c" (window: ^Window, #by_ptr rect: Rect) -> bool ---

    SetWindowOpacity ¶

    SetWindowOpacity :: proc "c" (window: ^Window, opacity: f32) -> bool ---

    SetWindowParent ¶

    SetWindowParent :: proc "c" (window: ^Window, parent: ^Window) -> bool ---

    SetWindowPosition ¶

    SetWindowPosition :: proc "c" (window: ^Window, x, y: i32) -> bool ---

    SetWindowRelativeMouseMode ¶

    SetWindowRelativeMouseMode :: proc "c" (window: ^Window, enabled: bool) -> bool ---

    SetWindowResizable ¶

    SetWindowResizable :: proc "c" (window: ^Window, resizable: bool) -> bool ---

    SetWindowShape ¶

    SetWindowShape :: proc "c" (window: ^Window, shape: ^Surface) -> bool ---

    SetWindowSize ¶

    SetWindowSize :: proc "c" (window: ^Window, w, h: i32) -> bool ---

    SetWindowSurfaceVSync ¶

    SetWindowSurfaceVSync :: proc "c" (window: ^Window, vsync: i32) -> bool ---

    SetWindowTitle ¶

    SetWindowTitle :: proc "c" (window: ^Window, title: cstring) -> bool ---

    SetWindowsMessageHook ¶

    SetWindowsMessageHook :: proc "c" (callback: WindowsMessageHook, userdata: rawptr) ---

    SetX11EventHook ¶

    SetX11EventHook :: proc "c" (callback: X11EventHook, userdata: rawptr) ---

    SetiOSAnimationCallback ¶

    SetiOSAnimationCallback :: proc "c" (window: ^Window, interval: i32, callback: iOSAnimationCallback, callbackParam: rawptr) -> bool ---

    SetiOSEventPump ¶

    SetiOSEventPump :: proc "c" (enabled: bool) ---

    ShowAndroidToast ¶

    ShowAndroidToast :: proc "c" (message: cstring, duration: i32, gravity: i32, xoffset, yoffset: i32) -> bool ---

    ShowCursor ¶

    ShowCursor :: proc "c" () -> bool ---

    ShowFileDialogWithProperties ¶

    ShowFileDialogWithProperties :: proc "c" (type: FileDialogType, callback: DialogFileCallback, userdata: rawptr, props: PropertiesID) ---

    ShowMessageBox ¶

    ShowMessageBox :: proc "c" (#by_ptr messageboxdata: MessageBoxData, buttonid: ^i32) -> bool ---

    ShowOpenFileDialog ¶

    ShowOpenFileDialog :: proc "c" (
    	callback:         DialogFileCallback, 
    	userdata:         rawptr, 
    	window:           ^Window, 
    	filters:          [^]DialogFileFilter, 
    	nfilters:         i32, 
    	default_location: cstring, 
    	allow_many:       bool, 
    ) ---

    ShowOpenFolderDialog ¶

    ShowOpenFolderDialog :: proc "c" (callback: DialogFileCallback, userdata: rawptr, window: ^Window, default_location: cstring, allow_many: bool) ---

    ShowSaveFileDialog ¶

    ShowSaveFileDialog :: proc "c" (
    	callback:         DialogFileCallback, 
    	userdata:         rawptr, 
    	window:           ^Window, 
    	filters:          [^]DialogFileFilter, 
    	nfilters:         i32, 
    	default_location: cstring, 
    ) ---

    ShowSimpleMessageBox ¶

    ShowSimpleMessageBox :: proc "c" (flags: MessageBoxFlags, title, message: cstring, window: ^Window) -> bool ---

    ShowWindow ¶

    ShowWindow :: proc "c" (window: ^Window) -> bool ---

    ShowWindowSystemMenu ¶

    ShowWindowSystemMenu :: proc "c" (window: ^Window, x, y: i32) -> bool ---

    SignalAsyncIOQueue ¶

    SignalAsyncIOQueue :: proc "c" (queue: ^AsyncIOQueue) ---

    StartTextInput ¶

    StartTextInput :: proc "c" (window: ^Window) -> bool ---

    StartTextInputWithProperties ¶

    StartTextInputWithProperties :: proc "c" (window: ^Window, props: PropertiesID) -> bool ---

    StepBackUTF8 ¶

    StepBackUTF8 :: proc "c" (start: cstring, pstr: ^cstring) -> u32 ---

    StepUTF8 ¶

    StepUTF8 :: proc "c" (pstr: ^cstring, pslen: ^uint) -> u32 ---

    StopHapticEffect ¶

    StopHapticEffect :: proc "c" (haptic: ^Haptic, effect: i32) -> bool ---

    StopHapticEffects ¶

    StopHapticEffects :: proc "c" (haptic: ^Haptic) -> bool ---

    StopHapticRumble ¶

    StopHapticRumble :: proc "c" (haptic: ^Haptic) -> bool ---

    StopTextInput ¶

    StopTextInput :: proc "c" (window: ^Window) -> bool ---

    StorageReady ¶

    StorageReady :: proc "c" (storage: ^Storage) -> bool ---

    StringToGUID ¶

    StringToGUID :: proc "c" (pchGUID: cstring) -> GUID ---

    SubmitGPUCommandBuffer ¶

    SubmitGPUCommandBuffer :: proc "c" (command_buffer: ^GPUCommandBuffer) -> bool ---

    SubmitGPUCommandBufferAndAcquireFence ¶

    SubmitGPUCommandBufferAndAcquireFence :: proc "c" (command_buffer: ^GPUCommandBuffer) -> ^GPUFence ---

    SurfaceHasAlternateImages ¶

    SurfaceHasAlternateImages :: proc "c" (surface: ^Surface) -> bool ---

    SurfaceHasColorKey ¶

    SurfaceHasColorKey :: proc "c" (surface: ^Surface) -> bool ---

    SurfaceHasRLE ¶

    SurfaceHasRLE :: proc "c" (surface: ^Surface) -> bool ---

    Swap16 ¶

    Swap16 :: proc "c" (x: u16) -> u16 {…}

    Swap16BE ¶

    Swap16BE :: proc "c" (x: u16) -> u16 {…}

    Swap16LE ¶

    Swap16LE :: proc "c" (x: u16) -> u16 {…}

    Swap32 ¶

    Swap32 :: proc "c" (x: u32) -> u32 {…}

    Swap32BE ¶

    Swap32BE :: proc "c" (x: u32) -> u32 {…}

    Swap32LE ¶

    Swap32LE :: proc "c" (x: u32) -> u32 {…}

    Swap64 ¶

    Swap64 :: proc "c" (x: u64) -> u64 {…}

    Swap64BE ¶

    Swap64BE :: proc "c" (x: u64) -> u64 {…}

    Swap64LE ¶

    Swap64LE :: proc "c" (x: u64) -> u64 {…}

    SwapFloat ¶

    SwapFloat :: proc "c" (x: f32) -> f32 {…}

    SwapFloatBE ¶

    SwapFloatBE :: proc "c" (x: f32) -> f32 {…}

    SwapFloatLE ¶

    SwapFloatLE :: proc "c" (x: f32) -> f32 {…}

    SyncWindow ¶

    SyncWindow :: proc "c" (window: ^Window) -> bool ---

    TellIO ¶

    TellIO :: proc "c" (ctx: ^IOStream) -> i64 ---

    TextInputActive ¶

    TextInputActive :: proc "c" (window: ^Window) -> bool ---

    TimeFromWindows ¶

    TimeFromWindows :: proc "c" (dwLowDateTime, dwHighDateTime: u32) -> Time ---

    TimeToDateTime ¶

    TimeToDateTime :: proc "c" (ticks: Time, dt: ^DateTime, localTime: bool) -> bool ---

    TimeToWindows ¶

    TimeToWindows :: proc "c" (ticks: Time, dwLowDateTime, dwHighDateTime: ^u32) ---

    TriggerBreakpoint ¶

    TriggerBreakpoint :: intrinsics.debug_trap

    TryLockMutex ¶

    TryLockMutex :: proc "c" (mutex: ^Mutex) -> bool ---

    TryLockRWLockForReading ¶

    TryLockRWLockForReading :: proc "c" (rwlock: ^RWLock) -> bool ---

    TryLockRWLockForWriting ¶

    TryLockRWLockForWriting :: proc "c" (rwlock: ^RWLock) -> bool ---

    TryLockSpinlock ¶

    TryLockSpinlock :: proc "c" (lock: ^SpinLock) -> bool ---

    UCS4ToUTF8 ¶

    UCS4ToUTF8 :: proc "c" (codepoint: rune, dst: [^]u8) -> [^]u8 ---

    US_TO_NS ¶

    US_TO_NS :: proc "c" (US: u64) -> u64 {…}

    UnbindAudioStream ¶

    UnbindAudioStream :: proc "c" (stream: ^AudioStream) ---

    UnbindAudioStreams ¶

    UnbindAudioStreams :: proc "c" (streams: [^]^AudioStream, num_streams: i32) ---

    UnloadObject ¶

    UnloadObject :: proc "c" (handle: ^SharedObject) ---

    UnlockAudioStream ¶

    UnlockAudioStream :: proc "c" (stream: ^AudioStream) -> bool ---

    UnlockJoysticks ¶

    UnlockJoysticks :: proc "c" () ---

    UnlockMutex ¶

    UnlockMutex :: proc "c" (mutex: ^Mutex) ---

    UnlockProperties ¶

    UnlockProperties :: proc "c" (props: PropertiesID) ---

    UnlockRWLock ¶

    UnlockRWLock :: proc "c" (rwlock: ^RWLock) ---

    UnlockSpinlock ¶

    UnlockSpinlock :: proc "c" (lock: ^SpinLock) ---

    UnlockSurface ¶

    UnlockSurface :: proc "c" (surface: ^Surface) ---

    UnlockTexture ¶

    UnlockTexture :: proc "c" (texture: ^Texture) ---

    UnmapGPUTransferBuffer ¶

    UnmapGPUTransferBuffer :: proc "c" (device: ^GPUDevice, transfer_buffer: ^GPUTransferBuffer) ---

    UnregisterApp ¶

    UnregisterApp :: proc "c" () ---

    UnsetEnvironmentVariable ¶

    UnsetEnvironmentVariable :: proc "c" (env: ^Environment, name: cstring) -> bool ---

    Unsupported ¶

    Unsupported :: proc "c" () -> bool {…}

    UpdateGamepads ¶

    UpdateGamepads :: proc "c" () ---

    UpdateHapticEffect ¶

    UpdateHapticEffect :: proc "c" (haptic: ^Haptic, effect: i32, #by_ptr data: HapticEffect) -> bool ---

    UpdateJoysticks ¶

    UpdateJoysticks :: proc "c" () ---

    UpdateNVTexture ¶

    UpdateNVTexture :: proc "c" (
    	texture: ^Texture, 
    	rect:    runtime.Maybe($T=^Rect), 
    	Yplane:  [^]u8, 
    	Ypitch:  i32, 
    	UVplane: [^]u8, 
    	UVpitch: i32, 
    ) -> bool ---

    UpdateSensors ¶

    UpdateSensors :: proc "c" () ---

    UpdateTexture ¶

    UpdateTexture :: proc "c" (texture: ^Texture, rect: runtime.Maybe($T=^Rect), pixels: rawptr, pitch: i32) -> bool ---

    UpdateTrays ¶

    UpdateTrays :: proc "c" () ---

    UpdateWindowSurface ¶

    UpdateWindowSurface :: proc "c" (window: ^Window) -> bool ---

    UpdateWindowSurfaceRects ¶

    UpdateWindowSurfaceRects :: proc "c" (window: ^Window, rects: [^]Rect, numrects: i32) -> bool ---

    UpdateYUVTexture ¶

    UpdateYUVTexture :: proc "c" (
    	texture: ^Texture, 
    	rect:    runtime.Maybe($T=^Rect), 
    	Yplane:  [^]u8, 
    	Ypitch:  i32, 
    	Uplane:  [^]u8, 
    	Upitch:  i32, 
    	Vplane:  [^]u8, 
    	Vpitch:  i32, 
    ) -> bool ---

    UploadToGPUBuffer ¶

    UploadToGPUBuffer :: proc "c" (copy_pass: ^GPUCopyPass, #by_ptr source: GPUTransferBufferLocation, #by_ptr destination: GPUBufferRegion, cycle: bool) ---

    UploadToGPUTexture ¶

    UploadToGPUTexture :: proc "c" (copy_pass: ^GPUCopyPass, #by_ptr source: GPUTextureTransferInfo, #by_ptr destination: GPUTextureRegion, cycle: bool) ---

    VERSIONNUM ¶

    VERSIONNUM :: proc "c" (major, minor, patch: i32) -> i32 {…}

    VERSIONNUM_MAJOR ¶

    VERSIONNUM_MAJOR :: proc "c" (version: i32) -> i32 {…}

    VERSIONNUM_MICRO ¶

    VERSIONNUM_MICRO :: proc "c" (version: i32) -> i32 {…}

    VERSIONNUM_MINOR ¶

    VERSIONNUM_MINOR :: proc "c" (version: i32) -> i32 {…}

    VERSION_ATLEAST ¶

    VERSION_ATLEAST :: proc "c" (X, Y, Z: i32) -> bool {…}

    Vulkan_CreateSurface ¶

    Vulkan_CreateSurface :: proc "c" (window: ^Window, instance: vulkan.Instance, allocator: runtime.Maybe($T=^AllocationCallbacks), surface: ^vulkan.SurfaceKHR) -> bool ---

    Vulkan_DestroySurface ¶

    Vulkan_DestroySurface :: proc "c" (instance: vulkan.Instance, surface: vulkan.SurfaceKHR, allocator: runtime.Maybe($T=^AllocationCallbacks)) ---

    Vulkan_GetInstanceExtensions ¶

    Vulkan_GetInstanceExtensions :: proc "c" (count: ^u32) -> [^]cstring ---

    Vulkan_GetPresentationSupport ¶

    Vulkan_GetPresentationSupport :: proc "c" (instance: vulkan.Instance, physicalDevice: vulkan.PhysicalDevice, queueFamilyIndex: u32) -> bool ---

    Vulkan_GetVkGetInstanceProcAddr ¶

    Vulkan_GetVkGetInstanceProcAddr :: proc "c" () -> FunctionPointer ---

    Vulkan_LoadLibrary ¶

    Vulkan_LoadLibrary :: proc "c" (path: cstring) -> bool ---

    Vulkan_UnloadLibrary ¶

    Vulkan_UnloadLibrary :: proc "c" () ---

    WINDOWPOS_CENTERED_DISPLAY ¶

    WINDOWPOS_CENTERED_DISPLAY :: proc "c" (X: i32) -> i32 {…}

    WINDOWPOS_ISCENTERED ¶

    WINDOWPOS_ISCENTERED :: proc "c" (X: i32) -> bool {…}

    WINDOWPOS_ISUNDEFINED ¶

    WINDOWPOS_ISUNDEFINED :: proc "c" (X: i32) -> bool {…}

    WINDOWPOS_UNDEFINED_DISPLAY ¶

    WINDOWPOS_UNDEFINED_DISPLAY :: proc "c" (X: i32) -> i32 {…}

    WaitAndAcquireGPUSwapchainTexture ¶

    WaitAndAcquireGPUSwapchainTexture :: proc "c" (command_buffer: ^GPUCommandBuffer, window: ^Window, swapchain_texture: ^^GPUTexture, swapchain_texture_width, swapchain_texture_height: ^u32) -> bool ---

    WaitAsyncIOResult ¶

    WaitAsyncIOResult :: proc "c" (queue: ^AsyncIOQueue, outcome: ^AsyncIOOutcome, timeoutMS: i32) -> bool ---

    WaitEvent ¶

    WaitEvent :: proc "c" (event: ^Event) -> bool ---

    WaitEventTimeout ¶

    WaitEventTimeout :: proc "c" (event: ^Event, timeoutMS: i32) -> bool ---

    WaitForGPUFences ¶

    WaitForGPUFences :: proc "c" (device: ^GPUDevice, wait_all: bool, fences: [^]^GPUFence, num_fences: u32) -> bool ---

    WaitForGPUIdle ¶

    WaitForGPUIdle :: proc "c" (device: ^GPUDevice) -> bool ---

    WaitForGPUSwapchain ¶

    WaitForGPUSwapchain :: proc "c" (device: ^GPUDevice, window: ^Window) -> bool ---

    WaitProcess ¶

    WaitProcess :: proc "c" (process: ^Process, block: bool, exitcode: ^i32) -> bool ---

    WaitThread ¶

    WaitThread :: proc "c" (thread: ^Thread, status: ^i32) ---

    WarpMouseGlobal ¶

    WarpMouseGlobal :: proc "c" (x, y: f32) -> bool ---

    WarpMouseInWindow ¶

    WarpMouseInWindow :: proc "c" (window: ^Window, x, y: f32) ---

    WasInit ¶

    WasInit :: proc "c" (flags: InitFlags) -> InitFlags ---

    WindowHasSurface ¶

    WindowHasSurface :: proc "c" (window: ^Window) -> bool ---

    WindowSupportsGPUPresentMode ¶

    WindowSupportsGPUPresentMode :: proc "c" (device: ^GPUDevice, window: ^Window, present_mode: GPUPresentMode) -> bool ---

    WindowSupportsGPUSwapchainComposition ¶

    WindowSupportsGPUSwapchainComposition :: proc "c" (device: ^GPUDevice, window: ^Window, swapchain_composition: GPUSwapchainComposition) -> bool ---

    WriteAsyncIO ¶

    WriteAsyncIO :: proc "c" (
    	asyncio:      ^AsyncIO, 
    	ptr:          rawptr, 
    	offset, size: u64, 
    	queue:        ^AsyncIOQueue, 
    	userdata:     rawptr, 
    ) -> bool ---

    WriteIO ¶

    WriteIO :: proc "c" (ctx: ^IOStream, ptr: rawptr, size: uint) -> uint ---

    WriteS16BE ¶

    WriteS16BE :: proc "c" (dst: ^IOStream, value: i16) -> bool ---

    WriteS16LE ¶

    WriteS16LE :: proc "c" (dst: ^IOStream, value: i16) -> bool ---

    WriteS32BE ¶

    WriteS32BE :: proc "c" (dst: ^IOStream, value: i32) -> bool ---

    WriteS32LE ¶

    WriteS32LE :: proc "c" (dst: ^IOStream, value: i32) -> bool ---

    WriteS64BE ¶

    WriteS64BE :: proc "c" (dst: ^IOStream, value: i64) -> bool ---

    WriteS64LE ¶

    WriteS64LE :: proc "c" (dst: ^IOStream, value: i64) -> bool ---

    WriteS8 ¶

    WriteS8 :: proc "c" (dst: ^IOStream, value: i8) -> bool ---

    WriteStorageFile ¶

    WriteStorageFile :: proc "c" (storage: ^Storage, path: cstring, source: rawptr, length: u64) -> bool ---

    WriteSurfacePixel ¶

    WriteSurfacePixel :: proc "c" (
    	surface: ^Surface, 
    	x, y:    i32, 
    	r, g, b, 
    	a:       u8, 
    ) -> bool ---

    WriteSurfacePixelFloat ¶

    WriteSurfacePixelFloat :: proc "c" (
    	surface: ^Surface, 
    	x, y:    i32, 
    	r, g, b, 
    	a:       f32, 
    ) -> bool ---

    WriteU16BE ¶

    WriteU16BE :: proc "c" (dst: ^IOStream, value: u16) -> bool ---

    WriteU16LE ¶

    WriteU16LE :: proc "c" (dst: ^IOStream, value: u16) -> bool ---

    WriteU32BE ¶

    WriteU32BE :: proc "c" (dst: ^IOStream, value: u32) -> bool ---

    WriteU32LE ¶

    WriteU32LE :: proc "c" (dst: ^IOStream, value: u32) -> bool ---

    WriteU64BE ¶

    WriteU64BE :: proc "c" (dst: ^IOStream, value: u64) -> bool ---

    WriteU64LE ¶

    WriteU64LE :: proc "c" (dst: ^IOStream, value: u64) -> bool ---

    WriteU8 ¶

    WriteU8 :: proc "c" (dst: ^IOStream, value: u8) -> bool ---

    abs ¶

    abs :: builtin.abs

    acos ¶

    acos :: proc "c" (x: f64) -> f64 ---

    acosf ¶

    acosf :: proc "c" (x: f32) -> f32 ---

    aligned_alloc ¶

    aligned_alloc :: proc "c" (alignment: uint, size: uint) -> rawptr ---

    aligned_free ¶

    aligned_free :: proc "c" (mem: rawptr) ---

    asin ¶

    asin :: proc "c" (x: f64) -> f64 ---

    asinf ¶

    asinf :: proc "c" (x: f32) -> f32 ---

    asprintf ¶

    asprintf :: proc "c" (strp: ^[^]u8, fmt: cstring, .. args: ..any) -> i32 ---

    assert ¶

    assert :: proc "c" (condition: bool, loc := #caller_location, _message: string = #caller_expression(condition)) {…}

    assert_release ¶

    assert_release :: assert

    atan ¶

    atan :: proc "c" (x: f64) -> f64 ---

    atan2 ¶

    atan2 :: proc "c" (y, x: f64) -> f64 ---

    atan2f ¶

    atan2f :: proc "c" (y, x: f32) -> f32 ---

    atanf ¶

    atanf :: proc "c" (x: f32) -> f32 ---

    atof ¶

    atof :: proc "c" (str: cstring) -> f64 ---

    atoi ¶

    atoi :: proc "c" (str: cstring) -> i32 ---

    bsearch ¶

    bsearch :: proc "c" (key: rawptr, base: rawptr, nmemb: uint, size: uint, compare: CompareCallback) -> rawptr ---

    bsearch_r ¶

    bsearch_r :: proc "c" (
    	key:      rawptr, 
    	base:     rawptr, 
    	nmemb:    uint, 
    	size:     uint, 
    	compare:  CompareCallback_r, 
    	userdata: rawptr, 
    ) -> rawptr ---

    calloc ¶

    calloc :: proc "c" (nmemb: uint, size: uint) -> rawptr ---

    ceil ¶

    ceil :: proc "c" (x: f64) -> f64 ---

    ceilf ¶

    ceilf :: proc "c" (x: f32) -> f32 ---

    clamp ¶

    clamp :: builtin.clamp

    copyp ¶

    copyp :: proc "contextless" (dst, src: ^$T) -> ^$T {…}

    copysign ¶

    copysign :: proc "c" (x, y: f64) -> f64 ---

    copysignf ¶

    copysignf :: proc "c" (x, y: f32) -> f32 ---

    cos ¶

    cos :: proc "c" (x: f64) -> f64 ---

    cosf ¶

    cosf :: proc "c" (x: f32) -> f32 ---

    crc16 ¶

    crc16 :: proc "c" (crc: u16, data: rawptr, len: uint) -> u16 ---

    crc32 ¶

    crc32 :: proc "c" (crc: u32, data: rawptr, len: uint) -> u32 ---

    disabled_assert ¶

    disabled_assert :: proc "c" (condition: bool) {…}

    enabled_assert ¶

    enabled_assert :: proc "c" (condition: bool, loc := #caller_location, _message: string = #caller_expression(condition)) {…}

    exp ¶

    exp :: proc "c" (x: f64) -> f64 ---

    expf ¶

    expf :: proc "c" (x: f32) -> f32 ---

    fabs ¶

    fabs :: proc "c" (x: f64) -> f64 ---

    fabsf ¶

    fabsf :: proc "c" (x: f32) -> f32 ---

    floor ¶

    floor :: proc "c" (x: f64) -> f64 ---

    floorf ¶

    floorf :: proc "c" (x: f32) -> f32 ---

    fmod ¶

    fmod :: proc "c" (x, y: f64) -> f64 ---

    fmodf ¶

    fmodf :: proc "c" (x, y: f32) -> f32 ---

    free ¶

    free :: proc "c" (mem: rawptr) ---

    getenv ¶

    getenv :: proc "c" (name: cstring) -> cstring ---

    getenv_unsafe ¶

    getenv_unsafe :: proc "c" (name: cstring) -> cstring ---

    gl_set_proc_address ¶

    gl_set_proc_address :: proc(p: rawptr, name: cstring) {…}
     

    Used by vendor:OpenGL

    hid_ble_scan ¶

    hid_ble_scan :: proc "c" (active: bool) ---

    hid_close ¶

    hid_close :: proc "c" (dev: ^hid_device) -> i32 ---

    hid_device_change_count ¶

    hid_device_change_count :: proc "c" () -> u32 ---

    hid_enumerate ¶

    hid_enumerate :: proc "c" (vendor_id, product_id: u16) -> ^hid_device_info ---

    hid_exit ¶

    hid_exit :: proc "c" () -> i32 ---

    hid_free_enumeration ¶

    hid_free_enumeration :: proc "c" (devs: ^hid_device_info) ---

    hid_get_device_info ¶

    hid_get_device_info :: proc "c" (dev: ^hid_device) -> ^hid_device_info ---

    hid_get_feature_report ¶

    hid_get_feature_report :: proc "c" (dev: ^hid_device, data: [^]u8, length: uint) -> i32 ---

    hid_get_indexed_string ¶

    hid_get_indexed_string :: proc "c" (dev: ^hid_device, string_index: i32, string: [^]u16, maxlen: uint) -> i32 ---

    hid_get_input_report ¶

    hid_get_input_report :: proc "c" (dev: ^hid_device, data: [^]u8, length: uint) -> i32 ---

    hid_get_manufacturer_string ¶

    hid_get_manufacturer_string :: proc "c" (dev: ^hid_device, string: [^]u16, maxlen: uint) -> i32 ---

    hid_get_product_string ¶

    hid_get_product_string :: proc "c" (dev: ^hid_device, string: [^]u16, maxlen: uint) -> i32 ---

    hid_get_report_descriptor ¶

    hid_get_report_descriptor :: proc "c" (dev: ^hid_device, buf: [^]u8, buf_size: uint) -> i32 ---

    hid_get_serial_number_string ¶

    hid_get_serial_number_string :: proc "c" (dev: ^hid_device, string: [^]u16, maxlen: uint) -> i32 ---

    hid_init ¶

    hid_init :: proc "c" () -> i32 ---

    hid_open ¶

    hid_open :: proc "c" (vendor_id, product_id: u16, serial_number: [^]u16) -> ^hid_device ---

    hid_open_path ¶

    hid_open_path :: proc "c" (path: cstring) -> ^hid_device ---

    hid_read ¶

    hid_read :: proc "c" (dev: ^hid_device, data: [^]u8, length: uint) -> i32 ---

    hid_read_timeout ¶

    hid_read_timeout :: proc "c" (dev: ^hid_device, data: [^]u8, length: uint, milliseconds: i32) -> i32 ---

    hid_send_feature_report ¶

    hid_send_feature_report :: proc "c" (dev: ^hid_device, data: [^]u8, length: uint) -> i32 ---

    hid_set_nonblocking ¶

    hid_set_nonblocking :: proc "c" (dev: ^hid_device, nonblock: i32) -> i32 ---

    hid_write ¶

    hid_write :: proc "c" (dev: ^hid_device, data: [^]u8, length: uint) -> i32 ---

    iconv ¶

    iconv :: proc "c" (cd: ^iconv_data_t, inbuf: ^cstring, inbytesleft: ^uint, outbuf: ^[^]u8, outbytesleft: ^uint) -> uint ---

    iconv_close ¶

    iconv_close :: proc "c" (cd: ^iconv_data_t) -> i32 ---

    iconv_open ¶

    iconv_open :: proc "c" (tocode: cstring) -> ^iconv_data_t ---

    iconv_string ¶

    iconv_string :: proc "c" (tocode: cstring, fromcode: cstring, inbuf: cstring, inbytesleft: uint) -> [^]u8 ---

    iconv_utf8_locale ¶

    iconv_utf8_locale :: proc "c" (S: cstring) -> [^]u8 {…}

    iconv_utf8_ucs2 ¶

    iconv_utf8_ucs2 :: proc "c" (S: cstring) -> [^]u16 {…}

    iconv_utf8_ucs4 ¶

    iconv_utf8_ucs4 :: proc "c" (S: cstring) -> [^]rune {…}

    iconv_wchar_utf8 ¶

    iconv_wchar_utf8 :: proc "c" (S: [^]u16) -> [^]u8 {…}

    isalnum ¶

    isalnum :: proc "c" (x: rune) -> b32 ---

    isalpha ¶

    isalpha :: proc "c" (x: rune) -> b32 ---

    isblank ¶

    isblank :: proc "c" (x: rune) -> b32 ---

    iscntrl ¶

    iscntrl :: proc "c" (x: rune) -> b32 ---

    isdigit ¶

    isdigit :: proc "c" (x: rune) -> b32 ---

    isgraph ¶

    isgraph :: proc "c" (x: rune) -> b32 ---

    isinf ¶

    isinf :: proc "c" (x: f64) -> i32 ---

    isinff ¶

    isinff :: proc "c" (x: f32) -> i32 ---

    islower ¶

    islower :: proc "c" (x: rune) -> b32 ---

    isnan ¶

    isnan :: proc "c" (x: f64) -> i32 ---

    isnanf ¶

    isnanf :: proc "c" (x: f32) -> i32 ---

    isprint ¶

    isprint :: proc "c" (x: rune) -> b32 ---

    ispunct ¶

    ispunct :: proc "c" (x: rune) -> b32 ---

    isspace ¶

    isspace :: proc "c" (x: rune) -> b32 ---

    isupper ¶

    isupper :: proc "c" (x: rune) -> b32 ---

    isxdigit ¶

    isxdigit :: proc "c" (x: rune) -> b32 ---

    itoa ¶

    itoa :: proc "c" (value: i32, str: [^]u8, radix: i32) -> [^]u8 ---

    lltoa ¶

    lltoa :: proc "c" (value: i64, str: [^]u8, radix: i32) -> [^]u8 ---

    log ¶

    log :: proc "c" (x: f64) -> f64 ---

    log10 ¶

    log10 :: proc "c" (x: f64) -> f64 ---

    log10f ¶

    log10f :: proc "c" (x: f32) -> f32 ---

    logf ¶

    logf :: proc "c" (x: f32) -> f32 ---

    lround ¶

    lround :: proc "c" (x: f64) -> i32 ---

    lroundf ¶

    lroundf :: proc "c" (x: f32) -> i32 ---

    ltoa ¶

    ltoa :: proc "c" (value: i32, str: [^]u8, radix: i32) -> [^]u8 ---

    malloc ¶

    malloc :: proc "c" (size: uint) -> rawptr ---

    max ¶

    max :: builtin.max

    memcmp ¶

    memcmp :: proc "c" (s1, s2: rawptr, len: i32) -> i32 ---

    memcpy ¶

    memcpy :: proc "c" (dst, src: rawptr, len: uint) -> rawptr ---

    memmove ¶

    memmove :: proc "c" (dst, src: rawptr, len: uint) -> rawptr ---

    memset ¶

    memset :: proc "c" (dst: rawptr, c: i32, len: uint) -> rawptr ---

    min ¶

    min :: builtin.min

    modf ¶

    modf :: proc "c" (x: f64, y: ^f64) -> f64 ---

    modff ¶

    modff :: proc "c" (x: f32, y: ^f32) -> f32 ---

    murmur3_32 ¶

    murmur3_32 :: proc "c" (data: rawptr, len: uint, seed: u32) -> u32 ---

    pow ¶

    pow :: proc "c" (x, y: f64) -> f64 ---

    powf ¶

    powf :: proc "c" (x, y: f32) -> f32 ---

    qsort ¶

    qsort :: proc "c" (base: rawptr, nmemb: uint, size: uint, compare: CompareCallback) ---

    qsort_r ¶

    qsort_r :: proc "c" (base: rawptr, nmemb: uint, size: uint, compare: CompareCallback_r, userdata: rawptr) ---

    rand ¶

    rand :: proc "c" (n: i32) -> i32 ---

    rand_bits ¶

    rand_bits :: proc "c" () -> u32 ---

    rand_bits_r ¶

    rand_bits_r :: proc "c" (state: ^u64) -> u32 ---

    rand_r ¶

    rand_r :: proc "c" (state: ^u64, n: i32) -> i32 ---

    randf ¶

    randf :: proc "c" () -> f32 ---

    randf_r ¶

    randf_r :: proc "c" (state: ^u64) -> f32 ---

    realloc ¶

    realloc :: proc "c" (mem: rawptr, size: uint) -> rawptr ---

    round ¶

    round :: proc "c" (x: f64) -> f64 ---

    roundf ¶

    roundf :: proc "c" (x: f32) -> f32 ---

    scalbn ¶

    scalbn :: proc "c" (x: f64, n: i32) -> f64 ---

    scalbnf ¶

    scalbnf :: proc "c" (x: f32, n: i32) -> f32 ---

    setenv_unsafe ¶

    setenv_unsafe :: proc "c" (name, value: cstring, overwrite: b32) -> i32 ---

    sin ¶

    sin :: proc "c" (x: f64) -> f64 ---

    sinf ¶

    sinf :: proc "c" (x: f32) -> f32 ---

    size_add_check_overflow ¶

    size_add_check_overflow :: proc "c" (a, b: uint) -> (uint, bool) {…}

    size_add_check_overflow_ptr ¶

    size_add_check_overflow_ptr :: proc "c" (a, b: uint, ret: ^uint) -> bool {…}

    size_mul_check_overflow ¶

    size_mul_check_overflow :: proc "c" (a, b: uint, ret: ^uint) -> (uint, bool) {…}

    size_mul_check_overflow_ptr ¶

    size_mul_check_overflow_ptr :: proc "c" (a, b: uint, ret: ^uint) -> bool {…}

    snprintf ¶

    snprintf :: proc "c" (text: [^]u8, maxlen: uint, fmt: cstring, .. args: ..any) -> i32 ---

    sqrt ¶

    sqrt :: proc "c" (x: f64) -> f64 ---

    sqrtf ¶

    sqrtf :: proc "c" (x: f32) -> f32 ---

    srand ¶

    srand :: proc "c" (seed: u64) ---

    sscanf ¶

    sscanf :: proc "c" (text: cstring, fmt: cstring, .. args: ..any) -> i32 ---

    stack_alloc ¶

    stack_alloc :: intrinsics.alloca

    strcasecmp ¶

    strcasecmp :: proc "c" (str1, str2: cstring) -> i32 ---

    strcasestr ¶

    strcasestr :: proc "c" (haystack: cstring, needle: cstring) -> [^]u8 ---

    strchr ¶

    strchr :: proc "c" (str: cstring, c: rune) -> [^]u8 ---

    strcmp ¶

    strcmp :: proc "c" (str1, str2: cstring) -> i32 ---

    strdup ¶

    strdup :: proc "c" (str: cstring) -> [^]u8 ---

    strlcat ¶

    strlcat :: proc "c" (dst: [^]u8, src: cstring, maxlen: uint) -> uint ---

    strlcpy ¶

    strlcpy :: proc "c" (dst: [^]u8, src: cstring, maxlen: uint) -> uint ---

    strlen ¶

    strlen :: proc "c" (str: cstring) -> uint ---

    strlwr ¶

    strlwr :: proc "c" (str: [^]u8) -> [^]u8 ---

    strncasecmp ¶

    strncasecmp :: proc "c" (str1, str2: cstring, maxlen: uint) -> i32 ---

    strncmp ¶

    strncmp :: proc "c" (str1, str2: cstring, maxlen: uint) -> i32 ---

    strndup ¶

    strndup :: proc "c" (str: cstring, maxlen: uint) -> [^]u8 ---

    strnlen ¶

    strnlen :: proc "c" (str: cstring, maxlen: uint) -> uint ---

    strnstr ¶

    strnstr :: proc "c" (haystack: cstring, needle: cstring, maxlen: uint) -> [^]u8 ---

    strpbrk ¶

    strpbrk :: proc "c" (str: cstring, breakset: cstring) -> [^]u8 ---

    strrchr ¶

    strrchr :: proc "c" (str: cstring, c: rune) -> [^]u8 ---

    strrev ¶

    strrev :: proc "c" (str: [^]u8) -> [^]u8 ---

    strstr ¶

    strstr :: proc "c" (haystack: cstring, needle: cstring) -> [^]u8 ---

    strtod ¶

    strtod :: proc "c" (str: cstring, endp: ^[^]u8) -> f64 ---

    strtok_r ¶

    strtok_r :: proc "c" (str: [^]u8, delim: cstring, saveptr: ^[^]u8) -> [^]u8 ---

    strtol ¶

    strtol :: proc "c" (str: cstring, endp: ^[^]u8, base: i32) -> i32 ---

    strtoll ¶

    strtoll :: proc "c" (str: cstring, endp: ^[^]u8, base: i32) -> i64 ---

    strtoul ¶

    strtoul :: proc "c" (str: cstring, endp: ^[^]u8, base: i32) -> u32 ---

    strtoull ¶

    strtoull :: proc "c" (str: cstring, endp: ^[^]u8, base: i32) -> u64 ---

    strupr ¶

    strupr :: proc "c" (str: [^]u8) -> [^]u8 ---

    swprintf ¶

    swprintf :: proc "c" (text: [^]u16, maxlen: uint, fmt: cstring, .. args: ..any) -> i32 ---

    tan ¶

    tan :: proc "c" (x: f64) -> f64 ---

    tanf ¶

    tanf :: proc "c" (x: f32) -> f32 ---

    tolower ¶

    tolower :: proc "c" (x: rune) -> rune ---

    toupper ¶

    toupper :: proc "c" (x: rune) -> rune ---

    trunc ¶

    trunc :: proc "c" (x: f64) -> f64 ---

    truncf ¶

    truncf :: proc "c" (x: f32) -> f32 ---

    uitoa ¶

    uitoa :: proc "c" (value: u32, str: [^]u8, radix: i32) -> [^]u8 ---

    ulltoa ¶

    ulltoa :: proc "c" (value: u64, str: [^]u8, radix: i32) -> [^]u8 ---

    ultoa ¶

    ultoa :: proc "c" (value: u32, str: [^]u8, radix: i32) -> [^]u8 ---

    unsetenv_unsafe ¶

    unsetenv_unsafe :: proc "c" (name: cstring) -> i32 ---

    utf8strlcpy ¶

    utf8strlcpy :: proc "c" (dst: [^]u8, src: cstring, dst_bytes: uint) -> uint ---

    utf8strlen ¶

    utf8strlen :: proc "c" (str: cstring) -> uint ---

    utf8strnlen ¶

    utf8strnlen :: proc "c" (str: cstring, bytes: uint) -> uint ---

    vasprintf ¶

    vasprintf :: proc "c" (strp: ^[^]u8, fmt: cstring, ap: c.va_list) -> i32 ---

    vsnprintf ¶

    vsnprintf :: proc "c" (text: [^]u8, maxlen: uint, fmt: cstring, ap: c.va_list) -> i32 ---

    vsscanf ¶

    vsscanf :: proc "c" (text: cstring, fmt: cstring, ap: c.va_list) -> i32 ---

    vswprintf ¶

    vswprintf :: proc "c" (text: [^]u16, maxlen: uint, fmt: cstring, ap: c.va_list) -> i32 ---

    wcscasecmp ¶

    wcscasecmp :: proc "c" (str1, str2: [^]u16) -> int ---

    wcscmp ¶

    wcscmp :: proc "c" (str1, str2: [^]u16) -> int ---

    wcsdup ¶

    wcsdup :: proc "c" (wstr: [^]u16) -> [^]u16 ---

    wcslcat ¶

    wcslcat :: proc "c" (dst, src: [^]u16, maxlen: uint) -> uint ---

    wcslcpy ¶

    wcslcpy :: proc "c" (dst, src: [^]u16, maxlen: uint) -> uint ---

    wcslen ¶

    wcslen :: proc "c" (wstr: [^]u16) -> uint ---

    wcsncasecmp ¶

    wcsncasecmp :: proc "c" (str1, str2: [^]u16, maxlen: uint) -> int ---

    wcsncmp ¶

    wcsncmp :: proc "c" (str1, str2: [^]u16, maxlen: uint) -> int ---

    wcsnlen ¶

    wcsnlen :: proc "c" (wstr: [^]u16, maxlen: uint) -> uint ---

    wcsnstr ¶

    wcsnstr :: proc "c" (haystack, needle: [^]u16, maxlen: uint) -> [^]u16 ---

    wcsstr ¶

    wcsstr :: proc "c" (haystack, needle: [^]u16) -> [^]u16 ---

    wcstol ¶

    wcstol :: proc "c" (str: [^]u16, endp: ^[^]u16, base: i32) -> i32 ---

    zeroa ¶

    zeroa :: proc "contextless" (x: []$T) {…}

    zerop ¶

    zerop :: proc "contextless" (x: ^$T) {…}

    Procedure Groups

    This section is empty.

    Source Files

    Generation Information

    Generated with odin version dev-2025-02 (vendor "odin") Windows_amd64 @ 2025-02-19 21:11:56.966695900 +0000 UTC