package vendor:sdl2

⌘K
Ctrl+K
or
/

    Index

    Types (176)
    Constants (592)
    Variables (0)

    This section is empty.

    Procedures (772)
    Procedure Groups (0)

    This section is empty.

    Types

    AudioCVT ¶

    AudioCVT :: struct #packed {
    	needed:       i32,
    	// *< Set to 1 if conversion possible 
    	src_format:   AudioFormat,
    	// *< Source audio format 
    	dst_format:   AudioFormat,
    	// *< Target audio format 
    	rate_incr:    f64,
    	// *< Rate conversion increment 
    	buf:          [^]u8,
    	// *< Buffer to hold entire audio data 
    	len:          i32,
    	// *< Length of original audio buffer 
    	len_cvt:      i32,
    	// *< Length of converted audio buffer 
    	len_mult:     i32,
    	// *< buffer must be len*len_mult big 
    	len_ratio:    f64,
    	// *< Given len, final size is len*len_ratio 
    	filters:      [10]AudioFilter,
    	// *< NULL-terminated list of filter functions 
    	filter_index: i32,
    }
    Related Procedures With Parameters

    AudioCallback ¶

    AudioCallback :: proc "c" (userdata: rawptr, stream: [^]u8, len: i32)

    AudioDeviceEvent ¶

    AudioDeviceEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	which:     u32,
    	// *< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event 
    	iscapture: u8,
    	// *< zero if an output device, non-zero if a capture device. 
    	_:         u8,
    	_:         u8,
    	_:         u8,
    }

    AudioFilter ¶

    AudioFilter :: proc "c" (cvt: ^AudioCVT, format: AudioFormat)

    AudioFormat ¶

    AudioFormat :: distinct u16
     

    * * \brief Audio format flags. * * These are what the 16 bits in SDL_AudioFormat currently mean... * (Unspecified bits are always zero). * * \verbatim ++-----------------------sample is signed if set || || ++-----------sample is bigendian if set || || || || ++---sample is float if set || || || || || || +---sample bit size---+ || || || | | 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 \endverbatim * * There are macros in SDL 2.0 and later to query these bits.

    Related Procedures With Parameters

    AudioSpec ¶

    AudioSpec :: struct {
    	freq:     i32,
    	// *< DSP frequency -- samples per second 
    	format:   AudioFormat,
    	// *< Audio data format 
    	channels: u8,
    	// *< Number of channels: 1 mono, 2 stereo 
    	silence:  u8,
    	// *< Audio buffer silence value (calculated) 
    	samples:  u16,
    	// *< Audio buffer size in sample FRAMES (total samples divided by channel count) 
    	padding:  u16,
    	// *< Necessary for some compile environments 
    	size:     u32,
    	// *< Audio buffer size in bytes (calculated) 
    	callback: AudioCallback,
    	// *< Callback that feeds the audio device (NULL to use SDL_QueueAudio()). 
    	userdata: rawptr,
    }
     

    * * The calculated values in this structure are calculated by SDL_OpenAudio(). * * For multi-channel audio, the default SDL channel mapping is: * 2: FL FR (stereo) * 3: FL FR LFE (2.1 surround) * 4: FL FR BL BR (quad) * 5: FL FR FC BL BR (quad + center) * 6: FL FR FC LFE SL SR (5.1 surround - last two can also be BL BR) * 7: FL FR FC LFE BC SL SR (6.1 surround) * 8: FL FR FC LFE BL BR SL SR (7.1 surround)

    Related Procedures With Parameters

    AudioStatus ¶

    AudioStatus :: enum i32 {
    	STOPPED = 0, 
    	PLAYING, 
    	PAUSED, 
    }
    Related Procedures With Returns

    AudioStream ¶

    AudioStream :: struct {}
     

    this is opaque to the outside world.

    Related Procedures With Parameters
    Related Procedures With Returns

    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
    }
     

    * * \brief The normalized factor used to multiply pixel components

    Related Procedures With Parameters

    BlendMode ¶

    BlendMode :: enum i32 {
    	NONE    = 0,          // *< no blending
    	                        dstRGBA = srcRGBA
    	BLEND   = 1,          // *< alpha blending
    	                        dstRGB = (srcRGB * srcA) + (dstRGB * (1-srcA))
    	                        dstA = srcA + (dstA * (1-srcA))
    	ADD     = 2,          // *< additive blending
    	                        dstRGB = (srcRGB * srcA) + dstRGB
    	                        dstA = dstA
    	MOD     = 4,          // *< color modulate
    	                        dstRGB = srcRGB * dstRGB
    	                        dstA = dstA
    	MUL     = 8,          // *< color multiply
    	                        dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA))
    	                        dstA = (srcA * dstA) + (dstA * (1-srcA))
    	INVALID = 2147483647, 
    }
     

    * * \brief The blend mode used in SDL_RenderCopy() and drawing operations.

    Related Procedures With Parameters
    Related Procedures With Returns

    BlendOperation ¶

    BlendOperation :: enum i32 {
    	ADD          = 1, // *< dst + src: supported by all renderers
    	SUBTRACT     = 2, // *< dst - src : supported by D3D9, D3D11, OpenGL, OpenGLES
    	REV_SUBTRACT = 3, // *< src - dst : supported by D3D9, D3D11, OpenGL, OpenGLES
    	MINIMUM      = 4, // *< min(dst, src) : supported by D3D11
    	MAXIMUM      = 5, // *< max(dst, src) : supported by D3D11
    }
     

    * * \brief The blend operation used when combining source and destination pixel components

    Related Procedures With Parameters

    BlitMap ¶

    BlitMap :: struct {}

    Color ¶

    Color :: struct {
    	r,
    	g,
    	b,
    	a: u8,
    }

    CommonEvent ¶

    CommonEvent :: struct {
    	type:      EventType,
    	timestamp: u32,
    }

    ControllerAxisEvent ¶

    ControllerAxisEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_JOYAXISMOTION 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	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,
    }

    ControllerButtonEvent ¶

    ControllerButtonEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	which:     JoystickID,
    	// *< The joystick instance id 
    	button:    u8,
    	// *< The joystick button index 
    	state:     u8,
    	// *< ::SDL_PRESSED or ::SDL_RELEASED 
    	_:         u8,
    	_:         u8,
    }

    ControllerDeviceEvent ¶

    ControllerDeviceEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	which:     i32,
    }

    ControllerSensorEvent ¶

    ControllerSensorEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_CONTROLLERSENSORUPDATE 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	which:     JoystickID,
    	// *< The joystick instance id 
    	sensor:    i32,
    	// *< The type of the sensor, one of the values of ::SDL_SensorType 
    	data:      [3]f32,
    }

    ControllerTouchpadEvent ¶

    ControllerTouchpadEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_CONTROLLERTOUCHPADDOWN or ::SDL_CONTROLLERTOUCHPADMOTION or ::SDL_CONTROLLERTOUCHPADUP 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	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,
    }

    Cursor ¶

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

    DisplayEvent ¶

    DisplayEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_DISPLAYEVENT 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	display:   u32,
    	// *< The associated display index 
    	event:     DisplayEventID,
    	// *< ::SDL_DisplayEventID 
    	_:         u8,
    	_:         u8,
    	_:         u8,
    	data1:     i32,
    }

    DisplayEventID ¶

    DisplayEventID :: enum u8 {
    	NONE,         // *< Never used
    	ORIENTATION,  // *< Display orientation has changed to data1
    	CONNECTED,    // *< Display has been added to the system
    	DISCONNECTED, // *< Display has been removed from the system
    }

    DisplayMode ¶

    DisplayMode :: struct {
    	format:       u32,
    	// *< pixel format 
    	w:            i32,
    	// *< width, in screen coordinates 
    	h:            i32,
    	// *< height, in screen coordinates 
    	refresh_rate: i32,
    	// *< refresh rate (or zero for unspecified) 
    	driverdata:   rawptr,
    }
    Related Procedures With Parameters

    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

    DollarGestureEvent ¶

    DollarGestureEvent :: struct {
    	type:       EventType,
    	// *< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD 
    	timestamp:  u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	touchId:    TouchID,
    	// *< The touch device id 
    	gestureId:  GestureID,
    	numFingers: u32,
    	error:      f32,
    	x:          f32,
    	// *< Normalized center of gesture 
    	y:          f32,
    }
     

    * \brief Dollar Gesture Event (event.dgesture.)

    DropEvent ¶

    DropEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	file:      cstring,
    	// *< The file name, which should be freed with SDL_free(), is NULL on begin/complete 
    	windowID:  u32,
    }

    Event ¶

    Event :: struct #raw_union {
    	type:      EventType,
    	// *< Event type, shared with all events 
    	common:    CommonEvent,
    	// *< Common event data 
    	display:   DisplayEvent,
    	// *< Display event data 
    	window:    WindowEvent,
    	// *< Window event data 
    	key:       KeyboardEvent,
    	// *< Keyboard event data 
    	edit:      TextEditingEvent,
    	// *< Text editing event data 
    	text:      TextInputEvent,
    	// *< Text input event data 
    	motion:    MouseMotionEvent,
    	// *< Mouse motion event data 
    	button:    MouseButtonEvent,
    	// *< Mouse button event data 
    	wheel:     MouseWheelEvent,
    	// *< Mouse wheel 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 
    	jdevice:   JoyDeviceEvent,
    	// *< Joystick device change event data 
    	caxis:     ControllerAxisEvent,
    	// *< Game Controller axis event data 
    	cbutton:   ControllerButtonEvent,
    	// *< Game Controller button event data 
    	cdevice:   ControllerDeviceEvent,
    	// *< Game Controller device event data 
    	ctouchpad: ControllerTouchpadEvent,
    	// *< Game Controller touchpad event data 
    	csensor:   ControllerSensorEvent,
    	// *< Game Controller sensor event data 
    	adevice:   AudioDeviceEvent,
    	// *< Audio device event data 
    	sensor:    SensorEvent,
    	// *< Sensor event data 
    	quit:      QuitEvent,
    	// *< Quit request event data 
    	user:      UserEvent,
    	// *< Custom event data 
    	syswm:     SysWMEvent,
    	// *< System dependent window event data 
    	tfinger:   TouchFingerEvent,
    	// *< Touch finger event data 
    	mgesture:  MultiGestureEvent,
    	// *< Gesture event data 
    	dgesture:  DollarGestureEvent,
    	// *< Gesture event data 
    	drop:      DropEvent,
    	// *< Drag and drop event data 
    	padding:   [56]u8,
    }
    Related Procedures With Parameters

    EventFilter ¶

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

    EventType ¶

    EventType :: enum u32 {
    	FIRSTEVENT               = 0,     // *< Unused (do not remove)
    	// Application events 
    	QUIT                     = 256,   // *< User-requested quit
    	// These application events have special meaning on iOS, see README-ios.md for details 
    	APP_TERMINATING,                  // *< The application is being terminated by the OS
    	                             Called on iOS in applicationWillTerminate()
    	                             Called on Android in onDestroy()
    	APP_LOWMEMORY,                    // *< The application is low on memory, free memory if possible.
    	                             Called on iOS in applicationDidReceiveMemoryWarning()
    	                             Called on Android in onLowMemory()
    	APP_WILLENTERBACKGROUND,          // *< The application is about to enter the background
    	                             Called on iOS in applicationWillResignActive()
    	                             Called on Android in onPause()
    	APP_DIDENTERBACKGROUND,           // *< The application did enter the background and may not get CPU for some time
    	                             Called on iOS in applicationDidEnterBackground()
    	                             Called on Android in onPause()
    	APP_WILLENTERFOREGROUND,          // *< The application is about to enter the foreground
    	                             Called on iOS in applicationWillEnterForeground()
    	                             Called on Android in onResume()
    	APP_DIDENTERFOREGROUND,           // *< The application is now interactive
    	                             Called on iOS in applicationDidBecomeActive()
    	                             Called on Android in onResume()
    	LOCALECHANGED,                    // *< The user's locale preferences have changed.
    	// Display events 
    	DISPLAYEVENT             = 336,   // *< Display state change
    	// Window events 
    	WINDOWEVENT              = 512,   // *< Window state change
    	SYSWMEVENT,                       // *< System specific event
    	// Keyboard events 
    	KEYDOWN                  = 768,   // *< Key pressed
    	KEYUP,                            // *< Key released
    	TEXTEDITING,                      // *< Keyboard text editing (composition)
    	TEXTINPUT,                        // *< Keyboard text input
    	KEYMAPCHANGED,                    // *< Keymap changed due to a system event such as an
    	                             input language or keyboard layout change.
    	// Mouse events 
    	MOUSEMOTION              = 1024,  // *< Mouse moved
    	MOUSEBUTTONDOWN,                  // *< Mouse button pressed
    	MOUSEBUTTONUP,                    // *< Mouse button released
    	MOUSEWHEEL,                       // *< Mouse wheel motion
    	// Joystick events 
    	JOYAXISMOTION            = 1536,  // *< Joystick axis motion
    	JOYBALLMOTION,                    // *< Joystick trackball motion
    	JOYHATMOTION,                     // *< Joystick hat position change
    	JOYBUTTONDOWN,                    // *< Joystick button pressed
    	JOYBUTTONUP,                      // *< Joystick button released
    	JOYDEVICEADDED,                   // *< A new joystick has been inserted into the system
    	JOYDEVICEREMOVED,                 // *< An opened joystick has been removed
    	// Game controller events 
    	CONTROLLERAXISMOTION     = 1616,  // *< Game controller axis motion
    	CONTROLLERBUTTONDOWN,             // *< Game controller button pressed
    	CONTROLLERBUTTONUP,               // *< Game controller button released
    	CONTROLLERDEVICEADDED,            // *< A new Game controller has been inserted into the system
    	CONTROLLERDEVICEREMOVED,          // *< An opened Game controller has been removed
    	CONTROLLERDEVICEREMAPPED,         // *< The controller mapping was updated
    	CONTROLLERTOUCHPADDOWN,           // *< Game controller touchpad was touched
    	CONTROLLERTOUCHPADMOTION,         // *< Game controller touchpad finger was moved
    	CONTROLLERTOUCHPADUP,             // *< Game controller touchpad finger was lifted
    	CONTROLLERSENSORUPDATE,           // *< Game controller sensor was updated
    	// Touch events 
    	FINGERDOWN               = 1792, 
    	FINGERUP, 
    	FINGERMOTION, 
    	// Gesture events 
    	DOLLARGESTURE            = 2048, 
    	DOLLARRECORD, 
    	MULTIGESTURE, 
    	// Clipboard events 
    	CLIPBOARDUPDATE          = 2304,  // *< The clipboard changed
    	// Drag and drop events 
    	DROPFILE                 = 4096,  // *< The system requests a file open
    	DROPTEXT,                         // *< text/plain drag-and-drop event
    	DROPBEGIN,                        // *< A new set of drops is beginning (NULL filename)
    	DROPCOMPLETE,                     // *< Current set of drops is now complete (NULL filename)
    	// Audio hotplug events 
    	AUDIODEVICEADDED         = 4352,  // *< A new audio device is available
    	AUDIODEVICEREMOVED,               // *< An audio device has been removed.
    	// Sensor events 
    	SENSORUPDATE             = 4608,  // *< A sensor was updated
    	// 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
    	// Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use,
    	// 	*  and should be allocated with SDL_RegisterEvents()
    	USEREVENT                = 32768, 
    	// *
    	// 	*  This last event is only for bounding internal arrays
    	LASTEVENT                = 65535, 
    }
    Related Procedures With Parameters

    FPoint ¶

    FPoint :: struct {
    	x: f32,
    	y: f32,
    }
    Related Procedures With Parameters

    FRect ¶

    FRect :: struct {
    	x,
    	y: f32,
    	w,
    	h: f32,
    }
    Related Procedures With Parameters

    Finger ¶

    Finger :: struct {
    	id:       FingerID,
    	x:        f32,
    	y:        f32,
    	pressure: f32,
    }
    Related Procedures With Returns

    FingerID ¶

    FingerID :: distinct i64

    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

    GLContext ¶

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

    GLContextResetNotification ¶

    GLContextResetNotification :: enum i32 {
    	NO_NOTIFICATION = 0, 
    	LOSE_CONTEXT    = 1, 
    }

    GLattr ¶

    GLattr :: enum i32 {
    	RED_SIZE, 
    	GREEN_SIZE, 
    	BLUE_SIZE, 
    	ALPHA_SIZE, 
    	BUFFER_SIZE, 
    	DOUBLEBUFFER, 
    	DEPTH_SIZE, 
    	STENCIL_SIZE, 
    	ACCUM_RED_SIZE, 
    	ACCUM_GREEN_SIZE, 
    	ACCUM_BLUE_SIZE, 
    	ACCUM_ALPHA_SIZE, 
    	STEREO, 
    	MULTISAMPLEBUFFERS, 
    	MULTISAMPLESAMPLES, 
    	ACCELERATED_VISUAL, 
    	RETAINED_BACKING, 
    	CONTEXT_MAJOR_VERSION, 
    	CONTEXT_MINOR_VERSION, 
    	CONTEXT_EGL, 
    	CONTEXT_FLAGS, 
    	CONTEXT_PROFILE_MASK, 
    	SHARE_WITH_CURRENT_CONTEXT, 
    	FRAMEBUFFER_SRGB_CAPABLE, 
    	CONTEXT_RELEASE_BEHAVIOR, 
    	CONTEXT_RESET_NOTIFICATION, 
    	CONTEXT_NO_ERROR, 
    }
    Related Procedures With Parameters

    GLcontextFlag ¶

    GLcontextFlag :: enum i32 {
    	DEBUG_FLAG              = 1, 
    	FORWARD_COMPATIBLE_FLAG = 2, 
    	ROBUST_ACCESS_FLAG      = 4, 
    	RESET_ISOLATION_FLAG    = 8, 
    }

    GLcontextReleaseFlag ¶

    GLcontextReleaseFlag :: enum i32 {
    	NONE  = 0, 
    	FLUSH = 1, 
    }

    GLprofile ¶

    GLprofile :: enum i32 {
    	CORE          = 1, 
    	COMPATIBILITY = 2, 
    	ES            = 4, // *< GLX_CONTEXT_ES2_PROFILE_BIT_EXT
    }

    GameControllerAxis ¶

    GameControllerAxis :: enum i32 {
    	INVALID      = -1, 
    	LEFTX, 
    	LEFTY, 
    	RIGHTX, 
    	RIGHTY, 
    	TRIGGERLEFT, 
    	TRIGGERRIGHT, 
    	MAX, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    GameControllerBindType ¶

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

    GameControllerButton ¶

    GameControllerButton :: enum i32 {
    	INVALID       = -1, 
    	A, 
    	B, 
    	X, 
    	Y, 
    	BACK, 
    	GUIDE, 
    	START, 
    	LEFTSTICK, 
    	RIGHTSTICK, 
    	LEFTSHOULDER, 
    	RIGHTSHOULDER, 
    	DPAD_UP, 
    	DPAD_DOWN, 
    	DPAD_LEFT, 
    	DPAD_RIGHT, 
    	MISC1,              // Xbox Series X share button, PS5 microphone button, Nintendo Switch Pro capture button, Amazon Luna microphone button
    	PADDLE1,            // Xbox Elite paddle P1
    	PADDLE2,            // Xbox Elite paddle P3
    	PADDLE3,            // Xbox Elite paddle P2
    	PADDLE4,            // Xbox Elite paddle P4
    	TOUCHPAD,           // PS4/PS5 touchpad button
    	MAX, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    GameControllerButtonBind ¶

    GameControllerButtonBind :: struct {
    	bindType: GameControllerBindType,
    	value:    struct #raw_union {
    		button: i32,
    		axis:   i32,
    		hat:    struct {
    			hat:      i32,
    			hat_mask: i32,
    		},
    	},
    }
    Related Procedures With Returns

    GameControllerType ¶

    GameControllerType :: enum i32 {
    	UNKNOWN             = 0, 
    	XBOX360, 
    	XBOXONE, 
    	PS3, 
    	PS4, 
    	NINTENDO_SWITCH_PRO, 
    	VIRTUAL, 
    	PS5, 
    	AMAZON_LUNA, 
    	GOOGLE_STADIA, 
    }
    Related Procedures With Returns

    GestureID ¶

    GestureID :: distinct i64
    Related Procedures With Parameters

    HapticCondition ¶

    HapticCondition :: struct {
    	// Header 
    	type:        HapticType,
    	// *< ::SDL_HAPTIC_SPRING, ::SDL_HAPTIC_DAMPER,
    	// 	                         ::SDL_HAPTIC_INERTIA or ::SDL_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:          HapticType,
    	// *< ::SDL_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:          HapticType,
    	// *< ::SDL_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:      HapticType,
    	// *< 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

    HapticLeftRight ¶

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

    HapticPeriodic ¶

    HapticPeriodic :: struct {
    	// Header 
    	type:          HapticType,
    	// *< ::SDL_HAPTIC_SINE, ::SDL_HAPTIC_LEFTRIGHT,
    	// 	                        ::SDL_HAPTIC_TRIANGLE, ::SDL_HAPTIC_SAWTOOTHUP or
    	// 	                        ::SDL_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:          HapticType,
    	// *< ::SDL_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 :: enum u16 {
    	CONSTANT     = 1, 
    	SINE         = 2, 
    	LEFTRIGHT    = 4, 
    	TRIANGLE     = 8, 
    	SAWTOOTHUP   = 16, 
    	SAWTOOTHDOWN = 32, 
    	RAMP         = 64, 
    	SPRING       = 128, 
    	DAMPER       = 256, 
    	INERTIA      = 512, 
    	FRICTION     = 1024, 
    	CUSTOM       = 2048, 
    	GAIN         = 4096, 
    	AUTOCENTER   = 8192, 
    	STATUS       = 16384, 
    	PAUSE        = 32768, 
    }

    HintCallback ¶

    HintCallback :: proc "c" (userdata: rawptr, name, 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, 
    	RESIZE_TOP, 
    	RESIZE_TOPRIGHT, 
    	RESIZE_RIGHT, 
    	RESIZE_BOTTOMRIGHT, 
    	RESIZE_BOTTOM, 
    	RESIZE_BOTTOMLEFT, 
    	RESIZE_LEFT, 
    }

    ID3D11Device ¶

    ID3D11Device :: struct {}
    Related Procedures With Returns

    IDirect3DDevice9 ¶

    IDirect3DDevice9 :: struct {}
    Related Procedures With Returns

    InitFlag ¶

    InitFlag :: enum u32 {
    	TIMER          = 0, 
    	AUDIO          = 4, 
    	VIDEO          = 5, 
    	JOYSTICK       = 9, 
    	HAPTIC         = 12, 
    	GAMECONTROLLER = 13, 
    	EVENTS         = 14, 
    	SENSOR         = 15, 
    	NOPARACHUTE    = 20, 
    }

    InitFlags ¶

    InitFlags :: bit_set[InitFlag; u32]

    JoyAxisEvent ¶

    JoyAxisEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_JOYAXISMOTION 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	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 {
    	type:      EventType,
    	// *< ::SDL_JOYBALLMOTION 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	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,
    }

    JoyButtonEvent ¶

    JoyButtonEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	which:     JoystickID,
    	// *< The joystick instance id 
    	button:    u8,
    	// *< The joystick button index 
    	state:     u8,
    	// *< ::SDL_PRESSED or ::SDL_RELEASED 
    	_:         u8,
    	_:         u8,
    }

    JoyDeviceEvent ¶

    JoyDeviceEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	which:     i32,
    }

    JoyHatEvent ¶

    JoyHatEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_JOYHATMOTION 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	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,
    }

    JoystickGUID ¶

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

    JoystickID ¶

    JoystickID :: distinct i32
    Related Procedures With Parameters
    Related Procedures With Returns

    JoystickPowerLevel ¶

    JoystickPowerLevel :: enum i32 {
    	UNKNOWN = -1, 
    	EMPTY,        // <= 5%
    	LOW,          // <= 20%
    	MEDIUM,       // <= 70%
    	FULL,         // <= 100%
    	WIRED, 
    	MAX, 
    }
    Related Procedures With Returns

    JoystickType ¶

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

    KeyboardEvent ¶

    KeyboardEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_KEYDOWN or ::SDL_KEYUP 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	windowID:  u32,
    	// *< The window with keyboard focus, if any 
    	state:     u8,
    	// *< ::SDL_PRESSED or ::SDL_RELEASED 
    	repeat:    u8,
    	// *< Non-zero if this is a key repeat 
    	_:         u8,
    	_:         u8,
    	keysym:    Keysym,
    }

    Keycode ¶

    Keycode :: enum i32 {
    	UNKNOWN            = 0, 
    	RETURN             = 13, 
    	ESCAPE             = 27, 
    	BACKSPACE          = 8, 
    	TAB                = 9, 
    	SPACE              = 32, 
    	EXCLAIM            = 33, 
    	QUOTEDBL           = 34, 
    	HASH               = 35, 
    	PERCENT            = 37, 
    	DOLLAR             = 36, 
    	AMPERSAND          = 38, 
    	QUOTE              = 39, 
    	LEFTPAREN          = 40, 
    	RIGHTPAREN         = 41, 
    	ASTERISK           = 42, 
    	PLUS               = 43, 
    	COMMA              = 44, 
    	MINUS              = 45, 
    	PERIOD             = 46, 
    	SLASH              = 47, 
    	NUM0               = 48, 
    	NUM1               = 49, 
    	NUM2               = 50, 
    	NUM3               = 51, 
    	NUM4               = 52, 
    	NUM5               = 53, 
    	NUM6               = 54, 
    	NUM7               = 55, 
    	NUM8               = 56, 
    	NUM9               = 57, 
    	COLON              = 58, 
    	SEMICOLON          = 59, 
    	LESS               = 60, 
    	EQUALS             = 61, 
    	GREATER            = 62, 
    	QUESTION           = 63, 
    	AT                 = 64, 
    	LEFTBRACKET        = 91, 
    	BACKSLASH          = 92, 
    	RIGHTBRACKET       = 93, 
    	CARET              = 94, 
    	UNDERSCORE         = 95, 
    	BACKQUOTE          = 96, 
    	a                  = 97, 
    	b                  = 98, 
    	c                  = 99, 
    	d                  = 100, 
    	e                  = 101, 
    	f                  = 102, 
    	g                  = 103, 
    	h                  = 104, 
    	i                  = 105, 
    	j                  = 106, 
    	k                  = 107, 
    	l                  = 108, 
    	m                  = 109, 
    	n                  = 110, 
    	o                  = 111, 
    	p                  = 112, 
    	q                  = 113, 
    	r                  = 114, 
    	s                  = 115, 
    	t                  = 116, 
    	u                  = 117, 
    	v                  = 118, 
    	w                  = 119, 
    	x                  = 120, 
    	y                  = 121, 
    	z                  = 122, 
    	A                  = 97, 
    	B                  = 98, 
    	C                  = 99, 
    	D                  = 100, 
    	E                  = 101, 
    	F                  = 102, 
    	G                  = 103, 
    	H                  = 104, 
    	I                  = 105, 
    	J                  = 106, 
    	K                  = 107, 
    	L                  = 108, 
    	M                  = 109, 
    	N                  = 110, 
    	O                  = 111, 
    	P                  = 112, 
    	Q                  = 113, 
    	R                  = 114, 
    	S                  = 115, 
    	T                  = 116, 
    	U                  = 117, 
    	V                  = 118, 
    	W                  = 119, 
    	X                  = 120, 
    	Y                  = 121, 
    	Z                  = 122, 
    	CAPSLOCK           = 1073741881, 
    	F1                 = 1073741882, 
    	F2                 = 1073741883, 
    	F3                 = 1073741884, 
    	F4                 = 1073741885, 
    	F5                 = 1073741886, 
    	F6                 = 1073741887, 
    	F7                 = 1073741888, 
    	F8                 = 1073741889, 
    	F9                 = 1073741890, 
    	F10                = 1073741891, 
    	F11                = 1073741892, 
    	F12                = 1073741893, 
    	PRINTSCREEN        = 1073741894, 
    	SCROLLLOCK         = 1073741895, 
    	PAUSE              = 1073741896, 
    	INSERT             = 1073741897, 
    	HOME               = 1073741898, 
    	PAGEUP             = 1073741899, 
    	DELETE             = 127, 
    	END                = 1073741901, 
    	PAGEDOWN           = 1073741902, 
    	RIGHT              = 1073741903, 
    	LEFT               = 1073741904, 
    	DOWN               = 1073741905, 
    	UP                 = 1073741906, 
    	NUMLOCKCLEAR       = 1073741907, 
    	KP_DIVIDE          = 1073741908, 
    	KP_MULTIPLY        = 1073741909, 
    	KP_MINUS           = 1073741910, 
    	KP_PLUS            = 1073741911, 
    	KP_ENTER           = 1073741912, 
    	KP_1               = 1073741913, 
    	KP_2               = 1073741914, 
    	KP_3               = 1073741915, 
    	KP_4               = 1073741916, 
    	KP_5               = 1073741917, 
    	KP_6               = 1073741918, 
    	KP_7               = 1073741919, 
    	KP_8               = 1073741920, 
    	KP_9               = 1073741921, 
    	KP_0               = 1073741922, 
    	KP_PERIOD          = 1073741923, 
    	APPLICATION        = 1073741925, 
    	POWER              = 1073741926, 
    	KP_EQUALS          = 1073741927, 
    	F13                = 1073741928, 
    	F14                = 1073741929, 
    	F15                = 1073741930, 
    	F16                = 1073741931, 
    	F17                = 1073741932, 
    	F18                = 1073741933, 
    	F19                = 1073741934, 
    	F20                = 1073741935, 
    	F21                = 1073741936, 
    	F22                = 1073741937, 
    	F23                = 1073741938, 
    	F24                = 1073741939, 
    	EXECUTE            = 1073741940, 
    	HELP               = 1073741941, 
    	MENU               = 1073741942, 
    	SELECT             = 1073741943, 
    	STOP               = 1073741944, 
    	AGAIN              = 1073741945, 
    	UNDO               = 1073741946, 
    	CUT                = 1073741947, 
    	COPY               = 1073741948, 
    	PASTE              = 1073741949, 
    	FIND               = 1073741950, 
    	MUTE               = 1073741951, 
    	VOLUMEUP           = 1073741952, 
    	VOLUMEDOWN         = 1073741953, 
    	KP_COMMA           = 1073741957, 
    	KP_EQUALSAS400     = 1073741958, 
    	ALTERASE           = 1073741977, 
    	SYSREQ             = 1073741978, 
    	CANCEL             = 1073741979, 
    	CLEAR              = 1073741980, 
    	PRIOR              = 1073741981, 
    	RETURN2            = 1073741982, 
    	SEPARATOR          = 1073741983, 
    	OUT                = 1073741984, 
    	OPER               = 1073741985, 
    	CLEARAGAIN         = 1073741986, 
    	CRSEL              = 1073741987, 
    	EXSEL              = 1073741988, 
    	KP_00              = 1073742000, 
    	KP_000             = 1073742001, 
    	THOUSANDSSEPARATOR = 1073742002, 
    	DECIMALSEPARATOR   = 1073742003, 
    	CURRENCYUNIT       = 1073742004, 
    	CURRENCYSUBUNIT    = 1073742005, 
    	KP_LEFTPAREN       = 1073742006, 
    	KP_RIGHTPAREN      = 1073742007, 
    	KP_LEFTBRACE       = 1073742008, 
    	KP_RIGHTBRACE      = 1073742009, 
    	KP_TAB             = 1073742010, 
    	KP_BACKSPACE       = 1073742011, 
    	KP_A               = 1073742012, 
    	KP_B               = 1073742013, 
    	KP_C               = 1073742014, 
    	KP_D               = 1073742015, 
    	KP_E               = 1073742016, 
    	KP_F               = 1073742017, 
    	KP_XOR             = 1073742018, 
    	KP_POWER           = 1073742019, 
    	KP_PERCENT         = 1073742020, 
    	KP_LESS            = 1073742021, 
    	KP_GREATER         = 1073742022, 
    	KP_AMPERSAND       = 1073742023, 
    	KP_DBLAMPERSAND    = 1073742024, 
    	KP_VERTICALBAR     = 1073742025, 
    	KP_DBLVERTICALBAR  = 1073742026, 
    	KP_COLON           = 1073742027, 
    	KP_HASH            = 1073742028, 
    	KP_SPACE           = 1073742029, 
    	KP_AT              = 1073742030, 
    	KP_EXCLAM          = 1073742031, 
    	KP_MEMSTORE        = 1073742032, 
    	KP_MEMRECALL       = 1073742033, 
    	KP_MEMCLEAR        = 1073742034, 
    	KP_MEMADD          = 1073742035, 
    	KP_MEMSUBTRACT     = 1073742036, 
    	KP_MEMMULTIPLY     = 1073742037, 
    	KP_MEMDIVIDE       = 1073742038, 
    	KP_PLUSMINUS       = 1073742039, 
    	KP_CLEAR           = 1073742040, 
    	KP_CLEARENTRY      = 1073742041, 
    	KP_BINARY          = 1073742042, 
    	KP_OCTAL           = 1073742043, 
    	KP_DECIMAL         = 1073742044, 
    	KP_HEXADECIMAL     = 1073742045, 
    	LCTRL              = 1073742048, 
    	LSHIFT             = 1073742049, 
    	LALT               = 1073742050, 
    	LGUI               = 1073742051, 
    	RCTRL              = 1073742052, 
    	RSHIFT             = 1073742053, 
    	RALT               = 1073742054, 
    	RGUI               = 1073742055, 
    	MODE               = 1073742081, 
    	AUDIONEXT          = 1073742082, 
    	AUDIOPREV          = 1073742083, 
    	AUDIOSTOP          = 1073742084, 
    	AUDIOPLAY          = 1073742085, 
    	AUDIOMUTE          = 1073742086, 
    	MEDIASELECT        = 1073742087, 
    	WWW                = 1073742088, 
    	MAIL               = 1073742089, 
    	CALCULATOR         = 1073742090, 
    	COMPUTER           = 1073742091, 
    	AC_SEARCH          = 1073742092, 
    	AC_HOME            = 1073742093, 
    	AC_BACK            = 1073742094, 
    	AC_FORWARD         = 1073742095, 
    	AC_STOP            = 1073742096, 
    	AC_REFRESH         = 1073742097, 
    	AC_BOOKMARKS       = 1073742098, 
    	BRIGHTNESSDOWN     = 1073742099, 
    	BRIGHTNESSUP       = 1073742100, 
    	DISPLAYSWITCH      = 1073742101, 
    	KBDILLUMTOGGLE     = 1073742102, 
    	KBDILLUMDOWN       = 1073742103, 
    	KBDILLUMUP         = 1073742104, 
    	EJECT              = 1073742105, 
    	SLEEP              = 1073742106, 
    	APP1               = 1073742107, 
    	APP2               = 1073742108, 
    	AUDIOREWIND        = 1073742109, 
    	AUDIOFASTFORWARD   = 1073742110, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    Keymod ¶

    Keymod :: distinct bit_set[KeymodFlag; u16]
    Related Procedures With Parameters
    Related Procedures With Returns

    KeymodFlag ¶

    KeymodFlag :: enum u16 {
    	LSHIFT   = 0, 
    	RSHIFT   = 1, 
    	LCTRL    = 6, 
    	RCTRL    = 7, 
    	LALT     = 8, 
    	RALT     = 9, 
    	LGUI     = 10, 
    	RGUI     = 11, 
    	NUM      = 12, 
    	CAPS     = 13, 
    	MODE     = 14, 
    	RESERVED = 15, 
    }

    Keysym ¶

    Keysym :: struct {
    	scancode: Scancode,
    	// *< SDL physical key code - see ::SDL_Scancode for details 
    	sym:      Keycode,
    	// *< SDL virtual key code - see ::SDL_Keycode for details 
    	mod:      Keymod,
    	// *< current key modifiers 
    	unused:   u32,
    }

    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, 
    	// Reserved for future SDL library use 
    	RESERVED1, 
    	RESERVED2, 
    	RESERVED3, 
    	RESERVED4, 
    	RESERVED5, 
    	RESERVED6, 
    	RESERVED7, 
    	RESERVED8, 
    	RESERVED9, 
    	RESERVED10, 
    	// Beyond this point is reserved for application use, e.g.
    	// 	enum {
    	// 		MYAPP_CATEGORY_AWESOME1 = SDL_LOG_CATEGORY_CUSTOM,
    	// 		MYAPP_CATEGORY_AWESOME2,
    	// 		MYAPP_CATEGORY_AWESOME3,
    	// 		...
    	// 	};
    	CUSTOM, 
    }

    LogOutputFunction ¶

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

    LogPriority ¶

    LogPriority :: enum i32 {
    	DEFAULT  = 0, // CUSTOM ONE
    	VERBOSE  = 1, 
    	DEBUG, 
    	INFO, 
    	WARN, 
    	ERROR, 
    	CRITICAL, 
    	NUM, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    MessageBoxButtonData ¶

    MessageBoxButtonData :: struct {
    	flags:    MessageBoxButtonFlags,
    	// *< ::SDL_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 escape is hit
    }

    MessageBoxButtonFlags ¶

    MessageBoxButtonFlags :: distinct bit_set[MessageBoxButtonFlag; u32]

    MessageBoxColor ¶

    MessageBoxColor :: struct {
    	r,
    	g,
    	b: u8,
    }

    MessageBoxColorScheme ¶

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

    MessageBoxColorType ¶

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

    MessageBoxData ¶

    MessageBoxData :: struct {
    	flags:       MessageBoxFlags,
    	// *< ::SDL_MessageBoxFlags 
    	window:      ^Window,
    	// *< Parent window, can be NULL 
    	title:       cstring,
    	// *< UTF-8 title 
    	message:     cstring,
    	// *< UTF-8 message text 
    	numbuttons:  i32,
    	buttons:     ^MessageBoxButtonData,
    	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 {
    	type:      EventType,
    	// *< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	windowID:  u32,
    	// *< The window with mouse focus, if any 
    	which:     u32,
    	// *< The mouse instance id, or SDL_TOUCH_MOUSEID 
    	button:    u8,
    	// *< The mouse button index 
    	state:     u8,
    	// *< ::SDL_PRESSED or ::SDL_RELEASED 
    	clicks:    u8,
    	// *< 1 for single-click, 2 for double-click, etc. 
    	_:         u8,
    	x:         i32,
    	// *< X coordinate, relative to window 
    	y:         i32,
    }

    MouseMotionEvent ¶

    MouseMotionEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_MOUSEMOTION 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	windowID:  u32,
    	// *< The window with mouse focus, if any 
    	which:     u32,
    	// *< The mouse instance id, or SDL_TOUCH_MOUSEID 
    	state:     u32,
    	// *< The current button state 
    	x:         i32,
    	// *< X coordinate, relative to window 
    	y:         i32,
    	// *< Y coordinate, relative to window 
    	xrel:      i32,
    	// *< The relative motion in the X direction 
    	yrel:      i32,
    }

    MouseWheelDirection ¶

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

    MouseWheelEvent ¶

    MouseWheelEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_MOUSEWHEEL 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	windowID:  u32,
    	// *< The window with mouse focus, if any 
    	which:     u32,
    	// *< The mouse instance id, or SDL_TOUCH_MOUSEID 
    	x:         i32,
    	// *< The amount scrolled horizontally, positive to the right and negative to the left 
    	y:         i32,
    	// *< The amount scrolled vertically, positive away from the user and negative toward the user 
    	direction: u32,
    }

    MultiGestureEvent ¶

    MultiGestureEvent :: struct {
    	type:       EventType,
    	// *< ::SDL_MULTIGESTURE 
    	timestamp:  u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	touchId:    TouchID,
    	// *< The touch device id 
    	dTheta:     f32,
    	dDist:      f32,
    	x:          f32,
    	y:          f32,
    	numFingers: u16,
    	padding:    u16,
    }

    OSEvent ¶

    OSEvent :: struct {
    	type:      EventType,
    	timestamp: u32,
    }

    Palette ¶

    Palette :: struct {
    	ncolors:  i32,
    	colors:   ^Color,
    	version:  u32,
    	refcount: i32,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    PixelFormat ¶

    PixelFormat :: struct {
    	format:        u32,
    	palette:       ^Palette,
    	BitsPerPixel:  u8,
    	BytesPerPixel: u8,
    	padding:       [2]u8,
    	Rmask:         u32,
    	Gmask:         u32,
    	Bmask:         u32,
    	Amask:         u32,
    	Rloss:         u8,
    	Gloss:         u8,
    	Bloss:         u8,
    	Aloss:         u8,
    	Rshift:        u8,
    	Gshift:        u8,
    	Bshift:        u8,
    	Ashift:        u8,
    	refcount:      i32,
    	next:          ^PixelFormat,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    PixelFormatEnum ¶

    PixelFormatEnum :: enum u32 {
    	UNKNOWN      = 0, 
    	INDEX1LSB    = 286261504, 
    	INDEX1MSB    = 287310080, 
    	INDEX4LSB    = 303039488, 
    	INDEX4MSB    = 304088064, 
    	INDEX8       = 318769153, 
    	RGB332       = 336660481, 
    	XRGB4444     = 353504258, 
    	RGB444       = 353504258, 
    	XBGR4444     = 357698562, 
    	BGR444       = 357698562, 
    	XRGB1555     = 353570562, 
    	RGB555       = 353570562, 
    	XBGR1555     = 357764866, 
    	BGR555       = 357764866, 
    	ARGB4444     = 355602434, 
    	RGBA4444     = 356651010, 
    	ABGR4444     = 359796738, 
    	BGRA4444     = 360845314, 
    	ARGB1555     = 355667970, 
    	RGBA5551     = 356782082, 
    	ABGR1555     = 359862274, 
    	BGRA5551     = 360976386, 
    	RGB565       = 353701890, 
    	BGR565       = 357896194, 
    	RGB24        = 386930691, 
    	BGR24        = 390076419, 
    	XRGB8888     = 370546692, 
    	RGB888       = 370546692, 
    	RGBX8888     = 371595268, 
    	XBGR8888     = 374740996, 
    	BGR888       = 374740996, 
    	BGRX8888     = 375789572, 
    	ARGB8888     = 372645892, 
    	RGBA8888     = 373694468, 
    	ABGR8888     = 376840196, 
    	BGRA8888     = 377888772, 
    	ARGB2101010  = 372711428, 
    	// Aliases for RGBA byte arrays of color data, for the current platform 
    	RGBA32       = 376840196, 
    	ARGB32       = 377888772, 
    	BGRA32       = 372645892, 
    	ABGR32       = 373694468, 
    	YV12         = 1498820914, 
    	IYUV         = 1230591318, 
    	YUY2         = 1498765618, 
    	UYVY         = 1431918169, 
    	YVYU         = 1498831189, 
    	NV12         = 1314271538, 
    	NV21         = 1314271793, 
    	EXTERNAL_OES = 1329943328, 
    }
    Related Procedures With Parameters

    Point ¶

    Point :: struct {
    	x,
    	y: i32,
    }
    Related Procedures With Parameters

    PowerState ¶

    PowerState :: enum i32 {
    	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

    QuitEvent ¶

    QuitEvent :: struct {
    	type:      EventType,
    	timestamp: u32,
    }

    RWops ¶

    RWops :: struct {
    	size:   proc "c" (ctx: ^RWops) -> i64,
    	seek:   proc "c" (ctx: ^RWops, offset: i64, whence: i32) -> i64,
    	read:   proc "c" (ctx: ^RWops, ptr: rawptr, size: uint, maxnum: uint) -> uint,
    	write:  proc "c" (ctx: ^RWops, ptr: rawptr, size: uint, num: uint) -> uint,
    	close:  proc "c" (ctx: ^RWops) -> i32,
    	type:   u32,
    	hidden: struct #raw_union {
    		androidio: struct {
    			asset: rawptr,
    		},
    		windowsio: struct {
    			append: bool,
    			h:      rawptr,
    			buffer: struct {
    				data: rawptr,
    				size: uint,
    				left: uint,
    			},
    		},
    		vitaio:    struct {
    			h:      i32,
    			buffer: struct {
    				data: rawptr,
    				size: uint,
    				left: uint,
    			},
    		},
    		stdio:     struct {
    			autoclose: bool,
    			fp:        rawptr,
    		},
    		mem:       struct {
    			base: ^u8,
    			here: ^u8,
    			stop: ^u8,
    		},
    		unknown:   struct {
    			data1: rawptr,
    			data2: rawptr,
    		},
    	},
    }
     

    * * This is the read/write operation structure -- very basic.

    Related Procedures With Parameters
    Related Procedures With Returns

    RendererFlag ¶

    RendererFlag :: enum u32 {
    	SOFTWARE      = 0, // *< The renderer is a software fallback
    	ACCELERATED   = 1, // *< The renderer uses hardware acceleration
    	PRESENTVSYNC  = 2, // *< Present is synchronized with the refresh rate
    	TARGETTEXTURE = 3, // *< The renderer supports rendering to texture
    }

    RendererFlags ¶

    RendererFlags :: distinct bit_set[RendererFlag; u32]
    Related Procedures With Parameters

    RendererFlip ¶

    RendererFlip :: enum i32 {
    	NONE       = 0, // *< Do not flip
    	HORIZONTAL = 1, // *< flip horizontally
    	VERTICAL   = 2, // *< flip vertically
    }
     

    * * Flip constants for SDL_RenderCopyEx

    Related Procedures With Parameters

    RendererInfo ¶

    RendererInfo :: struct {
    	name:                cstring,
    	// *< The name of the renderer 
    	flags:               RendererFlags,
    	// *< Supported ::SDL_RendererFlags 
    	num_texture_formats: u32,
    	// *< The number of available texture formats 
    	texture_formats:     [16]u32,
    	// *< The available texture formats 
    	max_texture_width:   i32,
    	// *< The maximum texture width 
    	max_texture_height:  i32,
    }
    Related Procedures With Parameters

    SYSWM_TYPE ¶

    SYSWM_TYPE :: enum i32 {
    	UNKNOWN, 
    	WINDOWS, 
    	X11, 
    	DIRECTFB, 
    	COCOA, 
    	UIKIT, 
    	WAYLAND, 
    	MIR,      // no longer available, left for API/ABI compatibility. Remove in 2.1!
    	WINRT, 
    	ANDROID, 
    	VIVANTE, 
    	OS2, 
    	HAIKU, 
    	KMSDRM, 
    }

    ScaleMode ¶

    ScaleMode :: enum i32 {
    	Nearest, // *< nearest pixel sampling
    	Linear,  // *< linear filtering
    	Best,    // *< anisotropic filtering
    }
     

    * * The scaling mode for a texture.

    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, 
    	NUM1               = 30, 
    	NUM2               = 31, 
    	NUM3               = 32, 
    	NUM4               = 33, 
    	NUM5               = 34, 
    	NUM6               = 35, 
    	NUM7               = 36, 
    	NUM8               = 37, 
    	NUM9               = 38, 
    	NUM0               = 39, 
    	RETURN             = 40, 
    	ESCAPE             = 41, 
    	BACKSPACE          = 42, 
    	TAB                = 43, 
    	SPACE              = 44, 
    	MINUS              = 45, 
    	EQUALS             = 46, 
    	LEFTBRACKET        = 47, 
    	RIGHTBRACKET       = 48, 
    	BACKSLASH          = 49, 
    	NONUSHASH          = 50, 
    	SEMICOLON          = 51, 
    	APOSTROPHE         = 52, 
    	GRAVE              = 53, 
    	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, 
    	HOME               = 74, 
    	PAGEUP             = 75, 
    	DELETE             = 76, 
    	END                = 77, 
    	PAGEDOWN           = 78, 
    	RIGHT              = 79, 
    	LEFT               = 80, 
    	DOWN               = 81, 
    	UP                 = 82, 
    	NUMLOCKCLEAR       = 83, 
    	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, 
    	APPLICATION        = 101, 
    	POWER              = 102, 
    	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, 
    	MENU               = 118, 
    	SELECT             = 119, 
    	STOP               = 120, 
    	AGAIN              = 121, 
    	UNDO               = 122, 
    	CUT                = 123, 
    	COPY               = 124, 
    	PASTE              = 125, 
    	FIND               = 126, 
    	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, 
    	INTERNATIONAL2     = 136, 
    	INTERNATIONAL3     = 137, 
    	INTERNATIONAL4     = 138, 
    	INTERNATIONAL5     = 139, 
    	INTERNATIONAL6     = 140, 
    	INTERNATIONAL7     = 141, 
    	INTERNATIONAL8     = 142, 
    	INTERNATIONAL9     = 143, 
    	LANG1              = 144, 
    	LANG2              = 145, 
    	LANG3              = 146, 
    	LANG4              = 147, 
    	LANG5              = 148, 
    	LANG6              = 149, 
    	LANG7              = 150, 
    	LANG8              = 151, 
    	LANG9              = 152, 
    	ALTERASE           = 153, 
    	SYSREQ             = 154, 
    	CANCEL             = 155, 
    	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, 
    	LGUI               = 227, 
    	RCTRL              = 228, 
    	RSHIFT             = 229, 
    	RALT               = 230, 
    	RGUI               = 231, 
    	MODE               = 257, 
    	AUDIONEXT          = 258, 
    	AUDIOPREV          = 259, 
    	AUDIOSTOP          = 260, 
    	AUDIOPLAY          = 261, 
    	AUDIOMUTE          = 262, 
    	MEDIASELECT        = 263, 
    	WWW                = 264, 
    	MAIL               = 265, 
    	CALCULATOR         = 266, 
    	COMPUTER           = 267, 
    	AC_SEARCH          = 268, 
    	AC_HOME            = 269, 
    	AC_BACK            = 270, 
    	AC_FORWARD         = 271, 
    	AC_STOP            = 272, 
    	AC_REFRESH         = 273, 
    	AC_BOOKMARKS       = 274, 
    	BRIGHTNESSDOWN     = 275, 
    	BRIGHTNESSUP       = 276, 
    	DISPLAYSWITCH      = 277, 
    	KBDILLUMTOGGLE     = 278, 
    	KBDILLUMDOWN       = 279, 
    	KBDILLUMUP         = 280, 
    	EJECT              = 281, 
    	SLEEP              = 282, 
    	APP1               = 283, 
    	APP2               = 284, 
    	AUDIOREWIND        = 285, 
    	AUDIOFASTFORWARD   = 286, 
    	NUM_SCANCODES      = 512, 
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    Sensor ¶

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

    SensorEvent ¶

    SensorEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_SENSORUPDATE 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	which:     i32,
    	// *< The instance ID of the sensor 
    	data:      [6]f32,
    }

    SensorID ¶

    SensorID :: distinct i32
    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
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    SpinLock ¶

    SpinLock :: distinct i32
     

    Atomic NOTE: Prefer the intrinsics built into Odin 'package intrinsics'

    Related Procedures With Parameters

    Surface ¶

    Surface :: struct {
    	flags:        u32,
    	// *< Read-only 
    	format:       ^PixelFormat,
    	// *< Read-only 
    	w,
    	h:            i32,
    	// *< Read-only 
    	pitch:        i32,
    	// *< Read-only 
    	pixels:       rawptr,
    	// Application data associated with the surface 
    	userdata:     rawptr,
    	// information needed for surfaces requiring locks 
    	locked:       i32,
    	// list of BlitMap that hold a reference to this surface 
    	list_blitmap: rawptr,
    	// clipping information 
    	clip_rect:    Rect,
    	// info for fast blit mapping to other surfaces 
    	blitmap:      ^BlitMap,
    	// Reference count -- used when freeing surface 
    	refcount:     i32,
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    SysWMEvent ¶

    SysWMEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_SYSWMEVENT 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	msg:       ^SysWMmsg,
    }

    SysWMinfo ¶

    SysWMinfo :: struct {
    	version:   version,
    	subsystem: SYSWM_TYPE,
    	info:      struct #raw_union {
    		win:     struct {
    			window:    rawptr,
    			hdc:       rawptr,
    			hinstance: rawptr,
    		},
    		winrt:   struct {
    			window: rawptr,
    		},
    		x11:     struct {
    			display: rawptr,
    			window:  uintptr,
    		},
    		cocoa:   struct {
    			window: rawptr,
    		},
    		uikit:   struct {
    			window:             rawptr,
    			// *< The UIKit window 
    			framebuffer:        u32,
    			// *< The GL view's Framebuffer Object. It must be bound when rendering to the screen using GL. 
    			colorbuffer:        u32,
    			// *< The GL view's color Renderbuffer Object. It must be bound when SDL_GL_SwapWindow is called. 
    			resolveFramebuffer: u32,
    		},
    		wl:      struct {
    			display:       rawptr,
    			// *< Wayland display 
    			surface:       rawptr,
    			// *< Wayland surface 
    			shell_surface: rawptr,
    			// *< DEPRECATED Wayland shell_surface (window manager handle) 
    			egl_window:    rawptr,
    			// *< Wayland EGL window (native window) 
    			xdg_surface:   rawptr,
    		},
    		mir:     struct {
    			connection: rawptr,
    			// *< Mir display server connection 
    			surface:    rawptr,
    		},
    		android: struct {
    			window:  rawptr,
    			surface: rawptr,
    		},
    		dummy:   [64]u8,
    	},
    }
     

    * * The custom window manager information structure. * * When this structure is returned, it holds information about which * low level system it is using, and will be one of SYSWM_TYPE.

    Related Procedures With Parameters

    SysWMmsg ¶

    SysWMmsg :: struct {
    	version:   version,
    	subsystem: SYSWM_TYPE,
    	msg:       struct #raw_union {
    		win:   struct {
    			hwnd:   rawptr,
    			// *< The window for the message 
    			msg:    u32,
    			// *< The type of message 
    			wParam: uint,
    			// *< WORD message parameter 
    			lParam: int,
    		},
    		x11:   struct {
    			event: XEvent,
    		},
    		cocoa: struct {
    			dummy: i32,
    		},
    		uikit: struct {
    			dummy: i32,
    		},
    		dummy: i32,
    	},
    }

    SystemCursor ¶

    SystemCursor :: enum i32 {
    	ARROW,              // *< Arrow
    	IBEAM,              // *< I-beam
    	WAIT,               // *< Wait
    	CROSSHAIR,          // *< Crosshair
    	WAITARROW,          // *< Small wait cursor (or Wait if not available)
    	SIZENWSE,           // *< Double arrow pointing northwest and southeast
    	SIZENESW,           // *< Double arrow pointing northeast and southwest
    	SIZEWE,             // *< Double arrow pointing west and east
    	SIZENS,             // *< Double arrow pointing north and south
    	SIZEALL,            // *< Four pointed arrow pointing north, south, east, and west
    	NO,                 // *< Slashed circle or crossbones
    	HAND,               // *< Hand
    	NUM_SYSTEM_CURSORS, 
    }
    Related Procedures With Parameters

    TLSID ¶

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

    TextEditingEvent ¶

    TextEditingEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_TEXTEDITING 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	windowID:  u32,
    	// *< The window with keyboard focus, if any 
    	text:      [32]u8,
    	// *< The editing text 
    	start:     i32,
    	// *< The start cursor of selected editing text 
    	length:    i32,
    }

    TextInputEvent ¶

    TextInputEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_TEXTINPUT 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	windowID:  u32,
    	// *< The window with keyboard focus, if any 
    	text:      [32]u8,
    }

    TextureAccess ¶

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

    * * The access pattern allowed for a texture.

    Related Procedures With Parameters

    Thread ¶

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

    ThreadFunction ¶

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

    ThreadPriority ¶

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

    TimerCallback ¶

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

    TimerID ¶

    TimerID :: distinct i32
    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 {
    	type:      EventType,
    	// *< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	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:  u32,
    }

    TouchID ¶

    TouchID :: distinct i64
    Related Procedures With Parameters
    Related Procedures With Returns

    UserEvent ¶

    UserEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	windowID:  u32,
    	// *< The associated window if any 
    	code:      i32,
    	// *< User defined event code 
    	data1:     rawptr,
    	// *< User defined data pointer 
    	data2:     rawptr,
    }

    VkInstance ¶

    VkInstance :: vulkan.Instance

    VkSurfaceKHR ¶

    VkSurfaceKHR :: vulkan.SurfaceKHR

    WinRT_DeviceFamily ¶

    WinRT_DeviceFamily :: enum int {
    	// \brief Unknown family  
    	UNKNOWN, 
    	// \brief Desktop family
    	DESKTOP, 
    	// \brief Mobile family (for example smartphone) 
    	MOBILE, 
    	// \brief XBox family 
    	XBOX, 
    }
    Related Procedures With Returns

    WinRT_Path ¶

    WinRT_Path :: enum i32 {
    	// \brief The installed app's root directory.
    	// 	Files here are likely to be read-only. 
    	INSTALLED_LOCATION, 
    	// \brief The app's local data store.  Files may be written here 
    	LOCAL_FOLDER, 
    	// \brief The app's roaming data store.  Unsupported on Windows Phone.
    	// 	Files written here may be copied to other machines via a network
    	// 	connection.
    	ROAMING_FOLDER, 
    	// \brief The app's temporary data store.  Unsupported on Windows Phone.
    	// 	Files written here may be deleted at any time. 
    	TEMP_FOLDER, 
    }
    Related Procedures With Parameters

    WindowEvent ¶

    WindowEvent :: struct {
    	type:      EventType,
    	// *< ::SDL_WINDOWEVENT 
    	timestamp: u32,
    	// *< In milliseconds, populated using SDL_GetTicks() 
    	windowID:  u32,
    	// *< The associated window 
    	event:     WindowEventID,
    	// *< ::SDL_WindowEventID 
    	_:         u8,
    	_:         u8,
    	_:         u8,
    	data1:     i32,
    	// *< event dependent data 
    	data2:     i32,
    }

    WindowEventID ¶

    WindowEventID :: enum u8 {
    	NONE,         // *< Never used
    	SHOWN,        // *< Window has been shown
    	HIDDEN,       // *< Window has been hidden
    	EXPOSED,      // *< Window has been exposed and should be
    	                                 redrawn
    	MOVED,        // *< Window has been moved to data1, data2
    	RESIZED,      // *< Window has been resized to data1xdata2
    	SIZE_CHANGED, // *< The window size has changed, either as
    	                                 a result of an API call or through the
    	                                 system or user changing the window size.
    	MINIMIZED,    // *< Window has been minimized
    	MAXIMIZED,    // *< Window has been maximized
    	RESTORED,     // *< Window has been restored to normal size
    	                                 and position
    	ENTER,        // *< Window has gained mouse focus
    	LEAVE,        // *< Window has lost mouse focus
    	FOCUS_GAINED, // *< Window has gained keyboard focus
    	FOCUS_LOST,   // *< Window has lost keyboard focus
    	CLOSE,        // *< The window manager requests that the window be closed
    	TAKE_FOCUS,   // *< Window is being offered a focus (should SetWindowInputFocus() on itself or a subwindow, or ignore)
    	HIT_TEST,     // *< Window had a hit test that wasn't SDL_HITTEST_NORMAL.
    }

    WindowFlag ¶

    WindowFlag :: enum u32 {
    	FULLSCREEN                   = 0,  // *< fullscreen window
    	OPENGL                       = 1,  // *< window usable with OpenGL context
    	SHOWN                        = 2,  // *< window is visible
    	HIDDEN                       = 3,  // *< window is not visible
    	BORDERLESS                   = 4,  // *< no window decoration
    	RESIZABLE                    = 5,  // *< window can be resized
    	MINIMIZED                    = 6,  // *< window is minimized
    	MAXIMIZED                    = 7,  // *< window is maximized
    	MOUSE_GRABBED                = 8,  // *< window has grabbed mouse input
    	INPUT_FOCUS                  = 9,  // *< window has input focus
    	MOUSE_FOCUS                  = 10, // *< window has mouse focus
    	_INTERNAL_FULLSCREEN_DESKTOP = 12, 
    	FOREIGN                      = 11, // *< window not created by SDL
    	ALLOW_HIGHDPI                = 13, // *< window should be created in high-DPI mode if supported.
    	                                             On macOS NSHighResolutionCapable must be set true in the
    	                                             application's Info.plist for this to have any effect.
    	MOUSE_CAPTURE                = 14, // *< window has mouse captured (unrelated to MOUSE_GRABBED)
    	ALWAYS_ON_TOP                = 15, // *< window should always be above others
    	SKIP_TASKBAR                 = 16, // *< window should not be added to the taskbar
    	UTILITY                      = 17, // *< window should be treated as a utility window
    	TOOLTIP                      = 18, // *< window should be treated as a tooltip
    	POPUP_MENU                   = 19, // *< window should be treated as a popup menu
    	KEYBOARD_GRABBED             = 20, // *< window has grabbed keyboard input
    	VULKAN                       = 28, // *< window usable for Vulkan surface
    	METAL                        = 29, // *< window usable for Metal view
    	INPUT_GRABBED                = 8,  // *< equivalent to SDL_WINDOW_MOUSE_GRABBED for compatibility
    }

    WindowFlags ¶

    WindowFlags :: distinct bit_set[WindowFlag; u32]
    Related Procedures With Parameters

    WindowShapeMode ¶

    WindowShapeMode :: struct {
    	mode:       WindowShapeModeEnum,
    	parameters: WindowShapeParams,
    }
    Related Procedures With Parameters

    WindowShapeModeEnum ¶

    WindowShapeModeEnum :: enum i32 {
    	// \brief The default mode, a binarized alpha cutoff of 1. 
    	Default, 
    	// \brief A binarized alpha cutoff with a given integer value. 
    	BinarizeAlpha, 
    	// \brief A binarized alpha cutoff with a given integer value, but with the opposite comparison. 
    	ReverseBinarizeAlpha, 
    	// \brief A color key is applied. 
    	ColorKey, 
    }
    Related Procedures With Parameters

    WindowShapeParams ¶

    WindowShapeParams :: struct #raw_union {
    	binarizationCutoff: u8,
    	colorKey:           Color,
    }

    WindowsMessageHook ¶

    WindowsMessageHook :: proc "c" (userdata: rawptr, hWnd: rawptr, message: u32, wParam: u64, lParam: i64)
    Related Procedures With Parameters

    XEvent ¶

    XEvent :: struct {
    	type: i32,
    	pad:  [24]i32,
    }

    YUV_CONVERSION_MODE ¶

    YUV_CONVERSION_MODE :: enum i32 {
    	JPEG,      // *< Full range JPEG
    	BT601,     // *< BT.601 (the default)
    	BT709,     // *< BT.709
    	AUTOMATIC, // *< BT.601 for SD content, BT.709 for HD content
    }
    Related Procedures With Parameters
    Related Procedures With Returns

    atomic_t ¶

    atomic_t :: struct {
    	value: i32,
    }
    Related Procedures With Parameters

    blit ¶

    blit :: proc "c" (src: ^Surface, srcrect: ^Rect, dst: ^Surface, dstrect: ^Rect) -> i32

    bool ¶

    bool :: distinct b32
    Related Procedures With Parameters
    Related Procedures With Returns

    calloc_func ¶

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

    cond ¶

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

    errorcode ¶

    errorcode :: enum i32 {
    	ENOMEM, 
    	EFREAD, 
    	EFWRITE, 
    	EFSEEK, 
    	UNSUPPORTED, 
    	LASTERROR, 
    }
    Related Procedures With Parameters

    eventaction ¶

    eventaction :: enum i32 {
    	ADDEVENT, 
    	PEEKEVENT, 
    	GETEVENT, 
    }
    Related Procedures With Parameters

    free_func ¶

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

    iconv_t ¶

    iconv_t :: distinct rawptr
     

    SDL_iconv_* are now always real symbols/types, not macros or inlined.

    Related Procedures With Parameters
    Related Procedures With Returns

    malloc_func ¶

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

    mutex ¶

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

    realloc_func ¶

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

    semaphore ¶

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

    threadID ¶

    threadID :: distinct u32
    Related Procedures With Returns

    version ¶

    version :: struct {
    	major: u8,
    	// *< major version 
    	minor: u8,
    	// *< minor version 
    	patch: u8,
    }
    Related Procedures With Parameters

    vulkanInstance ¶

    vulkanInstance :: vulkan.Instance

    vulkanSurface ¶

    vulkanSurface :: vulkan.SurfaceKHR

    Constants

    ALPHA_OPAQUE ¶

    ALPHA_OPAQUE :: 255

    ALPHA_TRANSPARENT ¶

    ALPHA_TRANSPARENT :: 0

    ANDROID_EXTERNAL_STORAGE_READ ¶

    ANDROID_EXTERNAL_STORAGE_READ :: 0x01

    ANDROID_EXTERNAL_STORAGE_WRITE ¶

    ANDROID_EXTERNAL_STORAGE_WRITE :: 0x02

    ARRAYORDER_ABG ¶

    ARRAYORDER_ABG :: 6

    ARRAYORDER_ARGB ¶

    ARRAYORDER_ARGB :: 3

    ARRAYORDER_BGR ¶

    ARRAYORDER_BGR :: 4

    ARRAYORDER_BGRA ¶

    ARRAYORDER_BGRA :: 5

    ARRAYORDER_NONE ¶

    ARRAYORDER_NONE :: 0
     

    Array component order, low byte -> high byte. !!! FIXME: in 2.1, make these not overlap differently with !!! FIXME: SDL_PACKEDORDER_*, so we can simplify SDL_ISPIXELFORMAT_ALPHA

    ARRAYORDER_RGB ¶

    ARRAYORDER_RGB :: 1

    ARRAYORDER_RGBA ¶

    ARRAYORDER_RGBA :: 2

    AUDIOCVT_MAX_FILTERS ¶

    AUDIOCVT_MAX_FILTERS :: 9

    AUDIO_ALLOW_ANY_CHANGE ¶

    AUDIO_ALLOW_ANY_CHANGE :: AUDIO_ALLOW_FREQUENCY_CHANGE | AUDIO_ALLOW_FORMAT_CHANGE | AUDIO_ALLOW_CHANNELS_CHANGE | AUDIO_ALLOW_SAMPLES_CHANGE

    AUDIO_ALLOW_CHANNELS_CHANGE ¶

    AUDIO_ALLOW_CHANNELS_CHANGE :: 0x00000004

    AUDIO_ALLOW_FORMAT_CHANGE ¶

    AUDIO_ALLOW_FORMAT_CHANGE :: 0x00000002

    AUDIO_ALLOW_FREQUENCY_CHANGE ¶

    AUDIO_ALLOW_FREQUENCY_CHANGE :: 0x00000001

    AUDIO_ALLOW_SAMPLES_CHANGE ¶

    AUDIO_ALLOW_SAMPLES_CHANGE :: 0x00000008

    AUDIO_F32 ¶

    AUDIO_F32 :: AUDIO_F32LSB

    AUDIO_F32LSB ¶

    AUDIO_F32LSB :: 0x8120
     

    *< 32-bit floating point samples

    AUDIO_F32MSB ¶

    AUDIO_F32MSB :: 0x9120
     

    *< As above, but big-endian byte order

    AUDIO_F32SYS ¶

    AUDIO_F32SYS :: AUDIO_F32LSB

    AUDIO_MASK_BITSIZE ¶

    AUDIO_MASK_BITSIZE :: 0xFF

    AUDIO_MASK_DATATYPE ¶

    AUDIO_MASK_DATATYPE :: 1 << 8

    AUDIO_MASK_ENDIAN ¶

    AUDIO_MASK_ENDIAN :: 1 << 12

    AUDIO_MASK_SIGNED ¶

    AUDIO_MASK_SIGNED :: 1 << 15

    AUDIO_S16 ¶

    AUDIO_S16 :: AUDIO_S16LSB

    AUDIO_S16LSB ¶

    AUDIO_S16LSB :: 0x8010
     

    *< Signed 16-bit samples

    AUDIO_S16MSB ¶

    AUDIO_S16MSB :: 0x9010
     

    *< As above, but big-endian byte order

    AUDIO_S16SYS ¶

    AUDIO_S16SYS :: AUDIO_S16LSB

    AUDIO_S32 ¶

    AUDIO_S32 :: AUDIO_S32LSB

    AUDIO_S32LSB ¶

    AUDIO_S32LSB :: 0x8020
     

    *< 32-bit integer samples

    AUDIO_S32MSB ¶

    AUDIO_S32MSB :: 0x9020
     

    *< As above, but big-endian byte order

    AUDIO_S32SYS ¶

    AUDIO_S32SYS :: AUDIO_S32LSB

    AUDIO_S8 ¶

    AUDIO_S8 :: 0x8008
     

    *< Signed 8-bit samples

    AUDIO_U16 ¶

    AUDIO_U16 :: AUDIO_U16LSB

    AUDIO_U16LSB ¶

    AUDIO_U16LSB :: 0x0010
     

    *< Unsigned 16-bit samples

    AUDIO_U16MSB ¶

    AUDIO_U16MSB :: 0x1010
     

    *< As above, but big-endian byte order

    AUDIO_U16SYS ¶

    AUDIO_U16SYS :: AUDIO_U16LSB

    AUDIO_U8 ¶

    AUDIO_U8 :: 0x0008
     

    *< Unsigned 8-bit samples

    BITMAPORDER_1234 ¶

    BITMAPORDER_1234 :: 2

    BITMAPORDER_4321 ¶

    BITMAPORDER_4321 :: 1

    BITMAPORDER_NONE ¶

    BITMAPORDER_NONE :: 0

    BUTTON_LEFT ¶

    BUTTON_LEFT :: 1

    BUTTON_LMASK ¶

    BUTTON_LMASK :: 1 << (BUTTON_LEFT - 1)

    BUTTON_MIDDLE ¶

    BUTTON_MIDDLE :: 2

    BUTTON_MMASK ¶

    BUTTON_MMASK :: 1 << (BUTTON_MIDDLE - 1)

    BUTTON_RIGHT ¶

    BUTTON_RIGHT :: 3

    BUTTON_RMASK ¶

    BUTTON_RMASK :: 1 << (BUTTON_RIGHT - 1)

    BUTTON_X1 ¶

    BUTTON_X1 :: 4

    BUTTON_X1MASK ¶

    BUTTON_X1MASK :: 1 << (BUTTON_X1 - 1)

    BUTTON_X2 ¶

    BUTTON_X2 :: 5

    BUTTON_X2MASK ¶

    BUTTON_X2MASK :: 1 << (BUTTON_X2 - 1)

    CACHELINE_SIZE ¶

    CACHELINE_SIZE :: 128
     

    This is a guess for the cacheline size used for padding. * Most x86 processors have a 64 byte cache line. * The 64-bit PowerPC processors have a 128 byte cache line. * We'll use the larger value to be generally safe.

    DISABLE ¶

    DISABLE :: 0

    DONTFREE ¶

    DONTFREE :: 0x00000004
     

    *< Surface is referenced internally

    ENABLE ¶

    ENABLE :: 1

    HAPTIC_AUTOCENTER ¶

    HAPTIC_AUTOCENTER :: HapticType.AUTOCENTER

    HAPTIC_CARTESIAN ¶

    HAPTIC_CARTESIAN :: HapticDirectionType.CARTESIAN

    HAPTIC_CONSTANT ¶

    HAPTIC_CONSTANT :: HapticType.CONSTANT

    HAPTIC_CUSTOM ¶

    HAPTIC_CUSTOM :: HapticType.CUSTOM

    HAPTIC_DAMPER ¶

    HAPTIC_DAMPER :: HapticType.DAMPER

    HAPTIC_FRICTION ¶

    HAPTIC_FRICTION :: HapticType.FRICTION

    HAPTIC_GAIN ¶

    HAPTIC_GAIN :: HapticType.GAIN

    HAPTIC_INERTIA ¶

    HAPTIC_INERTIA :: HapticType.INERTIA

    HAPTIC_INFINITY ¶

    HAPTIC_INFINITY :: 4294967295

    HAPTIC_LEFTRIGHT ¶

    HAPTIC_LEFTRIGHT :: HapticType.LEFTRIGHT

    HAPTIC_PAUSE ¶

    HAPTIC_PAUSE :: HapticType.PAUSE

    HAPTIC_POLAR ¶

    HAPTIC_POLAR :: HapticDirectionType.POLAR

    HAPTIC_RAMP ¶

    HAPTIC_RAMP :: HapticType.RAMP

    HAPTIC_SAWTOOTHDOWN ¶

    HAPTIC_SAWTOOTHDOWN :: HapticType.SAWTOOTHDOWN

    HAPTIC_SAWTOOTHUP ¶

    HAPTIC_SAWTOOTHUP :: HapticType.SAWTOOTHUP

    HAPTIC_SINE ¶

    HAPTIC_SINE :: HapticType.SINE

    HAPTIC_SPHERICAL ¶

    HAPTIC_SPHERICAL :: HapticDirectionType.SPHERICAL

    HAPTIC_SPRING ¶

    HAPTIC_SPRING :: HapticType.SPRING

    HAPTIC_STATUS ¶

    HAPTIC_STATUS :: HapticType.STATUS

    HAPTIC_STEERING_AXIS ¶

    HAPTIC_STEERING_AXIS :: HapticDirectionType.STEERING_AXIS

    HAPTIC_TRIANGLE ¶

    HAPTIC_TRIANGLE :: HapticType.TRIANGLE

    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_ACCELEROMETER_AS_JOYSTICK ¶

    HINT_ACCELEROMETER_AS_JOYSTICK :: "SDL_ACCELEROMETER_AS_JOYSTICK"

    HINT_ALLOW_ALT_TAB_WHILE_GRABBED ¶

    HINT_ALLOW_ALT_TAB_WHILE_GRABBED :: "SDL_ALLOW_ALT_TAB_WHILE_GRABBED"

    HINT_ALLOW_TOPMOST ¶

    HINT_ALLOW_TOPMOST :: "SDL_ALLOW_TOPMOST"

    HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION ¶

    HINT_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION :: "SDL_ANDROID_APK_EXPANSION_MAIN_FILE_VERSION"

    HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION ¶

    HINT_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION :: "SDL_ANDROID_APK_EXPANSION_PATCH_FILE_VERSION"

    HINT_ANDROID_BLOCK_ON_PAUSE ¶

    HINT_ANDROID_BLOCK_ON_PAUSE :: "SDL_ANDROID_BLOCK_ON_PAUSE"

    HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO ¶

    HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO :: "SDL_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO"

    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_AUDIO_CATEGORY ¶

    HINT_AUDIO_CATEGORY :: "SDL_AUDIO_CATEGORY"

    HINT_AUDIO_DEVICE_APP_NAME ¶

    HINT_AUDIO_DEVICE_APP_NAME :: "SDL_AUDIO_DEVICE_APP_NAME"

    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_INCLUDE_MONITORS ¶

    HINT_AUDIO_INCLUDE_MONITORS :: "SDL_AUDIO_INCLUDE_MONITORS"

    HINT_AUDIO_RESAMPLING_MODE ¶

    HINT_AUDIO_RESAMPLING_MODE :: "SDL_AUDIO_RESAMPLING_MODE"

    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_DISPLAY_USABLE_BOUNDS ¶

    HINT_DISPLAY_USABLE_BOUNDS :: "SDL_DISPLAY_USABLE_BOUNDS"

    HINT_EMSCRIPTEN_ASYNCIFY ¶

    HINT_EMSCRIPTEN_ASYNCIFY :: "SDL_EMSCRIPTEN_ASYNCIFY"

    HINT_EMSCRIPTEN_KEYBOARD_ELEMENT ¶

    HINT_EMSCRIPTEN_KEYBOARD_ELEMENT :: "SDL_EMSCRIPTEN_KEYBOARD_ELEMENT"

    HINT_ENABLE_STEAM_CONTROLLERS ¶

    HINT_ENABLE_STEAM_CONTROLLERS :: "SDL_ENABLE_STEAM_CONTROLLERS"

    HINT_EVENT_LOGGING ¶

    HINT_EVENT_LOGGING :: "SDL_EVENT_LOGGING"

    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_USE_BUTTON_LABELS ¶

    HINT_GAMECONTROLLER_USE_BUTTON_LABELS :: "SDL_GAMECONTROLLER_USE_BUTTON_LABELS"

    HINT_GRAB_KEYBOARD ¶

    HINT_GRAB_KEYBOARD :: "SDL_GRAB_KEYBOARD"

    HINT_IDLE_TIMER_DISABLED ¶

    HINT_IDLE_TIMER_DISABLED :: "SDL_IOS_IDLE_TIMER_DISABLED"

    HINT_IME_INTERNAL_EDITING ¶

    HINT_IME_INTERNAL_EDITING :: "SDL_IME_INTERNAL_EDITING"

    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_HIDAPI ¶

    HINT_JOYSTICK_HIDAPI :: "SDL_JOYSTICK_HIDAPI"

    HINT_JOYSTICK_HIDAPI_GAMECUBE ¶

    HINT_JOYSTICK_HIDAPI_GAMECUBE :: "SDL_JOYSTICK_HIDAPI_GAMECUBE"

    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_PS4 ¶

    HINT_JOYSTICK_HIDAPI_PS4 :: "SDL_JOYSTICK_HIDAPI_PS4"

    HINT_JOYSTICK_HIDAPI_PS4_RUMBLE ¶

    HINT_JOYSTICK_HIDAPI_PS4_RUMBLE :: "SDL_JOYSTICK_HIDAPI_PS4_RUMBLE"

    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_PS5_RUMBLE ¶

    HINT_JOYSTICK_HIDAPI_PS5_RUMBLE :: "SDL_JOYSTICK_HIDAPI_PS5_RUMBLE"

    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_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_XBOX ¶

    HINT_JOYSTICK_HIDAPI_XBOX :: "SDL_JOYSTICK_HIDAPI_XBOX"

    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_THREAD ¶

    HINT_JOYSTICK_THREAD :: "SDL_JOYSTICK_THREAD"

    HINT_KMSDRM_REQUIRE_DRM_MASTER ¶

    HINT_KMSDRM_REQUIRE_DRM_MASTER :: "SDL_KMSDRM_REQUIRE_DRM_MASTER"

    HINT_LINUX_JOYSTICK_DEADZONES ¶

    HINT_LINUX_JOYSTICK_DEADZONES :: "SDL_LINUX_JOYSTICK_DEADZONES"

    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_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_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_MODE_WARP ¶

    HINT_MOUSE_RELATIVE_MODE_WARP :: "SDL_MOUSE_RELATIVE_MODE_WARP"

    HINT_MOUSE_RELATIVE_SCALING ¶

    HINT_MOUSE_RELATIVE_SCALING :: "SDL_MOUSE_RELATIVE_SCALING"

    HINT_MOUSE_RELATIVE_SPEED_SCALE ¶

    HINT_MOUSE_RELATIVE_SPEED_SCALE :: "SDL_MOUSE_RELATIVE_SPEED_SCALE"

    HINT_MOUSE_TOUCH_EVENTS ¶

    HINT_MOUSE_TOUCH_EVENTS :: "SDL_MOUSE_TOUCH_EVENTS"

    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_ORIENTATIONS ¶

    HINT_ORIENTATIONS :: "SDL_IOS_ORIENTATIONS"

    HINT_PREFERRED_LOCALES ¶

    HINT_PREFERRED_LOCALES :: "SDL_PREFERRED_LOCALES"

    HINT_QTWAYLAND_CONTENT_ORIENTATION ¶

    HINT_QTWAYLAND_CONTENT_ORIENTATION :: "SDL_QTWAYLAND_CONTENT_ORIENTATION"

    HINT_QTWAYLAND_WINDOW_FLAGS ¶

    HINT_QTWAYLAND_WINDOW_FLAGS :: "SDL_QTWAYLAND_WINDOW_FLAGS"

    HINT_RENDER_BATCHING ¶

    HINT_RENDER_BATCHING :: "SDL_RENDER_BATCHING"

    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_LOGICAL_SIZE_MODE ¶

    HINT_RENDER_LOGICAL_SIZE_MODE :: "SDL_RENDER_LOGICAL_SIZE_MODE"

    HINT_RENDER_OPENGL_SHADERS ¶

    HINT_RENDER_OPENGL_SHADERS :: "SDL_RENDER_OPENGL_SHADERS"

    HINT_RENDER_SCALE_QUALITY ¶

    HINT_RENDER_SCALE_QUALITY :: "SDL_RENDER_SCALE_QUALITY"

    HINT_RENDER_VSYNC ¶

    HINT_RENDER_VSYNC :: "SDL_RENDER_VSYNC"

    HINT_RETURN_KEY_HIDES_IME ¶

    HINT_RETURN_KEY_HIDES_IME :: "SDL_RETURN_KEY_HIDES_IME"

    HINT_RPI_VIDEO_LAYER ¶

    HINT_RPI_VIDEO_LAYER :: "SDL_RPI_VIDEO_LAYER"

    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_THREAD_STACK_SIZE ¶

    HINT_THREAD_STACK_SIZE :: "SDL_THREAD_STACK_SIZE"

    HINT_TIMER_RESOLUTION ¶

    HINT_TIMER_RESOLUTION :: "SDL_TIMER_RESOLUTION"

    HINT_TOUCH_MOUSE_EVENTS ¶

    HINT_TOUCH_MOUSE_EVENTS :: "SDL_TOUCH_MOUSE_EVENTS"

    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_DOUBLE_BUFFER ¶

    HINT_VIDEO_DOUBLE_BUFFER :: "SDL_VIDEO_DOUBLE_BUFFER"

    HINT_VIDEO_EXTERNAL_CONTEXT ¶

    HINT_VIDEO_EXTERNAL_CONTEXT :: "SDL_VIDEO_EXTERNAL_CONTEXT"

    HINT_VIDEO_HIGHDPI_DISABLED ¶

    HINT_VIDEO_HIGHDPI_DISABLED :: "SDL_VIDEO_HIGHDPI_DISABLED"

    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_WAYLAND_ALLOW_LIBDECOR ¶

    HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR :: "SDL_VIDEO_WAYLAND_ALLOW_LIBDECOR"

    HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT ¶

    HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT :: "SDL_VIDEO_WINDOW_SHARE_PIXEL_FORMAT"

    HINT_VIDEO_WIN_D3DCOMPILER ¶

    HINT_VIDEO_WIN_D3DCOMPILER :: "SDL_VIDEO_WIN_D3DCOMPILER"

    HINT_VIDEO_X11_FORCE_EGL ¶

    HINT_VIDEO_X11_FORCE_EGL :: "SDL_VIDEO_X11_FORCE_EGL"

    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_WINDOW_VISUALID ¶

    HINT_VIDEO_X11_WINDOW_VISUALID :: "SDL_VIDEO_X11_WINDOW_VISUALID"

    HINT_VIDEO_X11_XINERAMA ¶

    HINT_VIDEO_X11_XINERAMA :: "SDL_VIDEO_X11_XINERAMA"

    HINT_VIDEO_X11_XRANDR ¶

    HINT_VIDEO_X11_XRANDR :: "SDL_VIDEO_X11_XRANDR"

    HINT_VIDEO_X11_XVIDMODE ¶

    HINT_VIDEO_X11_XVIDMODE :: "SDL_VIDEO_X11_XVIDMODE"

    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_DISABLE_THREAD_NAMING ¶

    HINT_WINDOWS_DISABLE_THREAD_NAMING :: "SDL_WINDOWS_DISABLE_THREAD_NAMING"

    HINT_WINDOWS_ENABLE_MESSAGELOOP ¶

    HINT_WINDOWS_ENABLE_MESSAGELOOP :: "SDL_WINDOWS_ENABLE_MESSAGELOOP"

    HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS ¶

    HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS :: "SDL_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS"

    HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL ¶

    HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL :: "SDL_WINDOWS_FORCE_SEMAPHORE_KERNEL"

    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_NO_CLOSE_ON_ALT_F4 ¶

    HINT_WINDOWS_NO_CLOSE_ON_ALT_F4 :: "SDL_WINDOWS_NO_CLOSE_ON_ALT_F4"

    HINT_WINDOWS_USE_D3D9EX ¶

    HINT_WINDOWS_USE_D3D9EX :: "SDL_WINDOWS_USE_D3D9EX"

    HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN ¶

    HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN :: "SDL_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN"

    HINT_WINRT_HANDLE_BACK_BUTTON ¶

    HINT_WINRT_HANDLE_BACK_BUTTON :: "SDL_WINRT_HANDLE_BACK_BUTTON"

    HINT_WINRT_PRIVACY_POLICY_LABEL ¶

    HINT_WINRT_PRIVACY_POLICY_LABEL :: "SDL_WINRT_PRIVACY_POLICY_LABEL"

    HINT_WINRT_PRIVACY_POLICY_URL ¶

    HINT_WINRT_PRIVACY_POLICY_URL :: "SDL_WINRT_PRIVACY_POLICY_URL"

    HINT_X11_FORCE_OVERRIDE_REDIRECT ¶

    HINT_X11_FORCE_OVERRIDE_REDIRECT :: "SDL_X11_FORCE_OVERRIDE_REDIRECT"

    HINT_XINPUT_ENABLED ¶

    HINT_XINPUT_ENABLED :: "SDL_XINPUT_ENABLED"

    HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING ¶

    HINT_XINPUT_USE_OLD_JOYSTICK_MAPPING :: "SDL_XINPUT_USE_OLD_JOYSTICK_MAPPING"

    ICONV_E2BIG ¶

    ICONV_E2BIG: uint : ~c.size_t(1)
     

    (size_t)-2

    ICONV_EILSEQ ¶

    ICONV_EILSEQ: uint : ~c.size_t(2)
     

    (size_t)-3

    ICONV_EINVAL ¶

    ICONV_EINVAL: uint : ~c.size_t(3)
     

    (size_t)-4

    ICONV_ERROR ¶

    ICONV_ERROR: uint : ~c.size_t(0)
     

    The SDL implementation of iconv() returns these error codes

    IGNORE ¶

    IGNORE :: 0

    INIT_AUDIO ¶

    INIT_AUDIO: bit_set[InitFlag; u32] : InitFlags{.AUDIO}

    INIT_EVENTS ¶

    INIT_EVENTS: bit_set[InitFlag; u32] : InitFlags{.EVENTS}

    INIT_EVERYTHING ¶

    INIT_EVERYTHING: bit_set[InitFlag; u32] : InitFlags{.TIMER, .AUDIO, .VIDEO, .EVENTS, .JOYSTICK, .HAPTIC, .GAMECONTROLLER, .SENSOR}

    INIT_GAMECONTROLLER ¶

    INIT_GAMECONTROLLER: bit_set[InitFlag; u32] : InitFlags{.GAMECONTROLLER}
     

    *< INIT_GAMECONTROLLER implies INIT_JOYSTICK

    INIT_HAPTIC ¶

    INIT_HAPTIC: bit_set[InitFlag; u32] : InitFlags{.HAPTIC}

    INIT_JOYSTICK ¶

    INIT_JOYSTICK: bit_set[InitFlag; u32] : InitFlags{.JOYSTICK}
     

    *< INIT_JOYSTICK implies INIT_EVENTS

    INIT_NOPARACHUTE ¶

    INIT_NOPARACHUTE: bit_set[InitFlag; u32] : InitFlags{.NOPARACHUTE}
     

    *< compatibility; this flag is ignored.

    INIT_SENSOR ¶

    INIT_SENSOR: bit_set[InitFlag; u32] : InitFlags{.SENSOR}

    INIT_TIMER ¶

    INIT_TIMER: bit_set[InitFlag; u32] : InitFlags{.TIMER}

    INIT_VIDEO ¶

    INIT_VIDEO: bit_set[InitFlag; u32] : InitFlags{.VIDEO}
     

    *< INIT_VIDEO implies INIT_EVENTS

    INVALID_SHAPE_ARGUMENT ¶

    INVALID_SHAPE_ARGUMENT :: -2

    IPHONE_MAX_GFORCE ¶

    IPHONE_MAX_GFORCE :: 5.0

    JOYSTICK_AXIS_MAX ¶

    JOYSTICK_AXIS_MAX :: +32767

    JOYSTICK_AXIS_MIN ¶

    JOYSTICK_AXIS_MIN :: -32768

    KMOD_ALT ¶

    KMOD_ALT :: Keymod{.LALT, .RALT}

    KMOD_CAPS ¶

    KMOD_CAPS :: Keymod{.CAPS}

    KMOD_CTRL ¶

    KMOD_CTRL :: Keymod{.LCTRL, .RCTRL}

    KMOD_GUI ¶

    KMOD_GUI :: Keymod{.LGUI, .RGUI}

    KMOD_LALT ¶

    KMOD_LALT :: Keymod{.LALT}

    KMOD_LCTRL ¶

    KMOD_LCTRL :: Keymod{.LCTRL}

    KMOD_LGUI ¶

    KMOD_LGUI :: Keymod{.LGUI}

    KMOD_LSHIFT ¶

    KMOD_LSHIFT :: Keymod{.LSHIFT}

    KMOD_MODE ¶

    KMOD_MODE :: Keymod{.MODE}

    KMOD_NONE ¶

    KMOD_NONE :: Keymod{}

    KMOD_NUM ¶

    KMOD_NUM :: Keymod{.NUM}

    KMOD_RALT ¶

    KMOD_RALT :: Keymod{.RALT}

    KMOD_RCTRL ¶

    KMOD_RCTRL :: Keymod{.RCTRL}

    KMOD_RESERVED ¶

    KMOD_RESERVED :: Keymod{.RESERVED}

    KMOD_RGUI ¶

    KMOD_RGUI :: Keymod{.RGUI}

    KMOD_RSHIFT ¶

    KMOD_RSHIFT :: Keymod{.RSHIFT}

    KMOD_SHIFT ¶

    KMOD_SHIFT :: Keymod{.LSHIFT, .RSHIFT}

    MAJOR_VERSION ¶

    MAJOR_VERSION :: 2

    MAX_LOG_MESSAGE ¶

    MAX_LOG_MESSAGE :: 4096

    MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT ¶

    MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT :: MessageBoxFlags{.BUTTONS_LEFT_TO_RIGHT}

    MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT ¶

    MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT :: MessageBoxFlags{.BUTTONS_RIGHT_TO_LEFT}

    MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT ¶

    MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT :: MessageBoxButtonFlags{.ESCAPEKEY_DEFAULT}

    MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT ¶

    MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT :: MessageBoxButtonFlags{.RETURNKEY_DEFAULT}

    MESSAGEBOX_ERROR ¶

    MESSAGEBOX_ERROR :: MessageBoxFlags{.ERROR}

    MESSAGEBOX_INFORMATION ¶

    MESSAGEBOX_INFORMATION :: MessageBoxFlags{.INFORMATION}

    MESSAGEBOX_WARNING ¶

    MESSAGEBOX_WARNING :: MessageBoxFlags{.WARNING}

    MINOR_VERSION ¶

    MINOR_VERSION :: 0

    MIX_MAXVOLUME ¶

    MIX_MAXVOLUME :: 128

    MOUSE_TOUCH_ID ¶

    MOUSE_TOUCH_ID :: TouchID(-1)

    MUTEX_MAXWAIT ¶

    MUTEX_MAXWAIT: u32 : ~u32(0)

    MUTEX_TIMEDOUT ¶

    MUTEX_TIMEDOUT :: 1

    M_PI ¶

    M_PI :: 3.14159265358979323846264338327950288

    NONSHAPEABLE_WINDOW ¶

    NONSHAPEABLE_WINDOW :: -1

    NUM_SCANCODES ¶

    NUM_SCANCODES :: 512

    PACKEDLAYOUT_101010 ¶

    PACKEDLAYOUT_101010 :: 8

    PACKEDLAYOUT_1555 ¶

    PACKEDLAYOUT_1555 :: 3

    PACKEDLAYOUT_2101010 ¶

    PACKEDLAYOUT_2101010 :: 7

    PACKEDLAYOUT_332 ¶

    PACKEDLAYOUT_332 :: 1

    PACKEDLAYOUT_4444 ¶

    PACKEDLAYOUT_4444 :: 2

    PACKEDLAYOUT_5551 ¶

    PACKEDLAYOUT_5551 :: 4

    PACKEDLAYOUT_565 ¶

    PACKEDLAYOUT_565 :: 5

    PACKEDLAYOUT_8888 ¶

    PACKEDLAYOUT_8888 :: 6

    PACKEDLAYOUT_NONE ¶

    PACKEDLAYOUT_NONE :: 0

    PACKEDORDER_ABGR ¶

    PACKEDORDER_ABGR :: 7

    PACKEDORDER_ARGB ¶

    PACKEDORDER_ARGB :: 3

    PACKEDORDER_BGRA ¶

    PACKEDORDER_BGRA :: 8

    PACKEDORDER_BGRX ¶

    PACKEDORDER_BGRX :: 6

    PACKEDORDER_NONE ¶

    PACKEDORDER_NONE :: 0

    PACKEDORDER_RGBA ¶

    PACKEDORDER_RGBA :: 4

    PACKEDORDER_RGBX ¶

    PACKEDORDER_RGBX :: 2

    PACKEDORDER_XBGR ¶

    PACKEDORDER_XBGR :: 5

    PACKEDORDER_XRGB ¶

    PACKEDORDER_XRGB :: 1

    PATCHLEVEL ¶

    PATCHLEVEL :: 16

    PIXELTYPE_ARRAYF16 ¶

    PIXELTYPE_ARRAYF16 :: 10

    PIXELTYPE_ARRAYF3 ¶

    PIXELTYPE_ARRAYF3 :: 11

    PIXELTYPE_ARRAYU16 ¶

    PIXELTYPE_ARRAYU16 :: 8

    PIXELTYPE_ARRAYU32 ¶

    PIXELTYPE_ARRAYU32 :: 9

    PIXELTYPE_ARRAYU8 ¶

    PIXELTYPE_ARRAYU8 :: 7

    PIXELTYPE_INDEX1 ¶

    PIXELTYPE_INDEX1 :: 1

    PIXELTYPE_INDEX4 ¶

    PIXELTYPE_INDEX4 :: 2

    PIXELTYPE_INDEX8 ¶

    PIXELTYPE_INDEX8 :: 3

    PIXELTYPE_PACKED16 ¶

    PIXELTYPE_PACKED16 :: 5

    PIXELTYPE_PACKED32 ¶

    PIXELTYPE_PACKED32 :: 6

    PIXELTYPE_PACKED8 ¶

    PIXELTYPE_PACKED8 :: 4

    PIXELTYPE_UNKNOWN ¶

    PIXELTYPE_UNKNOWN :: 0

    PREALLOC ¶

    PREALLOC :: 0x00000001
     

    *< Surface uses preallocated memory

    PRESSED ¶

    PRESSED :: 1

    QUERY ¶

    QUERY :: -1

    RELEASED ¶

    RELEASED :: 0

    RENDERER_ACCELERATED ¶

    RENDERER_ACCELERATED :: RendererFlags{.ACCELERATED}

    RENDERER_PRESENTVSYNC ¶

    RENDERER_PRESENTVSYNC :: RendererFlags{.PRESENTVSYNC}

    RENDERER_SOFTWARE ¶

    RENDERER_SOFTWARE :: RendererFlags{.SOFTWARE}

    RENDERER_TARGETTEXTURE ¶

    RENDERER_TARGETTEXTURE :: RendererFlags{.TARGETTEXTURE}

    RLEACCEL ¶

    RLEACCEL :: 0x00000002
     

    *< Surface is RLE encoded

    RWOPS_JNIFILE ¶

    RWOPS_JNIFILE :: 3
     

    *< Android asset

    RWOPS_MEMORY ¶

    RWOPS_MEMORY :: 4
     

    *< Memory stream

    RWOPS_MEMORY_RO ¶

    RWOPS_MEMORY_RO :: 5
     

    *< Read-Only memory stream

    RWOPS_STDFILE ¶

    RWOPS_STDFILE :: 2
     

    *< Stdio file

    RWOPS_UNKNOWN ¶

    RWOPS_UNKNOWN :: 0
     

    RWops Types

    RWOPS_VITAFILE ¶

    RWOPS_VITAFILE :: 6
     

    *< Vita file

    RWOPS_WINFILE ¶

    RWOPS_WINFILE :: 1
     

    *< Win32 file

    SCANCODE_0 ¶

    SCANCODE_0 :: Scancode.NUM0

    SCANCODE_1 ¶

    SCANCODE_1 :: Scancode.NUM1

    SCANCODE_2 ¶

    SCANCODE_2 :: Scancode.NUM2

    SCANCODE_3 ¶

    SCANCODE_3 :: Scancode.NUM3

    SCANCODE_4 ¶

    SCANCODE_4 :: Scancode.NUM4

    SCANCODE_5 ¶

    SCANCODE_5 :: Scancode.NUM5

    SCANCODE_6 ¶

    SCANCODE_6 :: Scancode.NUM6

    SCANCODE_7 ¶

    SCANCODE_7 :: Scancode.NUM7

    SCANCODE_8 ¶

    SCANCODE_8 :: Scancode.NUM8

    SCANCODE_9 ¶

    SCANCODE_9 :: Scancode.NUM9

    SCANCODE_A ¶

    SCANCODE_A :: Scancode.A

    SCANCODE_AC_BACK ¶

    SCANCODE_AC_BACK :: Scancode.AC_BACK

    SCANCODE_AC_BOOKMARKS ¶

    SCANCODE_AC_BOOKMARKS :: Scancode.AC_BOOKMARKS

    SCANCODE_AC_FORWARD ¶

    SCANCODE_AC_FORWARD :: Scancode.AC_FORWARD

    SCANCODE_AC_HOME ¶

    SCANCODE_AC_HOME :: Scancode.AC_HOME

    SCANCODE_AC_REFRESH ¶

    SCANCODE_AC_REFRESH :: Scancode.AC_REFRESH
    SCANCODE_AC_SEARCH :: Scancode.AC_SEARCH

    SCANCODE_AC_STOP ¶

    SCANCODE_AC_STOP :: Scancode.AC_STOP

    SCANCODE_AGAIN ¶

    SCANCODE_AGAIN :: Scancode.AGAIN

    SCANCODE_ALTERASE ¶

    SCANCODE_ALTERASE :: Scancode.ALTERASE

    SCANCODE_APOSTROPHE ¶

    SCANCODE_APOSTROPHE :: Scancode.APOSTROPHE

    SCANCODE_APP1 ¶

    SCANCODE_APP1 :: Scancode.APP1

    SCANCODE_APP2 ¶

    SCANCODE_APP2 :: Scancode.APP2

    SCANCODE_APPLICATION ¶

    SCANCODE_APPLICATION :: Scancode.APPLICATION

    SCANCODE_AUDIOFASTFORWARD ¶

    SCANCODE_AUDIOFASTFORWARD :: Scancode.AUDIOFASTFORWARD

    SCANCODE_AUDIOMUTE ¶

    SCANCODE_AUDIOMUTE :: Scancode.AUDIOMUTE

    SCANCODE_AUDIONEXT ¶

    SCANCODE_AUDIONEXT :: Scancode.AUDIONEXT

    SCANCODE_AUDIOPLAY ¶

    SCANCODE_AUDIOPLAY :: Scancode.AUDIOPLAY

    SCANCODE_AUDIOPREV ¶

    SCANCODE_AUDIOPREV :: Scancode.AUDIOPREV

    SCANCODE_AUDIOREWIND ¶

    SCANCODE_AUDIOREWIND :: Scancode.AUDIOREWIND

    SCANCODE_AUDIOSTOP ¶

    SCANCODE_AUDIOSTOP :: Scancode.AUDIOSTOP

    SCANCODE_B ¶

    SCANCODE_B :: Scancode.B

    SCANCODE_BACKSLASH ¶

    SCANCODE_BACKSLASH :: Scancode.BACKSLASH

    SCANCODE_BACKSPACE ¶

    SCANCODE_BACKSPACE :: Scancode.BACKSPACE

    SCANCODE_BRIGHTNESSDOWN ¶

    SCANCODE_BRIGHTNESSDOWN :: Scancode.BRIGHTNESSDOWN

    SCANCODE_BRIGHTNESSUP ¶

    SCANCODE_BRIGHTNESSUP :: Scancode.BRIGHTNESSUP

    SCANCODE_C ¶

    SCANCODE_C :: Scancode.C

    SCANCODE_CALCULATOR ¶

    SCANCODE_CALCULATOR :: Scancode.CALCULATOR

    SCANCODE_CANCEL ¶

    SCANCODE_CANCEL :: Scancode.CANCEL

    SCANCODE_CAPSLOCK ¶

    SCANCODE_CAPSLOCK :: Scancode.CAPSLOCK

    SCANCODE_CLEAR ¶

    SCANCODE_CLEAR :: Scancode.CLEAR

    SCANCODE_CLEARAGAIN ¶

    SCANCODE_CLEARAGAIN :: Scancode.CLEARAGAIN

    SCANCODE_COMMA ¶

    SCANCODE_COMMA :: Scancode.COMMA

    SCANCODE_COMPUTER ¶

    SCANCODE_COMPUTER :: Scancode.COMPUTER

    SCANCODE_COPY ¶

    SCANCODE_COPY :: Scancode.COPY

    SCANCODE_CRSEL ¶

    SCANCODE_CRSEL :: Scancode.CRSEL

    SCANCODE_CURRENCYSUBUNIT ¶

    SCANCODE_CURRENCYSUBUNIT :: Scancode.CURRENCYSUBUNIT

    SCANCODE_CURRENCYUNIT ¶

    SCANCODE_CURRENCYUNIT :: Scancode.CURRENCYUNIT

    SCANCODE_CUT ¶

    SCANCODE_CUT :: Scancode.CUT

    SCANCODE_D ¶

    SCANCODE_D :: Scancode.D

    SCANCODE_DECIMALSEPARATOR ¶

    SCANCODE_DECIMALSEPARATOR :: Scancode.DECIMALSEPARATOR

    SCANCODE_DELETE ¶

    SCANCODE_DELETE :: Scancode.DELETE

    SCANCODE_DISPLAYSWITCH ¶

    SCANCODE_DISPLAYSWITCH :: Scancode.DISPLAYSWITCH

    SCANCODE_DOWN ¶

    SCANCODE_DOWN :: Scancode.DOWN

    SCANCODE_E ¶

    SCANCODE_E :: Scancode.E

    SCANCODE_EJECT ¶

    SCANCODE_EJECT :: Scancode.EJECT

    SCANCODE_END ¶

    SCANCODE_END :: Scancode.END

    SCANCODE_EQUALS ¶

    SCANCODE_EQUALS :: Scancode.EQUALS

    SCANCODE_ESCAPE ¶

    SCANCODE_ESCAPE :: Scancode.ESCAPE

    SCANCODE_EXECUTE ¶

    SCANCODE_EXECUTE :: Scancode.EXECUTE

    SCANCODE_EXSEL ¶

    SCANCODE_EXSEL :: Scancode.EXSEL

    SCANCODE_F ¶

    SCANCODE_F :: Scancode.F

    SCANCODE_F1 ¶

    SCANCODE_F1 :: Scancode.F1

    SCANCODE_F10 ¶

    SCANCODE_F10 :: Scancode.F10

    SCANCODE_F11 ¶

    SCANCODE_F11 :: Scancode.F11

    SCANCODE_F12 ¶

    SCANCODE_F12 :: Scancode.F12

    SCANCODE_F13 ¶

    SCANCODE_F13 :: Scancode.F13

    SCANCODE_F14 ¶

    SCANCODE_F14 :: Scancode.F14

    SCANCODE_F15 ¶

    SCANCODE_F15 :: Scancode.F15

    SCANCODE_F16 ¶

    SCANCODE_F16 :: Scancode.F16

    SCANCODE_F17 ¶

    SCANCODE_F17 :: Scancode.F17

    SCANCODE_F18 ¶

    SCANCODE_F18 :: Scancode.F18

    SCANCODE_F19 ¶

    SCANCODE_F19 :: Scancode.F19

    SCANCODE_F2 ¶

    SCANCODE_F2 :: Scancode.F2

    SCANCODE_F20 ¶

    SCANCODE_F20 :: Scancode.F20

    SCANCODE_F21 ¶

    SCANCODE_F21 :: Scancode.F21

    SCANCODE_F22 ¶

    SCANCODE_F22 :: Scancode.F22

    SCANCODE_F23 ¶

    SCANCODE_F23 :: Scancode.F23

    SCANCODE_F24 ¶

    SCANCODE_F24 :: Scancode.F24

    SCANCODE_F3 ¶

    SCANCODE_F3 :: Scancode.F3

    SCANCODE_F4 ¶

    SCANCODE_F4 :: Scancode.F4

    SCANCODE_F5 ¶

    SCANCODE_F5 :: Scancode.F5

    SCANCODE_F6 ¶

    SCANCODE_F6 :: Scancode.F6

    SCANCODE_F7 ¶

    SCANCODE_F7 :: Scancode.F7

    SCANCODE_F8 ¶

    SCANCODE_F8 :: Scancode.F8

    SCANCODE_F9 ¶

    SCANCODE_F9 :: Scancode.F9

    SCANCODE_FIND ¶

    SCANCODE_FIND :: Scancode.FIND

    SCANCODE_G ¶

    SCANCODE_G :: Scancode.G

    SCANCODE_GRAVE ¶

    SCANCODE_GRAVE :: Scancode.GRAVE

    SCANCODE_H ¶

    SCANCODE_H :: Scancode.H

    SCANCODE_HELP ¶

    SCANCODE_HELP :: Scancode.HELP

    SCANCODE_HOME ¶

    SCANCODE_HOME :: Scancode.HOME

    SCANCODE_I ¶

    SCANCODE_I :: Scancode.I

    SCANCODE_INSERT ¶

    SCANCODE_INSERT :: Scancode.INSERT

    SCANCODE_INTERNATIONAL1 ¶

    SCANCODE_INTERNATIONAL1 :: Scancode.INTERNATIONAL1

    SCANCODE_INTERNATIONAL2 ¶

    SCANCODE_INTERNATIONAL2 :: Scancode.INTERNATIONAL2

    SCANCODE_INTERNATIONAL3 ¶

    SCANCODE_INTERNATIONAL3 :: Scancode.INTERNATIONAL3

    SCANCODE_INTERNATIONAL4 ¶

    SCANCODE_INTERNATIONAL4 :: Scancode.INTERNATIONAL4

    SCANCODE_INTERNATIONAL5 ¶

    SCANCODE_INTERNATIONAL5 :: Scancode.INTERNATIONAL5

    SCANCODE_INTERNATIONAL6 ¶

    SCANCODE_INTERNATIONAL6 :: Scancode.INTERNATIONAL6

    SCANCODE_INTERNATIONAL7 ¶

    SCANCODE_INTERNATIONAL7 :: Scancode.INTERNATIONAL7

    SCANCODE_INTERNATIONAL8 ¶

    SCANCODE_INTERNATIONAL8 :: Scancode.INTERNATIONAL8

    SCANCODE_INTERNATIONAL9 ¶

    SCANCODE_INTERNATIONAL9 :: Scancode.INTERNATIONAL9

    SCANCODE_J ¶

    SCANCODE_J :: Scancode.J

    SCANCODE_K ¶

    SCANCODE_K :: Scancode.K

    SCANCODE_KBDILLUMDOWN ¶

    SCANCODE_KBDILLUMDOWN :: Scancode.KBDILLUMDOWN

    SCANCODE_KBDILLUMTOGGLE ¶

    SCANCODE_KBDILLUMTOGGLE :: Scancode.KBDILLUMTOGGLE

    SCANCODE_KBDILLUMUP ¶

    SCANCODE_KBDILLUMUP :: Scancode.KBDILLUMUP

    SCANCODE_KP_0 ¶

    SCANCODE_KP_0 :: Scancode.KP_0

    SCANCODE_KP_00 ¶

    SCANCODE_KP_00 :: Scancode.KP_00

    SCANCODE_KP_000 ¶

    SCANCODE_KP_000 :: Scancode.KP_000

    SCANCODE_KP_1 ¶

    SCANCODE_KP_1 :: Scancode.KP_1

    SCANCODE_KP_2 ¶

    SCANCODE_KP_2 :: Scancode.KP_2

    SCANCODE_KP_3 ¶

    SCANCODE_KP_3 :: Scancode.KP_3

    SCANCODE_KP_4 ¶

    SCANCODE_KP_4 :: Scancode.KP_4

    SCANCODE_KP_5 ¶

    SCANCODE_KP_5 :: Scancode.KP_5

    SCANCODE_KP_6 ¶

    SCANCODE_KP_6 :: Scancode.KP_6

    SCANCODE_KP_7 ¶

    SCANCODE_KP_7 :: Scancode.KP_7

    SCANCODE_KP_8 ¶

    SCANCODE_KP_8 :: Scancode.KP_8

    SCANCODE_KP_9 ¶

    SCANCODE_KP_9 :: Scancode.KP_9

    SCANCODE_KP_A ¶

    SCANCODE_KP_A :: Scancode.KP_A

    SCANCODE_KP_AMPERSAND ¶

    SCANCODE_KP_AMPERSAND :: Scancode.KP_AMPERSAND

    SCANCODE_KP_AT ¶

    SCANCODE_KP_AT :: Scancode.KP_AT

    SCANCODE_KP_B ¶

    SCANCODE_KP_B :: Scancode.KP_B

    SCANCODE_KP_BACKSPACE ¶

    SCANCODE_KP_BACKSPACE :: Scancode.KP_BACKSPACE

    SCANCODE_KP_BINARY ¶

    SCANCODE_KP_BINARY :: Scancode.KP_BINARY

    SCANCODE_KP_C ¶

    SCANCODE_KP_C :: Scancode.KP_C

    SCANCODE_KP_CLEAR ¶

    SCANCODE_KP_CLEAR :: Scancode.KP_CLEAR

    SCANCODE_KP_CLEARENTRY ¶

    SCANCODE_KP_CLEARENTRY :: Scancode.KP_CLEARENTRY

    SCANCODE_KP_COLON ¶

    SCANCODE_KP_COLON :: Scancode.KP_COLON

    SCANCODE_KP_COMMA ¶

    SCANCODE_KP_COMMA :: Scancode.KP_COMMA

    SCANCODE_KP_D ¶

    SCANCODE_KP_D :: Scancode.KP_D

    SCANCODE_KP_DBLAMPERSAND ¶

    SCANCODE_KP_DBLAMPERSAND :: Scancode.KP_DBLAMPERSAND

    SCANCODE_KP_DBLVERTICALBAR ¶

    SCANCODE_KP_DBLVERTICALBAR :: Scancode.KP_DBLVERTICALBAR

    SCANCODE_KP_DECIMAL ¶

    SCANCODE_KP_DECIMAL :: Scancode.KP_DECIMAL

    SCANCODE_KP_DIVIDE ¶

    SCANCODE_KP_DIVIDE :: Scancode.KP_DIVIDE

    SCANCODE_KP_E ¶

    SCANCODE_KP_E :: Scancode.KP_E

    SCANCODE_KP_ENTER ¶

    SCANCODE_KP_ENTER :: Scancode.KP_ENTER

    SCANCODE_KP_EQUALS ¶

    SCANCODE_KP_EQUALS :: Scancode.KP_EQUALS

    SCANCODE_KP_EQUALSAS400 ¶

    SCANCODE_KP_EQUALSAS400 :: Scancode.KP_EQUALSAS400

    SCANCODE_KP_EXCLAM ¶

    SCANCODE_KP_EXCLAM :: Scancode.KP_EXCLAM

    SCANCODE_KP_F ¶

    SCANCODE_KP_F :: Scancode.KP_F

    SCANCODE_KP_GREATER ¶

    SCANCODE_KP_GREATER :: Scancode.KP_GREATER

    SCANCODE_KP_HASH ¶

    SCANCODE_KP_HASH :: Scancode.KP_HASH

    SCANCODE_KP_HEXADECIMAL ¶

    SCANCODE_KP_HEXADECIMAL :: Scancode.KP_HEXADECIMAL

    SCANCODE_KP_LEFTBRACE ¶

    SCANCODE_KP_LEFTBRACE :: Scancode.KP_LEFTBRACE

    SCANCODE_KP_LEFTPAREN ¶

    SCANCODE_KP_LEFTPAREN :: Scancode.KP_LEFTPAREN

    SCANCODE_KP_LESS ¶

    SCANCODE_KP_LESS :: Scancode.KP_LESS

    SCANCODE_KP_MEMADD ¶

    SCANCODE_KP_MEMADD :: Scancode.KP_MEMADD

    SCANCODE_KP_MEMCLEAR ¶

    SCANCODE_KP_MEMCLEAR :: Scancode.KP_MEMCLEAR

    SCANCODE_KP_MEMDIVIDE ¶

    SCANCODE_KP_MEMDIVIDE :: Scancode.KP_MEMDIVIDE

    SCANCODE_KP_MEMMULTIPLY ¶

    SCANCODE_KP_MEMMULTIPLY :: Scancode.KP_MEMMULTIPLY

    SCANCODE_KP_MEMRECALL ¶

    SCANCODE_KP_MEMRECALL :: Scancode.KP_MEMRECALL

    SCANCODE_KP_MEMSTORE ¶

    SCANCODE_KP_MEMSTORE :: Scancode.KP_MEMSTORE

    SCANCODE_KP_MEMSUBTRACT ¶

    SCANCODE_KP_MEMSUBTRACT :: Scancode.KP_MEMSUBTRACT

    SCANCODE_KP_MINUS ¶

    SCANCODE_KP_MINUS :: Scancode.KP_MINUS

    SCANCODE_KP_MULTIPLY ¶

    SCANCODE_KP_MULTIPLY :: Scancode.KP_MULTIPLY

    SCANCODE_KP_OCTAL ¶

    SCANCODE_KP_OCTAL :: Scancode.KP_OCTAL

    SCANCODE_KP_PERCENT ¶

    SCANCODE_KP_PERCENT :: Scancode.KP_PERCENT

    SCANCODE_KP_PERIOD ¶

    SCANCODE_KP_PERIOD :: Scancode.KP_PERIOD

    SCANCODE_KP_PLUS ¶

    SCANCODE_KP_PLUS :: Scancode.KP_PLUS

    SCANCODE_KP_PLUSMINUS ¶

    SCANCODE_KP_PLUSMINUS :: Scancode.KP_PLUSMINUS

    SCANCODE_KP_POWER ¶

    SCANCODE_KP_POWER :: Scancode.KP_POWER

    SCANCODE_KP_RIGHTBRACE ¶

    SCANCODE_KP_RIGHTBRACE :: Scancode.KP_RIGHTBRACE

    SCANCODE_KP_RIGHTPAREN ¶

    SCANCODE_KP_RIGHTPAREN :: Scancode.KP_RIGHTPAREN

    SCANCODE_KP_SPACE ¶

    SCANCODE_KP_SPACE :: Scancode.KP_SPACE

    SCANCODE_KP_TAB ¶

    SCANCODE_KP_TAB :: Scancode.KP_TAB

    SCANCODE_KP_VERTICALBAR ¶

    SCANCODE_KP_VERTICALBAR :: Scancode.KP_VERTICALBAR

    SCANCODE_KP_XOR ¶

    SCANCODE_KP_XOR :: Scancode.KP_XOR

    SCANCODE_L ¶

    SCANCODE_L :: Scancode.L

    SCANCODE_LALT ¶

    SCANCODE_LALT :: Scancode.LALT

    SCANCODE_LANG1 ¶

    SCANCODE_LANG1 :: Scancode.LANG1

    SCANCODE_LANG2 ¶

    SCANCODE_LANG2 :: Scancode.LANG2

    SCANCODE_LANG3 ¶

    SCANCODE_LANG3 :: Scancode.LANG3

    SCANCODE_LANG4 ¶

    SCANCODE_LANG4 :: Scancode.LANG4

    SCANCODE_LANG5 ¶

    SCANCODE_LANG5 :: Scancode.LANG5

    SCANCODE_LANG6 ¶

    SCANCODE_LANG6 :: Scancode.LANG6

    SCANCODE_LANG7 ¶

    SCANCODE_LANG7 :: Scancode.LANG7

    SCANCODE_LANG8 ¶

    SCANCODE_LANG8 :: Scancode.LANG8

    SCANCODE_LANG9 ¶

    SCANCODE_LANG9 :: Scancode.LANG9

    SCANCODE_LCTRL ¶

    SCANCODE_LCTRL :: Scancode.LCTRL

    SCANCODE_LEFT ¶

    SCANCODE_LEFT :: Scancode.LEFT

    SCANCODE_LEFTBRACKET ¶

    SCANCODE_LEFTBRACKET :: Scancode.LEFTBRACKET

    SCANCODE_LGUI ¶

    SCANCODE_LGUI :: Scancode.LGUI

    SCANCODE_LSHIFT ¶

    SCANCODE_LSHIFT :: Scancode.LSHIFT

    SCANCODE_M ¶

    SCANCODE_M :: Scancode.M

    SCANCODE_MAIL ¶

    SCANCODE_MAIL :: Scancode.MAIL

    SCANCODE_MASK ¶

    SCANCODE_MASK :: 1 << 30

    SCANCODE_MEDIASELECT ¶

    SCANCODE_MEDIASELECT :: Scancode.MEDIASELECT

    SCANCODE_MENU ¶

    SCANCODE_MENU :: Scancode.MENU

    SCANCODE_MINUS ¶

    SCANCODE_MINUS :: Scancode.MINUS

    SCANCODE_MODE ¶

    SCANCODE_MODE :: Scancode.MODE

    SCANCODE_MUTE ¶

    SCANCODE_MUTE :: Scancode.MUTE

    SCANCODE_N ¶

    SCANCODE_N :: Scancode.N

    SCANCODE_NONUSBACKSLASH ¶

    SCANCODE_NONUSBACKSLASH :: Scancode.NONUSBACKSLASH

    SCANCODE_NONUSHASH ¶

    SCANCODE_NONUSHASH :: Scancode.NONUSHASH

    SCANCODE_NUMLOCKCLEAR ¶

    SCANCODE_NUMLOCKCLEAR :: Scancode.NUMLOCKCLEAR

    SCANCODE_O ¶

    SCANCODE_O :: Scancode.O

    SCANCODE_OPER ¶

    SCANCODE_OPER :: Scancode.OPER

    SCANCODE_OUT ¶

    SCANCODE_OUT :: Scancode.OUT

    SCANCODE_P ¶

    SCANCODE_P :: Scancode.P

    SCANCODE_PAGEDOWN ¶

    SCANCODE_PAGEDOWN :: Scancode.PAGEDOWN

    SCANCODE_PAGEUP ¶

    SCANCODE_PAGEUP :: Scancode.PAGEUP

    SCANCODE_PASTE ¶

    SCANCODE_PASTE :: Scancode.PASTE

    SCANCODE_PAUSE ¶

    SCANCODE_PAUSE :: Scancode.PAUSE

    SCANCODE_PERIOD ¶

    SCANCODE_PERIOD :: Scancode.PERIOD

    SCANCODE_POWER ¶

    SCANCODE_POWER :: Scancode.POWER

    SCANCODE_PRINTSCREEN ¶

    SCANCODE_PRINTSCREEN :: Scancode.PRINTSCREEN

    SCANCODE_PRIOR ¶

    SCANCODE_PRIOR :: Scancode.PRIOR

    SCANCODE_Q ¶

    SCANCODE_Q :: Scancode.Q

    SCANCODE_R ¶

    SCANCODE_R :: Scancode.R

    SCANCODE_RALT ¶

    SCANCODE_RALT :: Scancode.RALT

    SCANCODE_RCTRL ¶

    SCANCODE_RCTRL :: Scancode.RCTRL

    SCANCODE_RETURN ¶

    SCANCODE_RETURN :: Scancode.RETURN

    SCANCODE_RETURN2 ¶

    SCANCODE_RETURN2 :: Scancode.RETURN2

    SCANCODE_RGUI ¶

    SCANCODE_RGUI :: Scancode.RGUI

    SCANCODE_RIGHT ¶

    SCANCODE_RIGHT :: Scancode.RIGHT

    SCANCODE_RIGHTBRACKET ¶

    SCANCODE_RIGHTBRACKET :: Scancode.RIGHTBRACKET

    SCANCODE_RSHIFT ¶

    SCANCODE_RSHIFT :: Scancode.RSHIFT

    SCANCODE_S ¶

    SCANCODE_S :: Scancode.S

    SCANCODE_SCROLLLOCK ¶

    SCANCODE_SCROLLLOCK :: Scancode.SCROLLLOCK

    SCANCODE_SELECT ¶

    SCANCODE_SELECT :: Scancode.SELECT

    SCANCODE_SEMICOLON ¶

    SCANCODE_SEMICOLON :: Scancode.SEMICOLON

    SCANCODE_SEPARATOR ¶

    SCANCODE_SEPARATOR :: Scancode.SEPARATOR

    SCANCODE_SLASH ¶

    SCANCODE_SLASH :: Scancode.SLASH

    SCANCODE_SLEEP ¶

    SCANCODE_SLEEP :: Scancode.SLEEP

    SCANCODE_SPACE ¶

    SCANCODE_SPACE :: Scancode.SPACE

    SCANCODE_STOP ¶

    SCANCODE_STOP :: Scancode.STOP

    SCANCODE_SYSREQ ¶

    SCANCODE_SYSREQ :: Scancode.SYSREQ

    SCANCODE_T ¶

    SCANCODE_T :: Scancode.T

    SCANCODE_TAB ¶

    SCANCODE_TAB :: Scancode.TAB

    SCANCODE_THOUSANDSSEPARATOR ¶

    SCANCODE_THOUSANDSSEPARATOR :: Scancode.THOUSANDSSEPARATOR

    SCANCODE_U ¶

    SCANCODE_U :: Scancode.U

    SCANCODE_UNDO ¶

    SCANCODE_UNDO :: Scancode.UNDO

    SCANCODE_UNKNOWN ¶

    SCANCODE_UNKNOWN :: Scancode.UNKNOWN

    SCANCODE_UP ¶

    SCANCODE_UP :: Scancode.UP

    SCANCODE_V ¶

    SCANCODE_V :: Scancode.V

    SCANCODE_VOLUMEDOWN ¶

    SCANCODE_VOLUMEDOWN :: Scancode.VOLUMEDOWN

    SCANCODE_VOLUMEUP ¶

    SCANCODE_VOLUMEUP :: Scancode.VOLUMEUP

    SCANCODE_W ¶

    SCANCODE_W :: Scancode.W

    SCANCODE_WWW ¶

    SCANCODE_WWW :: Scancode.WWW

    SCANCODE_X ¶

    SCANCODE_X :: Scancode.X

    SCANCODE_Y ¶

    SCANCODE_Y :: Scancode.Y

    SCANCODE_Z ¶

    SCANCODE_Z :: Scancode.Z

    SEEK_CUR ¶

    SEEK_CUR :: 1
     

    *< Seek relative to current read point

    SEEK_END ¶

    SEEK_END :: 2
     

    *< Seek relative to the end of data

    SEEK_SET ¶

    SEEK_SET :: 0
     

    *< Seek from the beginning of data

    SIMD_ALIGNED ¶

    SIMD_ALIGNED :: 0x00000008
     

    *< Surface uses aligned memory

    STANDARD_GRAVITY ¶

    STANDARD_GRAVITY :: 9.80665

    SWSURFACE ¶

    SWSURFACE :: 0
     

    *< Just here for compatibility

    TEXTEDITINGEVENT_TEXT_SIZE ¶

    TEXTEDITINGEVENT_TEXT_SIZE :: 32

    TEXTINPUTEVENT_TEXT_SIZE ¶

    TEXTINPUTEVENT_TEXT_SIZE :: 32

    TEXTUREMODULATE_ALPHA ¶

    TEXTUREMODULATE_ALPHA :: 0x00000002
     

    < srcA = srcA alpha

    TEXTUREMODULATE_COLOR ¶

    TEXTUREMODULATE_COLOR :: 0x00000001
     

    < srcC = srcC color

    TEXTUREMODULATE_NONE ¶

    TEXTUREMODULATE_NONE :: 0x00000000
     

    *< No modulation

    TOUCH_MOUSEID ¶

    TOUCH_MOUSEID: u32 : ~u32(0)

    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_ALLOW_HIGHDPI ¶

    WINDOW_ALLOW_HIGHDPI :: WindowFlags{.ALLOW_HIGHDPI}

    WINDOW_ALWAYS_ON_TOP ¶

    WINDOW_ALWAYS_ON_TOP :: WindowFlags{.ALWAYS_ON_TOP}

    WINDOW_BORDERLESS ¶

    WINDOW_BORDERLESS :: WindowFlags{.BORDERLESS}

    WINDOW_FOREIGN ¶

    WINDOW_FOREIGN :: WindowFlags{.FOREIGN}

    WINDOW_FULLSCREEN ¶

    WINDOW_FULLSCREEN :: WindowFlags{.FULLSCREEN}

    WINDOW_FULLSCREEN_DESKTOP ¶

    WINDOW_FULLSCREEN_DESKTOP :: WindowFlags{.FULLSCREEN, ._INTERNAL_FULLSCREEN_DESKTOP}

    WINDOW_HIDDEN ¶

    WINDOW_HIDDEN :: WindowFlags{.HIDDEN}

    WINDOW_INPUT_FOCUS ¶

    WINDOW_INPUT_FOCUS :: WindowFlags{.INPUT_FOCUS}

    WINDOW_INPUT_GRABBED ¶

    WINDOW_INPUT_GRABBED :: WindowFlags{.INPUT_GRABBED}

    WINDOW_KEYBOARD_GRABBED ¶

    WINDOW_KEYBOARD_GRABBED :: WindowFlags{.KEYBOARD_GRABBED}

    WINDOW_LACKS_SHAPE ¶

    WINDOW_LACKS_SHAPE :: -3

    WINDOW_MAXIMIZED ¶

    WINDOW_MAXIMIZED :: WindowFlags{.MAXIMIZED}

    WINDOW_METAL ¶

    WINDOW_METAL :: WindowFlags{.METAL}

    WINDOW_MINIMIZED ¶

    WINDOW_MINIMIZED :: WindowFlags{.MINIMIZED}

    WINDOW_MOUSE_CAPTURE ¶

    WINDOW_MOUSE_CAPTURE :: WindowFlags{.MOUSE_CAPTURE}

    WINDOW_MOUSE_FOCUS ¶

    WINDOW_MOUSE_FOCUS :: WindowFlags{.MOUSE_FOCUS}

    WINDOW_MOUSE_GRABBED ¶

    WINDOW_MOUSE_GRABBED :: WindowFlags{.MOUSE_GRABBED}

    WINDOW_OPENGL ¶

    WINDOW_OPENGL :: WindowFlags{.OPENGL}

    WINDOW_POPUP_MENU ¶

    WINDOW_POPUP_MENU :: WindowFlags{.POPUP_MENU}

    WINDOW_RESIZABLE ¶

    WINDOW_RESIZABLE :: WindowFlags{.RESIZABLE}

    WINDOW_SHOWN ¶

    WINDOW_SHOWN :: WindowFlags{.SHOWN}

    WINDOW_SKIP_TASKBAR ¶

    WINDOW_SKIP_TASKBAR :: WindowFlags{.SKIP_TASKBAR}

    WINDOW_TOOLTIP ¶

    WINDOW_TOOLTIP :: WindowFlags{.TOOLTIP}

    WINDOW_UTILITY ¶

    WINDOW_UTILITY :: WindowFlags{.UTILITY}

    WINDOW_VULKAN ¶

    WINDOW_VULKAN :: WindowFlags{.VULKAN}

    Variables

    This section is empty.

    Procedures

    AUDIO_BITSIZE ¶

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

    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 {…}

    AddEventWatch ¶

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

    AddHintCallback ¶

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

    AddTimer ¶

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

    AllocFormat ¶

    AllocFormat :: proc "c" (pixel_format: u32) -> ^PixelFormat ---

    AllocPalette ¶

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

    AllocRW ¶

    AllocRW :: proc "c" () -> ^RWops ---

    AndroidBackButton ¶

    AndroidBackButton :: proc "c" () ---

    AndroidGetActivity ¶

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

    AndroidGetExternalStoragePath ¶

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

    AndroidGetExternalStorageState ¶

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

    AndroidGetInternalStoragePath ¶

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

    AndroidGetJNIEnv ¶

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

    AndroidRequestPermission ¶

    AndroidRequestPermission :: proc "c" (permission: cstring) -> bool ---

    AndroidShowToast ¶

    AndroidShowToast :: proc "c" (message: cstring, duration, gravity, xoffset, yoffset: i32) -> i32 ---

    AtomicAdd ¶

    AtomicAdd :: proc "c" (a: ^atomic_t, v: i32) -> i32 ---

    AtomicCAS ¶

    AtomicCAS :: proc "c" (a: ^atomic_t, oldval, newval: i32) -> bool ---

    AtomicCASPtr ¶

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

    AtomicGet ¶

    AtomicGet :: proc "c" (a: ^atomic_t) -> i32 ---

    AtomicGetPtr ¶

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

    AtomicLock ¶

    AtomicLock :: proc "c" (lock: ^SpinLock) ---

    AtomicSet ¶

    AtomicSet :: proc "c" (a: ^atomic_t, v: i32) -> i32 ---

    AtomicSetPtr ¶

    AtomicSetPtr :: proc "c" (a: ^rawptr, v: rawptr) -> rawptr ---

    AtomicTryLock ¶

    AtomicTryLock :: proc "c" (lock: ^SpinLock) -> bool ---

    AtomicUnlock ¶

    AtomicUnlock :: proc "c" (lock: ^SpinLock) ---

    AudioInit ¶

    AudioInit :: proc "c" (driver_name: cstring) -> i32 ---

    AudioQuit ¶

    AudioQuit :: proc "c" () ---

    AudioStreamAvailable ¶

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

    AudioStreamClear ¶

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

    AudioStreamFlush ¶

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

    AudioStreamGet ¶

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

    AudioStreamPut ¶

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

    BUTTON ¶

    BUTTON :: proc "c" (X: i32) -> i32 {…}

    BuildAudioCVT ¶

    BuildAudioCVT :: proc "c" (
    	cvt:          ^AudioCVT, 
    	src_format:   AudioFormat, 
    	src_channels: u8, 
    	src_rate:     i32, 
    	dst_format:   AudioFormat, 
    	dst_channels: u8, 
    	dst_rate:     i32, 
    ) -> i32 ---

    CalculateGammaRamp ¶

    CalculateGammaRamp :: proc "c" (gamma: f32, ramp: ^[256]u16) ---

    CaptureMouse ¶

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

    ClearError ¶

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

    ClearHints ¶

    ClearHints :: proc "c" () ---

    ClearQueuedAudio ¶

    ClearQueuedAudio :: proc "c" (dev: AudioDeviceID) ---

    CloseAudio ¶

    CloseAudio :: proc "c" () ---

    CloseAudioDevice ¶

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

    ComposeCustomBlendMode ¶

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

    CondBroadcast ¶

    CondBroadcast :: proc "c" (cv: ^cond) -> i32 ---

    CondSignal ¶

    CondSignal :: proc "c" (cv: ^cond) -> i32 ---

    CondWait ¶

    CondWait :: proc "c" (cv: ^cond, m: ^mutex) -> i32 ---

    CondWaitTimeout ¶

    CondWaitTimeout :: proc "c" (cv: ^cond, m: ^mutex, ms: u32) -> i32 ---

    ConvertAudio ¶

    ConvertAudio :: proc "c" (cvt: ^AudioCVT) -> i32 ---

    ConvertPixels ¶

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

    ConvertSurface ¶

    ConvertSurface :: proc "c" (src: ^Surface, fmt: ^PixelFormat, flags: u32) -> ^Surface ---

    ConvertSurfaceFormat ¶

    ConvertSurfaceFormat :: proc "c" (src: ^Surface, pixel_format: u32, flags: u32) -> ^Surface ---

    CreateColorCursor ¶

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

    CreateCond ¶

    CreateCond :: proc "c" () -> ^cond ---

    CreateCursor ¶

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

    CreateMutex ¶

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

    CreateRGBSurface ¶

    CreateRGBSurface :: proc "c" (
    	flags:                u32, 
    	width, height, depth: i32, 
    	Rmask, Gmask, Bmask, 
    	Amask:                u32, 
    ) -> ^Surface ---

    CreateRGBSurfaceFrom ¶

    CreateRGBSurfaceFrom :: proc "c" (
    	pixels:                      rawptr, 
    	width, height, depth, pitch: i32, 
    	Rmask, Gmask, Bmask, 
    	Amask:                       u32, 
    ) -> ^Surface ---

    CreateRGBSurfaceWithFormat ¶

    CreateRGBSurfaceWithFormat :: proc "c" (flags: u32, width, height, depth: i32, format: u32) -> ^Surface ---

    CreateRGBSurfaceWithFormatFrom ¶

    CreateRGBSurfaceWithFormatFrom :: proc "c" (
    	pixels:                      rawptr, 
    	width, height, depth, pitch: i32, 
    	format:                      u32, 
    ) -> ^Surface ---

    CreateRenderer ¶

    CreateRenderer :: proc "c" (window: ^Window, index: i32, flags: RendererFlags) -> ^Renderer ---

    CreateSemaphore ¶

    CreateSemaphore :: proc "c" (initial_value: u32) -> ^semaphore ---

    CreateShapedWindow ¶

    CreateShapedWindow :: proc "c" (
    	title:      cstring, 
    	x, y, w, h: u32, 
    	flags:      WindowFlags, 
    ) -> ^Window ---

    CreateSoftwareRenderer ¶

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

    CreateSystemCursor ¶

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

    CreateTexture ¶

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

    CreateTextureFromSurface ¶

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

    CreateThread ¶

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

    CreateThreadWithStackSize ¶

    CreateThreadWithStackSize :: proc "c" (fn: ThreadFunction, name: cstring, stacksize: uint, data: rawptr) -> ^Thread ---

    CreateWindow ¶

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

    CreateWindowAndRenderer ¶

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

    CreateWindowFrom ¶

    CreateWindowFrom :: proc "c" (data: rawptr) -> ^Window ---

    DEFINE_PIXELFORMAT ¶

    DEFINE_PIXELFORMAT :: proc "c" (type: u8, order: u8, layout, bits, bytes: u8) -> u32 {…}

    DEFINE_PIXELFOURCC ¶

    DEFINE_PIXELFOURCC :: FOURCC

    DXGIGetOutputInfo ¶

    DXGIGetOutputInfo :: proc "c" (displayIndex: i32, adapterIndex: ^i32, outputIndex: ^i32) -> bool ---

    DelEventWatch ¶

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

    DelHintCallback ¶

    DelHintCallback :: proc "c" (name: cstring, callback: HintCallback, userdata: rawptr) ---

    Delay ¶

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

    DequeueAudio ¶

    DequeueAudio :: proc "c" (dev: AudioDeviceID, data: rawptr, len: u32) -> u32 ---

    DestroyCond ¶

    DestroyCond :: proc "c" (cv: ^cond) ---

    DestroyMutex ¶

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

    DestroyRenderer ¶

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

    DestroySemaphore ¶

    DestroySemaphore :: proc "c" (s: ^semaphore) ---

    DestroyTexture ¶

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

    DestroyWindow ¶

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

    DetachThread ¶

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

    Direct3D9GetAdapterIndex ¶

    Direct3D9GetAdapterIndex :: proc "c" (displayIndex: i32) -> i32 ---

    DisableScreenSaver ¶

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

    DuplicateSurface ¶

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

    EnableScreenSaver ¶

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

    EnclosePoints ¶

    EnclosePoints :: proc "c" (points: [^]Point, count: i32, clip: ^Rect, result: ^Rect) -> bool ---

    Error ¶

    Error :: proc "c" (code: errorcode) -> i32 ---

    EventState ¶

    EventState :: proc "c" (type: EventType, state: i32) -> b8 ---
     

    original return value is u8

    FOURCC ¶

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

    FillRect ¶

    FillRect :: proc "c" (dst: ^Surface, rect: ^Rect, color: u32) -> i32 ---

    FillRects ¶

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

    FilterEvents ¶

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

    FlashWindow ¶

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

    FlushEvent ¶

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

    FlushEvents ¶

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

    FreeAudioStream ¶

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

    FreeCursor ¶

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

    FreeFormat ¶

    FreeFormat :: proc "c" (format: ^PixelFormat) ---

    FreePalette ¶

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

    FreeRW ¶

    FreeRW :: proc "c" (area: ^RWops) ---

    FreeSurface ¶

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

    FreeWAV ¶

    FreeWAV :: proc "c" (audio_buf: [^]u8) ---

    GL_BindTexture ¶

    GL_BindTexture :: proc "c" (texture: ^Texture, texw, texh: ^f32) -> i32 ---

    GL_CreateContext ¶

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

    GL_DeleteContext ¶

    GL_DeleteContext :: proc "c" (ctx: GLContext) ---

    GL_ExtensionSupported ¶

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

    GL_GetAttribute ¶

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

    GL_GetCurrentContext ¶

    GL_GetCurrentContext :: proc "c" () -> GLContext ---

    GL_GetCurrentWindow ¶

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

    GL_GetDrawableSize ¶

    GL_GetDrawableSize :: proc "c" (window: ^Window, w, h: ^i32) ---

    GL_GetProcAddress ¶

    GL_GetProcAddress :: proc "c" (procedure: cstring) -> rawptr ---

    GL_GetSwapInterval ¶

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

    GL_LoadLibrary ¶

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

    GL_MakeCurrent ¶

    GL_MakeCurrent :: proc "c" (window: ^Window, ctx: GLContext) -> i32 ---

    GL_ResetAttributes ¶

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

    GL_SetAttribute ¶

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

    GL_SetSwapInterval ¶

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

    GL_SwapWindow ¶

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

    GL_UnbindTexture ¶

    GL_UnbindTexture :: proc "c" (texture: ^Texture) -> i32 ---

    GL_UnloadLibrary ¶

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

    GameControllerAddMapping ¶

    GameControllerAddMapping :: proc "c" (mappingString: cstring) -> i32 ---

    GameControllerAddMappingsFromFile ¶

    GameControllerAddMappingsFromFile :: proc "c" (file: cstring) -> i32 {…}

    GameControllerAddMappingsFromRW ¶

    GameControllerAddMappingsFromRW :: proc "c" (rw: ^RWops, freerw: bool) -> i32 ---

    GameControllerClose ¶

    GameControllerClose :: proc "c" (gamecontroller: ^GameController) ---

    GameControllerEventState ¶

    GameControllerEventState :: proc "c" (state: i32) -> i32 ---

    GameControllerFromInstanceID ¶

    GameControllerFromInstanceID :: proc "c" (joyid: JoystickID) -> ^GameController ---

    GameControllerFromPlayerIndex ¶

    GameControllerFromPlayerIndex :: proc "c" (player_index: i32) -> ^GameController ---

    GameControllerGetAttached ¶

    GameControllerGetAttached :: proc "c" (gamecontroller: ^GameController) -> bool ---

    GameControllerGetAxis ¶

    GameControllerGetAxis :: proc "c" (gamecontroller: ^GameController, axis: GameControllerAxis) -> i16 ---

    GameControllerGetAxisFromString ¶

    GameControllerGetAxisFromString :: proc "c" (str: cstring) -> GameControllerAxis ---

    GameControllerGetBindForAxis ¶

    GameControllerGetBindForAxis :: proc "c" (gamecontroller: ^GameController, axis: GameControllerAxis) -> GameControllerButtonBind ---

    GameControllerGetBindForButton ¶

    GameControllerGetBindForButton :: proc "c" (gamecontroller: ^GameController, button: GameControllerButton) -> GameControllerButtonBind ---

    GameControllerGetButton ¶

    GameControllerGetButton :: proc "c" (gamecontroller: ^GameController, button: GameControllerButton) -> u8 ---

    GameControllerGetButtonFromString ¶

    GameControllerGetButtonFromString :: proc "c" (str: cstring) -> GameControllerButton ---

    GameControllerGetJoystick ¶

    GameControllerGetJoystick :: proc "c" (gamecontroller: ^GameController) -> ^Joystick ---

    GameControllerGetNumTouchpadFingers ¶

    GameControllerGetNumTouchpadFingers :: proc "c" (gamecontroller: ^GameController, touchpad: i32) -> i32 ---

    GameControllerGetNumTouchpads ¶

    GameControllerGetNumTouchpads :: proc "c" (gamecontroller: ^GameController) -> i32 ---

    GameControllerGetPlayerIndex ¶

    GameControllerGetPlayerIndex :: proc "c" (gamecontroller: ^GameController) -> i32 ---

    GameControllerGetProduct ¶

    GameControllerGetProduct :: proc "c" (gamecontroller: ^GameController) -> u16 ---

    GameControllerGetProductVersion ¶

    GameControllerGetProductVersion :: proc "c" (gamecontroller: ^GameController) -> u16 ---

    GameControllerGetSensorData ¶

    GameControllerGetSensorData :: proc "c" (gamecontroller: ^GameController, type: SensorType, data: [^]f32, num_values: i32) -> i32 ---

    GameControllerGetSensorDataRate ¶

    GameControllerGetSensorDataRate :: proc "c" (gamecontroller: ^GameController, type: SensorType) -> f32 ---

    GameControllerGetSerial ¶

    GameControllerGetSerial :: proc "c" (gamecontroller: ^GameController) -> cstring ---

    GameControllerGetStringForAxis ¶

    GameControllerGetStringForAxis :: proc "c" (axis: GameControllerAxis) -> cstring ---

    GameControllerGetStringForButton ¶

    GameControllerGetStringForButton :: proc "c" (button: GameControllerButton) -> cstring ---

    GameControllerGetTouchpadFinger ¶

    GameControllerGetTouchpadFinger :: proc "c" (
    	gamecontroller: ^GameController, 
    	touchpad:       i32, 
    	finger:         i32, 
    	state:          ^u8, 
    	x, y:           ^f32, 
    	pressure:       ^f32, 
    ) -> i32 ---

    GameControllerGetType ¶

    GameControllerGetType :: proc "c" (gamecontroller: ^GameController) -> GameControllerType ---

    GameControllerGetVendor ¶

    GameControllerGetVendor :: proc "c" (gamecontroller: ^GameController) -> u16 ---

    GameControllerHasAxis ¶

    GameControllerHasAxis :: proc "c" (gamecontroller: ^GameController, axis: GameControllerAxis) -> bool ---

    GameControllerHasButton ¶

    GameControllerHasButton :: proc "c" (gamecontroller: ^GameController, button: GameControllerButton) -> bool ---

    GameControllerHasLED ¶

    GameControllerHasLED :: proc "c" (gamecontroller: ^GameController) -> bool ---

    GameControllerHasSensor ¶

    GameControllerHasSensor :: proc "c" (gamecontroller: ^GameController, type: SensorType) -> bool ---

    GameControllerIsSensorEnabled ¶

    GameControllerIsSensorEnabled :: proc "c" (gamecontroller: ^GameController, type: SensorType) -> bool ---

    GameControllerMapping ¶

    GameControllerMapping :: proc "c" (gamecontroller: ^GameController) -> cstring ---

    GameControllerMappingForDeviceIndex ¶

    GameControllerMappingForDeviceIndex :: proc "c" (joystick_index: i32) -> cstring ---

    GameControllerMappingForGUID ¶

    GameControllerMappingForGUID :: proc "c" (guid: JoystickGUID) -> cstring ---

    GameControllerMappingForIndex ¶

    GameControllerMappingForIndex :: proc "c" (mapping_index: i32) -> cstring ---

    GameControllerName ¶

    GameControllerName :: proc "c" (gamecontroller: ^GameController) -> cstring ---

    GameControllerNameForIndex ¶

    GameControllerNameForIndex :: proc "c" (joystick_index: i32) -> cstring ---

    GameControllerNumMappings ¶

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

    GameControllerOpen ¶

    GameControllerOpen :: proc "c" (joystick_index: i32) -> ^GameController ---

    GameControllerRumble ¶

    GameControllerRumble :: proc "c" (gamecontroller: ^GameController, low_frequency_rumble, high_frequency_rumble: u16, duration_ms: u32) -> i32 ---

    GameControllerRumbleTriggers ¶

    GameControllerRumbleTriggers :: proc "c" (gamecontroller: ^GameController, left_rumble, right_rumble: u16, duration_ms: u32) -> i32 ---

    GameControllerSendEffect ¶

    GameControllerSendEffect :: proc "c" (gamecontroller: ^GameController, data: rawptr, size: i32) -> i32 ---

    GameControllerSetLED ¶

    GameControllerSetLED :: proc "c" (gamecontroller: ^GameController, red, green, blue: u8) -> i32 ---

    GameControllerSetPlayerIndex ¶

    GameControllerSetPlayerIndex :: proc "c" (gamecontroller: ^GameController, player_index: i32) ---

    GameControllerSetSensorEnabled ¶

    GameControllerSetSensorEnabled :: proc "c" (gamecontroller: ^GameController, type: SensorType, enabled: bool) -> i32 ---

    GameControllerTypeForIndex ¶

    GameControllerTypeForIndex :: proc "c" (joystick_index: i32) -> GameControllerType ---

    GameControllerUpdate ¶

    GameControllerUpdate :: proc "c" () ---

    GetAndroidSDKVersion ¶

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

    GetAudioDeviceName ¶

    GetAudioDeviceName :: proc "c" (index: i32, iscapture: bool) -> cstring ---

    GetAudioDeviceSpec ¶

    GetAudioDeviceSpec :: proc "c" (index: i32, iscapture: bool, spec: ^AudioSpec) -> i32 ---

    GetAudioDeviceStatus ¶

    GetAudioDeviceStatus :: proc "c" (dev: AudioDeviceID) -> AudioStatus ---
     

    Audio State

    GetAudioDriver ¶

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

    GetAudioStatus ¶

    GetAudioStatus :: proc "c" () -> AudioStatus ---

    GetBasePath ¶

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

    GetCPUCacheLineSize ¶

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

    GetCPUCount ¶

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

    GetClipRect ¶

    GetClipRect :: proc "c" (surface: ^Surface, rect: ^Rect) ---

    GetClipboardText ¶

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

    GetClosestDisplayMode ¶

    GetClosestDisplayMode :: proc "c" (displayIndex: i32, mode, closest: ^DisplayMode) -> ^DisplayMode ---

    GetColorKey ¶

    GetColorKey :: proc "c" (surface: ^Surface, key: ^u32) -> i32 ---

    GetCurrentAudioDriver ¶

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

    GetCurrentDisplayMode ¶

    GetCurrentDisplayMode :: proc "c" (displayIndex: i32, mode: ^DisplayMode) -> i32 ---

    GetCurrentVideoDriver ¶

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

    GetCursor ¶

    GetCursor :: proc "c" () -> ^Cursor ---

    GetDefaultCursor ¶

    GetDefaultCursor :: proc "c" () -> ^Cursor ---

    GetDesktopDisplayMode ¶

    GetDesktopDisplayMode :: proc "c" (displayIndex: i32, mode: ^DisplayMode) -> i32 ---

    GetDisplayBounds ¶

    GetDisplayBounds :: proc "c" (displayIndex: i32, rect: ^Rect) -> i32 ---

    GetDisplayDPI ¶

    GetDisplayDPI :: proc "c" (displayIndex: i32, ddpi, hdpi, vdpi: ^f32) -> i32 ---

    GetDisplayMode ¶

    GetDisplayMode :: proc "c" (displayIndex: i32, modeIndex: i32, mode: ^DisplayMode) -> i32 ---

    GetDisplayName ¶

    GetDisplayName :: proc "c" (displayIndex: i32) -> cstring ---

    GetDisplayOrientation ¶

    GetDisplayOrientation :: proc "c" (displayIndex: i32) -> DisplayOrientation ---

    GetDisplayUsableBounds ¶

    GetDisplayUsableBounds :: proc "c" (displayIndex: i32, rect: ^Rect) -> i32 ---

    GetError ¶

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

    GetErrorMsg ¶

    GetErrorMsg :: proc "c" (errstr: [^]u8, maxlen: i32) -> cstring ---

    GetErrorMsgString ¶

    GetErrorMsgString :: proc "c" (buf: []u8) -> string {…}

    GetErrorString ¶

    GetErrorString :: proc "c" () -> string {…}

    GetEventFilter ¶

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

    GetEventState ¶

    GetEventState :: proc "c" (type: EventType) -> b8 {…}

    GetGlobalMouseState ¶

    GetGlobalMouseState :: proc "c" (x, y: ^i32) -> u32 ---

    GetGrabbedWindow ¶

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

    GetHint ¶

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

    GetHintBoolean ¶

    GetHintBoolean :: proc "c" (name: cstring, default_value: bool) -> bool ---

    GetKeyFromName ¶

    GetKeyFromName :: proc "c" (name: cstring) -> Keycode ---

    GetKeyFromScancode ¶

    GetKeyFromScancode :: proc "c" (scancode: Scancode) -> Keycode ---

    GetKeyName ¶

    GetKeyName :: proc "c" (key: Keycode) -> cstring ---

    GetKeyboardFocus ¶

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

    GetKeyboardState ¶

    GetKeyboardState :: proc "c" (numkeys: ^i32) -> [^]u8 ---

    GetKeyboardStateAsSlice ¶

    GetKeyboardStateAsSlice :: proc "c" () -> []u8 {…}

    GetMemoryFunctions ¶

    GetMemoryFunctions :: proc "c" (malloc_func: ^malloc_func, calloc_func: ^calloc_func, realloc_func: ^realloc_func, free_func: ^free_func) ---

    GetModState ¶

    GetModState :: proc "c" () -> Keymod {…}

    GetMouseFocus ¶

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

    GetMouseState ¶

    GetMouseState :: proc "c" (x, y: ^i32) -> u32 ---

    GetNumAllocations ¶

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

    GetNumAudioDevices ¶

    GetNumAudioDevices :: proc "c" (iscapture: bool) -> i32 ---

    GetNumAudioDrivers ¶

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

    GetNumDisplayModes ¶

    GetNumDisplayModes :: proc "c" (displayIndex: i32) -> i32 ---

    GetNumRenderDrivers ¶

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

    GetNumTouchDevices ¶

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

    GetNumTouchFingers ¶

    GetNumTouchFingers :: proc "c" (touchID: TouchID) -> i32 ---

    GetNumVideoDisplays ¶

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

    GetNumVideoDrivers ¶

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

    GetPerformanceCounter ¶

    GetPerformanceCounter :: proc "c" () -> u64 ---

    GetPerformanceFrequency ¶

    GetPerformanceFrequency :: proc "c" () -> u64 ---

    GetPixelFormatName ¶

    GetPixelFormatName :: proc "c" (format: u32) -> cstring ---

    GetPlatform ¶

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

    GetPowerInfo ¶

    GetPowerInfo :: proc "c" (secs: ^i32, pct: ^i32) -> PowerState ---

    GetPrefPath ¶

    GetPrefPath :: proc "c" (org, app: cstring) -> cstring ---

    GetPreferredLocales ¶

    GetPreferredLocales :: proc "c" () -> [^]Locale ---

    GetQueuedAudioSize ¶

    GetQueuedAudioSize :: proc "c" (dev: AudioDeviceID) -> u32 ---

    GetRGB ¶

    GetRGB :: proc "c" (pixel: u32, format: ^PixelFormat, r, g, b: ^u8) ---

    GetRGBA ¶

    GetRGBA :: proc "c" (
    	pixel:   u32, 
    	format:  ^PixelFormat, 
    	r, g, b, 
    	a:       ^u8, 
    ) ---

    GetRelativeMouseMode ¶

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

    GetRelativeMouseState ¶

    GetRelativeMouseState :: proc "c" (x, y: ^i32) -> u32 ---

    GetRenderDrawBlendMode ¶

    GetRenderDrawBlendMode :: proc "c" (renderer: ^Renderer, blendMode: ^BlendMode) -> i32 ---

    GetRenderDrawColor ¶

    GetRenderDrawColor :: proc "c" (renderer: ^Renderer, r, g, b, a: ^u8) -> i32 ---

    GetRenderDriverInfo ¶

    GetRenderDriverInfo :: proc "c" (index: i32, info: ^RendererInfo) -> i32 ---

    GetRenderTarget ¶

    GetRenderTarget :: proc "c" (renderer: ^Renderer) -> ^Texture ---

    GetRenderer ¶

    GetRenderer :: proc "c" (window: ^Window) -> ^Renderer ---

    GetRendererInfo ¶

    GetRendererInfo :: proc "c" (renderer: ^Renderer, info: ^RendererInfo) -> i32 ---

    GetRendererOutputSize ¶

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

    GetRevision ¶

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

    GetScancodeFromKey ¶

    GetScancodeFromKey :: proc "c" (key: Keycode) -> Scancode ---

    GetScancodeFromName ¶

    GetScancodeFromName :: proc "c" (name: cstring) -> Scancode ---

    GetScancodeName ¶

    GetScancodeName :: proc "c" (scancode: Scancode) -> cstring ---

    GetShapedWindowMode ¶

    GetShapedWindowMode :: proc "c" (window: ^Window, shape_mode: ^WindowShapeMode) -> i32 ---

    GetSurfaceAlphaMod ¶

    GetSurfaceAlphaMod :: proc "c" (surface: ^Surface, alpha: ^u8) -> i32 ---

    GetSurfaceBlendMode ¶

    GetSurfaceBlendMode :: proc "c" (surface: ^Surface, blendMode: ^BlendMode) -> i32 ---

    GetSurfaceColorMod ¶

    GetSurfaceColorMod :: proc "c" (surface: ^Surface, r, g, b: ^u8) -> i32 ---

    GetSystemRAM ¶

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

    GetTextureAlphaMod ¶

    GetTextureAlphaMod :: proc "c" (texture: ^Texture, alpha: ^u8) -> i32 ---

    GetTextureBlendMode ¶

    GetTextureBlendMode :: proc "c" (texture: ^Texture, blendMode: ^BlendMode) -> i32 ---

    GetTextureColorMod ¶

    GetTextureColorMod :: proc "c" (texture: ^Texture, r, g, b: ^u8) -> i32 ---

    GetTextureScaleMode ¶

    GetTextureScaleMode :: proc "c" (texture: ^Texture, scaleMode: ^ScaleMode) -> i32 ---

    GetThreadID ¶

    GetThreadID :: proc "c" (thread: ^Thread) -> threadID ---

    GetThreadName ¶

    GetThreadName :: proc "c" (thread: ^Thread) -> cstring ---

    GetTicks ¶

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

    GetTouchDevice ¶

    GetTouchDevice :: proc "c" (index: i32) -> TouchID ---

    GetTouchDeviceType ¶

    GetTouchDeviceType :: proc "c" (touchID: TouchID) -> TouchDeviceType ---

    GetTouchFinger ¶

    GetTouchFinger :: proc "c" (touchID: TouchID, index: i32) -> ^Finger ---

    GetVersion ¶

    GetVersion :: proc "c" (ver: ^version) ---

    GetVideoDriver ¶

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

    GetWindowBordersSize ¶

    GetWindowBordersSize :: proc "c" (window: ^Window, top, left, bottom, right: ^i32) -> i32 ---

    GetWindowBrightness ¶

    GetWindowBrightness :: proc "c" (window: ^Window) -> f32 ---

    GetWindowData ¶

    GetWindowData :: proc "c" (window: ^Window, name: cstring) -> rawptr ---

    GetWindowDisplayIndex ¶

    GetWindowDisplayIndex :: proc "c" (window: ^Window) -> i32 ---

    GetWindowDisplayMode ¶

    GetWindowDisplayMode :: proc "c" (window: ^Window, mode: ^DisplayMode) -> i32 ---

    GetWindowFlags ¶

    GetWindowFlags :: proc "c" (window: ^Window) -> u32 ---

    GetWindowFromID ¶

    GetWindowFromID :: proc "c" (id: u32) -> ^Window ---

    GetWindowGammaRamp ¶

    GetWindowGammaRamp :: proc "c" (window: ^Window, red, green, blue: ^u16) -> i32 ---

    GetWindowGrab ¶

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

    GetWindowID ¶

    GetWindowID :: proc "c" (window: ^Window) -> u32 ---

    GetWindowKeyboardGrab ¶

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

    GetWindowMaximumSize ¶

    GetWindowMaximumSize :: proc "c" (window: ^Window, w, h: ^i32) ---

    GetWindowMinimumSize ¶

    GetWindowMinimumSize :: proc "c" (window: ^Window, w, h: ^i32) ---

    GetWindowMouseGrab ¶

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

    GetWindowOpacity ¶

    GetWindowOpacity :: proc "c" (window: ^Window, out_opacity: ^f32) -> i32 ---

    GetWindowPixelFormat ¶

    GetWindowPixelFormat :: proc "c" (window: ^Window) -> u32 ---

    GetWindowPosition ¶

    GetWindowPosition :: proc "c" (window: ^Window, x, y: ^i32) ---

    GetWindowSize ¶

    GetWindowSize :: proc "c" (window: ^Window, w, h: ^i32) ---

    GetWindowSurface ¶

    GetWindowSurface :: proc "c" (window: ^Window) -> ^Surface ---

    GetWindowTitle ¶

    GetWindowTitle :: proc "c" (window: ^Window) -> cstring ---

    GetWindowWMInfo ¶

    GetWindowWMInfo :: proc "c" (window: ^Window, info: ^SysWMinfo) -> bool ---

    GetYUVConversionMode ¶

    GetYUVConversionMode :: proc "c" () -> YUV_CONVERSION_MODE ---

    GetYUVConversionModeForResolution ¶

    GetYUVConversionModeForResolution :: proc "c" (width, height: i32) -> YUV_CONVERSION_MODE ---

    HapticClose ¶

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

    HapticDestroyEffect ¶

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

    HapticEffectSupported ¶

    HapticEffectSupported :: proc "c" (haptic: ^Haptic, effect: ^HapticEffect) -> i32 ---

    HapticGetEffectStatus ¶

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

    HapticIndex ¶

    HapticIndex :: proc "c" (haptic: ^Haptic) -> i32 ---

    HapticName ¶

    HapticName :: proc "c" (device_index: i32) -> cstring ---

    HapticNewEffect ¶

    HapticNewEffect :: proc "c" (haptic: ^Haptic, effect: ^HapticEffect) -> i32 ---

    HapticNumAxes ¶

    HapticNumAxes :: proc "c" (haptic: ^Haptic) -> i32 ---

    HapticNumEffects ¶

    HapticNumEffects :: proc "c" (haptic: ^Haptic) -> i32 ---

    HapticNumEffectsPlaying ¶

    HapticNumEffectsPlaying :: proc "c" (haptic: ^Haptic) -> i32 ---

    HapticOpen ¶

    HapticOpen :: proc "c" (device_index: i32) -> ^Haptic ---

    HapticOpenFromJoystick ¶

    HapticOpenFromJoystick :: proc "c" (joystick: ^Joystick) -> ^Haptic ---

    HapticOpenFromMouse ¶

    HapticOpenFromMouse :: proc "c" () -> ^Haptic ---

    HapticOpened ¶

    HapticOpened :: proc "c" (device_index: i32) -> i32 ---

    HapticPause ¶

    HapticPause :: proc "c" (haptic: ^Haptic) -> i32 ---

    HapticQuery ¶

    HapticQuery :: proc "c" (haptic: ^Haptic) -> u32 ---

    HapticRumbleInit ¶

    HapticRumbleInit :: proc "c" (haptic: ^Haptic) -> i32 ---

    HapticRumblePlay ¶

    HapticRumblePlay :: proc "c" (haptic: ^Haptic, strength: f32, length: u32) -> i32 ---

    HapticRumbleStop ¶

    HapticRumbleStop :: proc "c" (haptic: ^Haptic) -> i32 ---

    HapticRumbleSupported ¶

    HapticRumbleSupported :: proc "c" (haptic: ^Haptic) -> i32 ---

    HapticRunEffect ¶

    HapticRunEffect :: proc "c" (haptic: ^Haptic, effect: i32, iterations: u32) -> i32 ---

    HapticSetAutocenter ¶

    HapticSetAutocenter :: proc "c" (haptic: ^Haptic, autocenter: i32) -> i32 ---

    HapticSetGain ¶

    HapticSetGain :: proc "c" (haptic: ^Haptic, gain: i32) -> i32 ---

    HapticStopAll ¶

    HapticStopAll :: proc "c" (haptic: ^Haptic) -> i32 ---

    HapticStopEffect ¶

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

    HapticUnpause ¶

    HapticUnpause :: proc "c" (haptic: ^Haptic) -> i32 ---

    HapticUpdateEffect ¶

    HapticUpdateEffect :: proc "c" (haptic: ^Haptic, effect: i32, data: ^HapticEffect) -> i32 ---

    Has3DNow ¶

    Has3DNow :: proc "c" () -> 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 ---

    HasClipboardText ¶

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

    HasColorKey ¶

    HasColorKey :: proc "c" (surface: ^Surface) -> bool ---

    HasEvent ¶

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

    HasEvents ¶

    HasEvents :: proc "c" (minType, maxType: EventType) -> bool ---

    HasExactlyOneBitSet32 ¶

    HasExactlyOneBitSet32 :: proc "c" (x: u32) -> bool {…}

    HasIntersection ¶

    HasIntersection :: proc "c" (A, B: ^Rect) -> bool ---

    HasMMX ¶

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

    HasNEON ¶

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

    HasRDTSC ¶

    HasRDTSC :: proc "c" () -> 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 ---

    HasSurfaceRLE ¶

    HasSurfaceRLE :: proc "c" (surface: ^Surface) -> bool ---

    HideWindow ¶

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

    Init ¶

    Init :: proc "c" (flags: bit_set[InitFlag; u32]) -> i32 ---

    InitSubSystem ¶

    InitSubSystem :: proc "c" (flags: bit_set[InitFlag; u32]) -> i32 ---

    IntersectRect ¶

    IntersectRect :: proc "c" (A, B: ^Rect, result: ^Rect) -> bool ---

    IntersectRectAndLine ¶

    IntersectRectAndLine :: proc "c" (rect: ^Rect, X1, Y1, X2, Y2: ^i32) -> bool ---

    InvalidParamError ¶

    InvalidParamError :: proc "c" (param: cstring) -> i32 {…}

    IsAndroidTV ¶

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

    IsChromebook ¶

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

    IsDeXMode ¶

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

    IsGameController ¶

    IsGameController :: proc "c" (joystick_index: i32) -> bool ---

    IsScreenKeyboardShown ¶

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

    IsScreenSaverEnabled ¶

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

    IsShapedWindow ¶

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

    IsTablet ¶

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

    IsTextInputActive ¶

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

    JoystickAttachVirtual ¶

    JoystickAttachVirtual :: proc "c" (type: JoystickType, naxes, nbuttons, nhats: i32) -> i32 ---

    JoystickClose ¶

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

    JoystickCurrentPowerLevel ¶

    JoystickCurrentPowerLevel :: proc "c" (joystick: ^Joystick) -> JoystickPowerLevel ---

    JoystickDetachVirtual ¶

    JoystickDetachVirtual :: proc "c" (device_index: i32) -> i32 ---

    JoystickEventState ¶

    JoystickEventState :: proc "c" (state: i32) -> i32 ---

    JoystickFromInstanceID ¶

    JoystickFromInstanceID :: proc "c" (instance_id: JoystickID) -> ^Joystick ---

    JoystickFromPlayerIndex ¶

    JoystickFromPlayerIndex :: proc "c" (player_index: i32) -> ^Joystick ---

    JoystickGetAttached ¶

    JoystickGetAttached :: proc "c" (joystick: ^Joystick) -> bool ---

    JoystickGetAxis ¶

    JoystickGetAxis :: proc "c" (joystick: ^Joystick, axis: i32) -> i64 ---

    JoystickGetAxisInitialState ¶

    JoystickGetAxisInitialState :: proc "c" (joystick: ^Joystick, axis: i32, state: ^i16) -> bool ---

    JoystickGetBall ¶

    JoystickGetBall :: proc "c" (joystick: ^Joystick, ball: i32, dx, dy: ^i32) -> i32 ---

    JoystickGetButton ¶

    JoystickGetButton :: proc "c" (joystick: ^Joystick, button: i32) -> u8 ---

    JoystickGetDeviceGUID ¶

    JoystickGetDeviceGUID :: proc "c" (device_index: i32) -> JoystickGUID ---

    JoystickGetDeviceInstanceID ¶

    JoystickGetDeviceInstanceID :: proc "c" (device_index: i32) -> JoystickID ---

    JoystickGetDevicePlayerIndex ¶

    JoystickGetDevicePlayerIndex :: proc "c" (device_index: i32) -> i32 ---

    JoystickGetDeviceProduct ¶

    JoystickGetDeviceProduct :: proc "c" (device_index: i32) -> u16 ---

    JoystickGetDeviceProductVersion ¶

    JoystickGetDeviceProductVersion :: proc "c" (device_index: i32) -> u16 ---

    JoystickGetDeviceType ¶

    JoystickGetDeviceType :: proc "c" (device_index: i32) -> JoystickType ---

    JoystickGetDeviceVendor ¶

    JoystickGetDeviceVendor :: proc "c" (device_index: i32) -> u16 ---

    JoystickGetGUID ¶

    JoystickGetGUID :: proc "c" (joystick: ^Joystick) -> JoystickGUID ---

    JoystickGetGUIDFromString ¶

    JoystickGetGUIDFromString :: proc "c" (pchGUID: cstring) -> JoystickGUID ---

    JoystickGetGUIDString ¶

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

    JoystickGetHat ¶

    JoystickGetHat :: proc "c" (joystick: ^Joystick, hat: i32) -> u8 ---

    JoystickGetPlayerIndex ¶

    JoystickGetPlayerIndex :: proc "c" (joystick: ^Joystick) -> i32 ---

    JoystickGetProduct ¶

    JoystickGetProduct :: proc "c" (joystick: ^Joystick) -> u16 ---

    JoystickGetProductVersion ¶

    JoystickGetProductVersion :: proc "c" (joystick: ^Joystick) -> u16 ---

    JoystickGetSerial ¶

    JoystickGetSerial :: proc "c" (joystick: ^Joystick) -> cstring ---

    JoystickGetType ¶

    JoystickGetType :: proc "c" (joystick: ^Joystick) -> JoystickType ---

    JoystickGetVendor ¶

    JoystickGetVendor :: proc "c" (joystick: ^Joystick) -> u16 ---

    JoystickHasLED ¶

    JoystickHasLED :: proc "c" (joystick: ^Joystick) -> bool ---

    JoystickInstanceID ¶

    JoystickInstanceID :: proc "c" (joystick: ^Joystick) -> JoystickID ---

    JoystickIsHaptic ¶

    JoystickIsHaptic :: proc "c" (joystick: ^Joystick) -> i32 ---

    JoystickIsVirtual ¶

    JoystickIsVirtual :: proc "c" (device_index: i32) -> bool ---

    JoystickName ¶

    JoystickName :: proc "c" (joystick: ^Joystick) -> cstring ---

    JoystickNameForIndex ¶

    JoystickNameForIndex :: proc "c" (device_index: i32) -> cstring ---

    JoystickNumAxes ¶

    JoystickNumAxes :: proc "c" (joystick: ^Joystick) -> i32 ---

    JoystickNumBalls ¶

    JoystickNumBalls :: proc "c" (joystick: ^Joystick) -> i32 ---

    JoystickNumButtons ¶

    JoystickNumButtons :: proc "c" (joystick: ^Joystick) -> i32 ---

    JoystickNumHats ¶

    JoystickNumHats :: proc "c" (joystick: ^Joystick) -> i32 ---

    JoystickOpen ¶

    JoystickOpen :: proc "c" (device_index: i32) -> ^Joystick ---

    JoystickRumble ¶

    JoystickRumble :: proc "c" (joystick: ^Joystick, low_frequency_rumble, high_frequency_rumble: u16, duration_ms: u32) -> i32 ---

    JoystickRumbleTriggers ¶

    JoystickRumbleTriggers :: proc "c" (joystick: ^Joystick, left_rumble, right_rumble: u16, duration_ms: u32) -> i32 ---

    JoystickSendEffect ¶

    JoystickSendEffect :: proc "c" (joystick: ^Joystick, data: rawptr, size: i32) -> i32 ---

    JoystickSetLED ¶

    JoystickSetLED :: proc "c" (joystick: ^Joystick, red, green, blue: u8) -> i32 ---

    JoystickSetPlayerIndex ¶

    JoystickSetPlayerIndex :: proc "c" (joystick: ^Joystick, player_index: i32) ---

    JoystickSetVirtualAxis ¶

    JoystickSetVirtualAxis :: proc "c" (joystick: ^Joystick, axis: i32, value: i16) -> i32 ---

    JoystickSetVirtualButton ¶

    JoystickSetVirtualButton :: proc "c" (joystick: ^Joystick, button: i32, value: u8) -> i32 ---

    JoystickSetVirtualHat ¶

    JoystickSetVirtualHat :: proc "c" (joystick: ^Joystick, hat: i32, value: u8) -> i32 ---

    JoystickUpdate ¶

    JoystickUpdate :: proc "c" () ---

    LinuxSetThreadPriority ¶

    LinuxSetThreadPriority :: proc "c" (threadID: i64, priority: i32) -> i32 ---

    LoadBMP ¶

    LoadBMP :: proc "c" (file: cstring) -> ^Surface {…}

    LoadBMP_RW ¶

    LoadBMP_RW :: proc "c" (src: ^RWops, freesrc: bool) -> ^Surface ---

    LoadDollarTemplates ¶

    LoadDollarTemplates :: proc "c" (touchId: ^TouchID, src: ^RWops) -> i32 ---

    LoadFile ¶

    LoadFile :: proc "c" (file: rawptr, datasize: uint) -> rawptr ---

    LoadFile_RW ¶

    LoadFile_RW :: proc "c" (src: ^RWops, datasize: uint, freesrc: bool) -> rawptr ---

    LoadFunction ¶

    LoadFunction :: proc "c" (handle: rawptr, name: cstring) -> rawptr ---

    LoadObject ¶

    LoadObject :: proc "c" (sofile: cstring) -> rawptr ---

    LoadWAV ¶

    LoadWAV :: proc "c" (file: cstring, spec: ^AudioSpec, audio_buf: ^[^]u8, audio_len: ^u32) -> ^AudioSpec {…}
     

    * * Loads a WAV from a file. * Compatibility convenience function.

    LoadWAV_RW ¶

    LoadWAV_RW :: proc "c" (src: ^RWops, freesrc: bool, spec: ^AudioSpec, audio_buf: ^[^]u8, audio_len: ^u32) -> ^AudioSpec ---

    LockAudio ¶

    LockAudio :: proc "c" () ---

    LockAudioDevice ¶

    LockAudioDevice :: proc "c" (dev: AudioDeviceID) ---

    LockJoysticks ¶

    LockJoysticks :: proc "c" () ---

    LockMutex ¶

    LockMutex :: proc "c" (m: ^mutex) -> i32 ---

    LockSensors ¶

    LockSensors :: proc "c" () ---

    LockSurface ¶

    LockSurface :: proc "c" (surface: ^Surface) -> i32 ---

    LockTexture ¶

    LockTexture :: proc "c" (texture: ^Texture, rect: ^Rect, pixels: ^rawptr, pitch: ^i32) -> i32 ---

    LockTextureToSurface ¶

    LockTextureToSurface :: proc "c" (texture: ^Texture, rect: ^Rect, surface: ^^Surface) -> i32 ---

    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) ---

    LogGetOutputFunction ¶

    LogGetOutputFunction :: proc "c" (callback: ^LogOutputFunction, userdata: ^rawptr) ---
     

    LogMessageV :: proc(category: c.int, priority: LogPriority, fmt: cstring, ap: va_list) ---

    LogGetPriority ¶

    LogGetPriority :: proc "c" (category: i32) -> LogPriority ---

    LogInfo ¶

    LogInfo :: proc "c" (category: i32, fmt: cstring, args: ..any) ---

    LogMessage ¶

    LogMessage :: proc "c" (category: i32, priority: LogPriority, fmt: cstring, args: ..any) ---

    LogResetPriorities ¶

    LogResetPriorities :: proc "c" () ---

    LogSetAllPriority ¶

    LogSetAllPriority :: proc "c" (priority: LogPriority) ---

    LogSetOutputFunction ¶

    LogSetOutputFunction :: proc "c" (callback: LogOutputFunction, userdata: rawptr) ---

    LogSetPriority ¶

    LogSetPriority :: proc "c" (category: i32, priority: LogPriority) ---

    LogVerbose ¶

    LogVerbose :: proc "c" (category: i32, fmt: cstring, args: ..any) ---

    LogWarn ¶

    LogWarn :: proc "c" (category: i32, fmt: cstring, args: ..any) ---

    LowerBlit ¶

    LowerBlit :: proc "c" (src: ^Surface, srcrect: ^Rect, dst: ^Surface, dstrect: ^Rect) -> i32 ---

    LowerBlitScaled ¶

    LowerBlitScaled :: proc "c" (src: ^Surface, srcrect: ^Rect, dst: ^Surface, dstrect: ^Rect) -> i32 ---

    MUSTLOCK ¶

    MUSTLOCK :: proc "c" (surface: ^Surface) -> bool {…}

    MapRGB ¶

    MapRGB :: proc "c" (format: ^PixelFormat, r, g, b: u8) -> u32 ---

    MapRGBA ¶

    MapRGBA :: proc "c" (format: ^PixelFormat, r, g, b, a: u8) -> u32 ---

    MasksToPixelFormatEnum ¶

    MasksToPixelFormatEnum :: proc "c" (bpp: i32, Rmask, Gmask, Bmask, Amask: u32) -> u32 ---

    MaximizeWindow ¶

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

    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_GetDrawableSize ¶

    Metal_GetDrawableSize :: proc "c" (window: ^Window, w, h: ^i32) ---

    Metal_GetLayer ¶

    Metal_GetLayer :: proc "c" (view: MetalView) -> rawptr ---

    MinimizeWindow ¶

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

    MixAudio ¶

    MixAudio :: proc "c" (dst: [^]u8, src: [^]u8, len: u32, volume: i32) ---

    MixAudioFormat ¶

    MixAudioFormat :: proc "c" (dst: [^]u8, src: [^]u8, format: AudioFormat, len: u32, volume: i32) ---

    MostSignificantBitIndex32 ¶

    MostSignificantBitIndex32 :: proc "c" (x: u32) -> i32 {…}
     

    Bits

    MouseIsHaptic ¶

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

    NewAudioStream ¶

    NewAudioStream :: proc "c" (
    	src_format:   AudioFormat, 
    	src_channels: u8, 
    	src_rate:     i32, 
    	dst_format:   AudioFormat, 
    	dst_channels: u8, 
    	dst_rate:     i32, 
    ) -> ^AudioStream ---

    NumHaptics ¶

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

    NumJoysticks ¶

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

    NumSensors ¶

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

    OnApplicationDidBecomeActive ¶

    OnApplicationDidBecomeActive :: proc "c" () ---

    OnApplicationDidChangeStatusBarOrientation ¶

    OnApplicationDidChangeStatusBarOrientation :: proc "c" () ---
     

    iPhoneOS

    OnApplicationDidEnterBackground ¶

    OnApplicationDidEnterBackground :: proc "c" () ---

    OnApplicationDidReceiveMemoryWarning ¶

    OnApplicationDidReceiveMemoryWarning :: proc "c" () ---

    OnApplicationWillEnterForeground ¶

    OnApplicationWillEnterForeground :: proc "c" () ---

    OnApplicationWillResignActive ¶

    OnApplicationWillResignActive :: proc "c" () ---

    OnApplicationWillTerminate ¶

    OnApplicationWillTerminate :: proc "c" () ---
     

    Functions used by iOS application delegates to notify SDL about state changes

    OpenAudio ¶

    OpenAudio :: proc "c" (desired, obtained: ^AudioSpec) -> i32 ---

    OpenAudioDevice ¶

    OpenAudioDevice :: proc "c" (device: cstring, iscapture: bool, desired: ^AudioSpec, obtained: ^AudioSpec, allowed_changes: bool) -> AudioDeviceID ---

    OpenURL ¶

    OpenURL :: proc "c" (url: cstring) -> i32 ---

    OutOfMemory ¶

    OutOfMemory :: proc "c" () -> i32 {…}
     

    * * \name Internal error functions * * \internal * Private error reporting function - used internally.

    PauseAudio ¶

    PauseAudio :: proc "c" (pause_on: bool) ---

    PauseAudioDevice ¶

    PauseAudioDevice :: proc "c" (dev: AudioDeviceID, pause_on: bool) ---
     

    Pause audio functions

    PeepEvents ¶

    PeepEvents :: proc "c" (events: [^]Event, numevents: i32, action: eventaction, minType, maxType: EventType) -> i32 ---

    PixelFormatEnumToMasks ¶

    PixelFormatEnumToMasks :: proc "c" (
    	format:              u32, 
    	bpp:                 ^i32, 
    	Rmask, Gmask, Bmask, 
    	Amask:               ^u32, 
    ) -> bool ---

    PointInRect ¶

    PointInRect :: proc(p: ^Point, r: ^Rect) -> bool {…}

    PollEvent ¶

    PollEvent :: proc "c" (event: ^Event) -> bool ---
     

    original return value is c.int

    PumpEvents ¶

    PumpEvents :: proc "c" () ---

    PushEvent ¶

    PushEvent :: proc "c" (event: ^Event) -> bool ---
     

    original return value is c.int

    QueryTexture ¶

    QueryTexture :: proc "c" (texture: ^Texture, format: ^u32, access, w, h: ^i32) -> i32 ---

    QueueAudio ¶

    QueueAudio :: proc "c" (dev: AudioDeviceID, data: rawptr, len: u32) -> i32 ---

    Quit ¶

    Quit :: proc "c" () ---

    QuitRequested ¶

    QuitRequested :: proc "c" () -> bool {…}

    QuitSubSystem ¶

    QuitSubSystem :: proc "c" (flags: bit_set[InitFlag; u32]) ---

    RWFromConstMem ¶

    RWFromConstMem :: proc "c" (mem: rawptr, size: i32) -> ^RWops ---

    RWFromFP ¶

    RWFromFP :: proc "c" (fp: rawptr, autoclose: bool) -> ^RWops ---

    RWFromFile ¶

    RWFromFile :: proc "c" (file: cstring, mode: cstring) -> ^RWops ---

    RWFromMem ¶

    RWFromMem :: proc "c" (mem: rawptr, size: i32) -> ^RWops ---

    RWclose ¶

    RWclose :: proc "c" (ctx: ^RWops) -> i32 ---

    RWread ¶

    RWread :: proc "c" (ctx: ^RWops, ptr: rawptr, size: uint, maxnum: uint) -> uint ---

    RWseek ¶

    RWseek :: proc "c" (ctx: ^RWops, offset: i64, whence: i32) -> i64 ---

    RWsize ¶

    RWsize :: proc "c" (ctx: ^RWops) -> i64 ---

    RWtell ¶

    RWtell :: proc "c" (ctx: ^RWops) -> i64 ---

    RWwrite ¶

    RWwrite :: proc "c" (ctx: ^RWops, size: uint, num: uint) -> uint ---

    RaiseWindow ¶

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

    ReadBE16 ¶

    ReadBE16 :: proc "c" (src: ^RWops) -> u16 ---

    ReadBE32 ¶

    ReadBE32 :: proc "c" (src: ^RWops) -> u32 ---

    ReadBE64 ¶

    ReadBE64 :: proc "c" (src: ^RWops) -> u64 ---

    ReadLE16 ¶

    ReadLE16 :: proc "c" (src: ^RWops) -> u16 ---

    ReadLE32 ¶

    ReadLE32 :: proc "c" (src: ^RWops) -> u32 ---

    ReadLE64 ¶

    ReadLE64 :: proc "c" (src: ^RWops) -> u64 ---

    ReadU8 ¶

    ReadU8 :: proc "c" (src: ^RWops) -> u8 ---

    RecordGesture ¶

    RecordGesture :: proc "c" (touchId: ^TouchID) -> i32 ---

    RectEmpty ¶

    RectEmpty :: proc(r: ^Rect) -> bool {…}

    RectEquals ¶

    RectEquals :: proc(a, b: ^Rect) -> bool {…}

    RegisterEvents ¶

    RegisterEvents :: proc "c" (numevents: i32) -> u32 ---

    RemoveTimer ¶

    RemoveTimer :: proc "c" (id: TimerID) -> bool ---

    RenderClear ¶

    RenderClear :: proc "c" (renderer: ^Renderer) -> i32 ---

    RenderCopy ¶

    RenderCopy :: proc "c" (renderer: ^Renderer, texture: ^Texture, srcrect: ^Rect, dstrect: ^Rect) -> i32 ---

    RenderCopyEx ¶

    RenderCopyEx :: proc "c" (
    	renderer: ^Renderer, 
    	texture:  ^Texture, 
    	srcrect:  ^Rect, 
    	dstrect:  ^Rect, 
    	angle:    f64, 
    	center:   ^Point, 
    	flip:     RendererFlip, 
    ) -> i32 ---

    RenderCopyExF ¶

    RenderCopyExF :: proc "c" (
    	renderer: ^Renderer, 
    	texture:  ^Texture, 
    	srcrect:  ^Rect, 
    	dstrect:  ^FRect, 
    	angle:    f64, 
    	center:   ^FPoint, 
    	flip:     RendererFlip, 
    ) -> i32 ---

    RenderCopyF ¶

    RenderCopyF :: proc "c" (renderer: ^Renderer, texture: ^Texture, srcrect: ^Rect, dstrect: ^FRect) -> i32 ---

    RenderDrawLine ¶

    RenderDrawLine :: proc "c" (renderer: ^Renderer, x1, y1, x2, y2: i32) -> i32 ---

    RenderDrawLineF ¶

    RenderDrawLineF :: proc "c" (renderer: ^Renderer, x1, y1, x2, y2: f32) -> i32 ---

    RenderDrawLines ¶

    RenderDrawLines :: proc "c" (renderer: ^Renderer, points: [^]Point, count: i32) -> i32 ---

    RenderDrawLinesF ¶

    RenderDrawLinesF :: proc "c" (renderer: ^Renderer, points: [^]FPoint, count: i32) -> i32 ---

    RenderDrawPoint ¶

    RenderDrawPoint :: proc "c" (renderer: ^Renderer, x, y: i32) -> i32 ---

    RenderDrawPointF ¶

    RenderDrawPointF :: proc "c" (renderer: ^Renderer, x, y: f32) -> i32 ---

    RenderDrawPoints ¶

    RenderDrawPoints :: proc "c" (renderer: ^Renderer, points: [^]Point, count: i32) -> i32 ---

    RenderDrawPointsF ¶

    RenderDrawPointsF :: proc "c" (renderer: ^Renderer, points: [^]FPoint, count: i32) -> i32 ---

    RenderDrawRect ¶

    RenderDrawRect :: proc "c" (renderer: ^Renderer, rect: ^Rect) -> i32 ---

    RenderDrawRectF ¶

    RenderDrawRectF :: proc "c" (renderer: ^Renderer, rect: ^FRect) -> i32 ---

    RenderDrawRects ¶

    RenderDrawRects :: proc "c" (renderer: ^Renderer, rect: ^Rect, count: i32) -> i32 ---

    RenderDrawRectsF ¶

    RenderDrawRectsF :: proc "c" (renderer: ^Renderer, rects: [^]FRect, count: i32) -> i32 ---

    RenderFillRect ¶

    RenderFillRect :: proc "c" (renderer: ^Renderer, rect: ^Rect) -> i32 ---

    RenderFillRectF ¶

    RenderFillRectF :: proc "c" (renderer: ^Renderer, rect: ^FRect) -> i32 ---

    RenderFillRects ¶

    RenderFillRects :: proc "c" (renderer: ^Renderer, rects: [^]Rect, count: i32) -> i32 ---

    RenderFillRectsF ¶

    RenderFillRectsF :: proc "c" (renderer: ^Renderer, rects: [^]FRect, count: i32) -> i32 ---

    RenderFlush ¶

    RenderFlush :: proc "c" (renderer: ^Renderer) -> i32 ---

    RenderGetClipRect ¶

    RenderGetClipRect :: proc "c" (renderer: ^Renderer, rect: ^Rect) ---

    RenderGetD3D11Device ¶

    RenderGetD3D11Device :: proc "c" (renderer: ^Renderer) -> ^ID3D11Device ---

    RenderGetD3D9Device ¶

    RenderGetD3D9Device :: proc "c" (renderer: ^Renderer) -> ^IDirect3DDevice9 ---

    RenderGetIntegerScale ¶

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

    RenderGetLogicalSize ¶

    RenderGetLogicalSize :: proc "c" (renderer: ^Renderer, w, h: ^i32) ---

    RenderGetMetalCommandEncoder ¶

    RenderGetMetalCommandEncoder :: proc "c" (renderer: ^Renderer) -> rawptr ---

    RenderGetMetalLayer ¶

    RenderGetMetalLayer :: proc "c" (renderer: ^Renderer) -> rawptr ---

    RenderGetScale ¶

    RenderGetScale :: proc "c" (renderer: ^Renderer, scaleX, scaleY: ^f32) ---

    RenderGetViewport ¶

    RenderGetViewport :: proc "c" (renderer: ^Renderer, rect: ^Rect) ---

    RenderIsClipEnabled ¶

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

    RenderPresent ¶

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

    RenderReadPixels ¶

    RenderReadPixels :: proc "c" (renderer: ^Renderer, rect: ^Rect, format: u32, pixels: rawptr, pitch: i32) -> i32 ---

    RenderSetClipRect ¶

    RenderSetClipRect :: proc "c" (renderer: ^Renderer, rect: ^Rect) -> i32 ---

    RenderSetIntegerScale ¶

    RenderSetIntegerScale :: proc "c" (renderer: ^Renderer, enable: bool) -> i32 ---

    RenderSetLogicalSize ¶

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

    RenderSetScale ¶

    RenderSetScale :: proc "c" (renderer: ^Renderer, scaleX, scaleY: f32) -> i32 ---

    RenderSetViewport ¶

    RenderSetViewport :: proc "c" (renderer: ^Renderer, rect: ^Rect) -> i32 ---

    RenderTargetSupported ¶

    RenderTargetSupported :: proc "c" (renderer: ^PixelFormatEnum) -> bool ---

    RestoreWindow ¶

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

    SCANCODE_TO_KEYCODE ¶

    SCANCODE_TO_KEYCODE :: proc "c" (X: Scancode) -> Keycode {…}

    SHAPEMODEALPHA ¶

    SHAPEMODEALPHA :: proc "c" (mode: WindowShapeModeEnum) -> bool {…}

    SIMDAlloc ¶

    SIMDAlloc :: proc "c" (len: uint) -> rawptr ---

    SIMDFree ¶

    SIMDFree :: proc "c" (ptr: rawptr) ---

    SIMDGetAlignment ¶

    SIMDGetAlignment :: proc "c" () -> uint ---

    SIMDRealloc ¶

    SIMDRealloc :: proc "c" (mem: rawptr, len: uint) -> rawptr ---

    SaveAllDollarTemplates ¶

    SaveAllDollarTemplates :: proc "c" (dst: ^RWops) -> i32 ---

    SaveBMP ¶

    SaveBMP :: proc "c" (surface: ^Surface, file: cstring) -> i32 {…}

    SaveBMP_RW ¶

    SaveBMP_RW :: proc "c" (surface: ^Surface, dst: ^RWops, freedst: bool) -> i32 ---

    SaveDollarTemplate ¶

    SaveDollarTemplate :: proc "c" (gestureId: GestureID, dst: ^RWops) -> i32 ---

    SemTryWait ¶

    SemTryWait :: proc "c" (s: ^semaphore) -> i32 ---

    SemValue ¶

    SemValue :: proc "c" (s: ^semaphore) -> u32 ---

    SemWait ¶

    SemWait :: proc "c" (s: ^semaphore) -> i32 ---

    SemWaitTimeout ¶

    SemWaitTimeout :: proc "c" (s: ^semaphore, ms: u32) -> i32 ---

    SensorClose ¶

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

    SensorFromInstanceID ¶

    SensorFromInstanceID :: proc "c" (instance_id: SensorID) -> ^Sensor ---

    SensorGetData ¶

    SensorGetData :: proc "c" (sensor: ^Sensor, data: [^]f32, num_values: i32) -> i32 ---

    SensorGetDeviceInstanceID ¶

    SensorGetDeviceInstanceID :: proc "c" (device_index: i32) -> SensorID ---

    SensorGetDeviceName ¶

    SensorGetDeviceName :: proc "c" (device_index: i32) -> cstring ---

    SensorGetDeviceNonPortableType ¶

    SensorGetDeviceNonPortableType :: proc "c" (device_index: i32) -> i32 ---

    SensorGetDeviceType ¶

    SensorGetDeviceType :: proc "c" (device_index: i32) -> SensorType ---

    SensorGetInstanceID ¶

    SensorGetInstanceID :: proc "c" (sensor: ^Sensor) -> SensorID ---

    SensorGetName ¶

    SensorGetName :: proc "c" (sensor: ^Sensor) -> cstring ---

    SensorGetNonPortableType ¶

    SensorGetNonPortableType :: proc "c" (sensor: ^Sensor) -> i32 ---

    SensorGetType ¶

    SensorGetType :: proc "c" (sensor: ^Sensor) -> SensorType ---

    SensorOpen ¶

    SensorOpen :: proc "c" (device_index: i32) -> ^Sensor ---

    SensorUpdate ¶

    SensorUpdate :: proc "c" () ---

    SetClipRect ¶

    SetClipRect :: proc "c" (surface: ^Surface, rect: ^Rect) -> bool ---

    SetClipboardText ¶

    SetClipboardText :: proc "c" (text: cstring) -> i32 ---

    SetColorKey ¶

    SetColorKey :: proc "c" (surface: ^Surface, flag: i32, key: u32) -> i32 ---

    SetCursor ¶

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

    SetError ¶

    SetError :: proc "c" (fmt: cstring, args: ..any) -> i32 ---

    SetEventFilter ¶

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

    SetHint ¶

    SetHint :: proc "c" (name, value: cstring) -> bool ---

    SetHintWithPriority ¶

    SetHintWithPriority :: proc "c" (name, value: cstring, priority: HintPriority) -> bool ---

    SetMemoryFunctions ¶

    SetMemoryFunctions :: proc "c" (malloc_func: malloc_func, calloc_func: calloc_func, realloc_func: realloc_func, free_func: free_func) -> i32 ---

    SetModState ¶

    SetModState :: proc "c" (modstate: Keymod) {…}

    SetPaletteColors ¶

    SetPaletteColors :: proc "c" (palette: ^Palette, colors: [^]Color, firstcolor, ncolors: i32) -> i32 ---

    SetPixelFormatPalette ¶

    SetPixelFormatPalette :: proc "c" (format: ^PixelFormat, palette: ^Palette) -> i32 ---

    SetRelativeMouseMode ¶

    SetRelativeMouseMode :: proc "c" (enabled: bool) -> i32 ---

    SetRenderDrawBlendMode ¶

    SetRenderDrawBlendMode :: proc "c" (renderer: ^Renderer, blendMode: BlendMode) -> i32 ---

    SetRenderDrawColor ¶

    SetRenderDrawColor :: proc "c" (renderer: ^Renderer, r, g, b, a: u8) -> i32 ---

    SetRenderTarget ¶

    SetRenderTarget :: proc "c" (renderer: ^Renderer, texture: ^Texture) -> i32 ---

    SetSurfaceAlphaMod ¶

    SetSurfaceAlphaMod :: proc "c" (surface: ^Surface, alpha: u8) -> i32 ---

    SetSurfaceBlendMode ¶

    SetSurfaceBlendMode :: proc "c" (surface: ^Surface, blendMode: BlendMode) -> i32 ---

    SetSurfaceColorMod ¶

    SetSurfaceColorMod :: proc "c" (surface: ^Surface, r, g, b: u8) -> i32 ---

    SetSurfacePalette ¶

    SetSurfacePalette :: proc "c" (surface: ^Surface, palette: ^Palette) -> i32 ---

    SetSurfaceRLE ¶

    SetSurfaceRLE :: proc "c" (surface: ^Surface, flag: i32) -> i32 ---

    SetTextInputRect ¶

    SetTextInputRect :: proc "c" (rect: ^Rect) ---

    SetTextureAlphaMod ¶

    SetTextureAlphaMod :: proc "c" (texture: ^Texture, alpha: u8) -> i32 ---

    SetTextureBlendMode ¶

    SetTextureBlendMode :: proc "c" (texture: ^Texture, blendMode: BlendMode) -> i32 ---

    SetTextureColorMod ¶

    SetTextureColorMod :: proc "c" (texture: ^Texture, r, g, b: u8) -> i32 ---

    SetTextureScaleMode ¶

    SetTextureScaleMode :: proc "c" (texture: ^Texture, scaleMode: ScaleMode) -> i32 ---

    SetThreadPriority ¶

    SetThreadPriority :: proc "c" (priority: ThreadPriority) -> i32 ---

    SetWindowAlwaysOnTop ¶

    SetWindowAlwaysOnTop :: proc "c" (window: ^Window, on_top: bool) ---

    SetWindowBordered ¶

    SetWindowBordered :: proc "c" (window: ^Window, bordered: bool) ---

    SetWindowBrightness ¶

    SetWindowBrightness :: proc "c" (window: ^Window, brightness: f32) -> i32 ---

    SetWindowData ¶

    SetWindowData :: proc "c" (window: ^Window, name: cstring, userdata: rawptr) -> rawptr ---

    SetWindowDisplayMode ¶

    SetWindowDisplayMode :: proc "c" (window: ^Window, mode: ^DisplayMode) -> i32 ---

    SetWindowFullscreen ¶

    SetWindowFullscreen :: proc "c" (window: ^Window, flags: WindowFlags) -> i32 ---

    SetWindowGammaRamp ¶

    SetWindowGammaRamp :: proc "c" (window: ^Window, red, green, blue: ^u16) -> i32 ---

    SetWindowGrab ¶

    SetWindowGrab :: proc "c" (window: ^Window, grabbed: bool) ---

    SetWindowHitTest ¶

    SetWindowHitTest :: proc "c" (window: ^Window, callback: HitTest, callback_data: rawptr) -> i32 ---

    SetWindowIcon ¶

    SetWindowIcon :: proc "c" (window: ^Window, icon: ^Surface) ---

    SetWindowInputFocus ¶

    SetWindowInputFocus :: proc "c" (window: ^Window) -> i32 ---

    SetWindowKeyboardGrab ¶

    SetWindowKeyboardGrab :: proc "c" (window: ^Window, grabbed: bool) ---

    SetWindowMaximumSize ¶

    SetWindowMaximumSize :: proc "c" (window: ^Window, max_w, max_h: i32) ---

    SetWindowMinimumSize ¶

    SetWindowMinimumSize :: proc "c" (window: ^Window, min_w, min_h: i32) ---

    SetWindowModalFor ¶

    SetWindowModalFor :: proc "c" (modal_window, parent_window: ^Window) -> i32 ---

    SetWindowMouseGrab ¶

    SetWindowMouseGrab :: proc "c" (window: ^Window, grabbed: bool) ---

    SetWindowOpacity ¶

    SetWindowOpacity :: proc "c" (window: ^Window, opacity: f32) -> i32 ---

    SetWindowPosition ¶

    SetWindowPosition :: proc "c" (window: ^Window, x, y: i32) ---

    SetWindowResizable ¶

    SetWindowResizable :: proc "c" (window: ^Window, resizable: bool) ---

    SetWindowShape ¶

    SetWindowShape :: proc "c" (window: ^Window, shape: ^Surface, shape_mode: ^WindowShapeMode) -> i32 ---

    SetWindowSize ¶

    SetWindowSize :: proc "c" (window: ^Window, w, h: i32) ---

    SetWindowTitle ¶

    SetWindowTitle :: proc "c" (window: ^Window, title: cstring) ---

    SetWindowsMessageHook ¶

    SetWindowsMessageHook :: proc "c" (callback: WindowsMessageHook, userdata: rawptr) ---

    SetYUVConversionMode ¶

    SetYUVConversionMode :: proc "c" (mode: YUV_CONVERSION_MODE) ---

    ShowCursor ¶

    ShowCursor :: proc "c" (toggle: i32) -> i32 ---

    ShowMessageBox ¶

    ShowMessageBox :: proc "c" (messageboxdata: ^MessageBoxData, buttonid: ^i32) -> i32 ---

    ShowSimpleMessageBox ¶

    ShowSimpleMessageBox :: proc "c" (flags: MessageBoxFlags, title: cstring, message: cstring, window: ^Window) -> i32 ---

    ShowWindow ¶

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

    SoftStretch ¶

    SoftStretch :: proc "c" (src: ^Surface, srcrect: ^Rect, dst: ^Surface, dstrect: ^Rect) -> i32 ---

    SoftStretchLinear ¶

    SoftStretchLinear :: proc "c" (src: ^Surface, srcrect: ^Rect, dst: ^Surface, dstrect: ^Rect) -> i32 ---

    StartTextInput ¶

    StartTextInput :: proc "c" () ---

    StopTextInput ¶

    StopTextInput :: proc "c" () ---

    TICKS_PASSED ¶

    TICKS_PASSED :: proc "c" (A, B: u32) -> bool {…}

    TLSCleanup ¶

    TLSCleanup :: proc "c" () ---

    TLSCreate ¶

    TLSCreate :: proc "c" () -> TLSID ---

    TLSGet ¶

    TLSGet :: proc "c" (id: TLSID) -> rawptr ---

    TLSSet ¶

    TLSSet :: proc "c" (id: TLSID, value: rawptr, destructor: proc "c" (_: rawptr)) -> i32 ---

    ThreadID ¶

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

    TryLockMutex ¶

    TryLockMutex :: proc "c" (m: ^mutex) -> i32 ---

    UnionRect ¶

    UnionRect :: proc "c" (A, B: ^Rect, result: ^Rect) ---

    UnloadObject ¶

    UnloadObject :: proc "c" (handle: rawptr) ---

    UnlockAudio ¶

    UnlockAudio :: proc "c" () ---

    UnlockAudioDevice ¶

    UnlockAudioDevice :: proc "c" (dev: AudioDeviceID) ---
     

    Audio lock functions

    UnlockJoysticks ¶

    UnlockJoysticks :: proc "c" () ---

    UnlockMutex ¶

    UnlockMutex :: proc "c" (m: ^mutex) -> i32 ---

    UnlockSensors ¶

    UnlockSensors :: proc "c" () ---

    UnlockSurface ¶

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

    UnlockTexture ¶

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

    Unsupported ¶

    Unsupported :: proc "c" () -> i32 {…}

    UpdateNVTexture ¶

    UpdateNVTexture :: proc "c" (
    	texture: ^Texture, 
    	rect:    ^Rect, 
    	Yplane:  ^u8, 
    	Ypitch:  i32, 
    	UVplane: ^u8, 
    	UVpitch: i32, 
    ) -> i32 ---

    UpdateTexture ¶

    UpdateTexture :: proc "c" (texture: ^Texture, rect: ^Rect, pixels: rawptr, pitch: i32) -> i32 ---

    UpdateWindowSurface ¶

    UpdateWindowSurface :: proc "c" (window: ^Window) -> i32 ---

    UpdateWindowSurfaceRects ¶

    UpdateWindowSurfaceRects :: proc "c" (window: ^Window, rects: [^]Rect, numrects: i32) -> i32 ---

    UpdateYUVTexture ¶

    UpdateYUVTexture :: proc "c" (
    	texture: ^Texture, 
    	rect:    ^Rect, 
    	Yplane:  ^u8, 
    	Ypitch:  i32, 
    	Uplane:  ^u8, 
    	Upitch:  i32, 
    	Vplane:  ^u8, 
    	Vpitch:  i32, 
    ) -> i32 ---

    UpperBlit ¶

    UpperBlit :: proc "c" (src: ^Surface, srcrect: ^Rect, dst: ^Surface, dstrect: ^Rect) -> i32 ---

    UpperBlitScaled ¶

    UpperBlitScaled :: proc "c" (src: ^Surface, srcrect: ^Rect, dst: ^Surface, dstrect: ^Rect) -> i32 ---

    VideoInit ¶

    VideoInit :: proc "c" (driver_name: cstring) -> i32 ---

    VideoQuit ¶

    VideoQuit :: proc "c" () ---

    Vulkan_CreateSurface ¶

    Vulkan_CreateSurface :: proc "c" (window: ^Window, instance: vulkan.Instance, surface: ^vulkan.SurfaceKHR) -> bool ---

    Vulkan_GetDrawableSize ¶

    Vulkan_GetDrawableSize :: proc "c" (window: ^Window, w, h: ^i32) ---

    Vulkan_GetInstanceExtensions ¶

    Vulkan_GetInstanceExtensions :: proc "c" (window: ^Window, pCount: ^u32, pNames: [^]cstring) -> bool ---

    Vulkan_GetVkGetInstanceProcAddr ¶

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

    Vulkan_LoadLibrary ¶

    Vulkan_LoadLibrary :: proc "c" (path: cstring) -> i32 ---

    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 {…}

    WaitEvent ¶

    WaitEvent :: proc "c" (event: ^Event) -> bool ---
     

    original return value is c.int

    WaitEventTimeout ¶

    WaitEventTimeout :: proc "c" (event: ^Event, timeout: i32) -> bool ---
     

    original return value is c.int

    WaitThread ¶

    WaitThread :: proc "c" (thread: ^Thread, status: ^i32) ---

    WarpMouseGlobal ¶

    WarpMouseGlobal :: proc "c" (x, y: i32) -> i32 ---

    WarpMouseInWindow ¶

    WarpMouseInWindow :: proc "c" (window: ^Window, x, y: i32) ---

    WasInit ¶

    WasInit :: proc "c" (flags: bit_set[InitFlag; u32]) -> bit_set[InitFlag; u32] ---

    WinRTGetDeviceFamily ¶

    WinRTGetDeviceFamily :: proc "c" () -> WinRT_DeviceFamily ---

    WinRTGetFSPathUNICODE ¶

    WinRTGetFSPathUNICODE :: proc "c" (pathType: WinRT_Path) -> ^u16 ---

    WinRTGetFSPathUTF8 ¶

    WinRTGetFSPathUTF8 :: proc "c" (pathType: WinRT_Path) -> cstring ---

    WriteBE16 ¶

    WriteBE16 :: proc "c" (dst: ^RWops, value: ^u16) -> uint ---

    WriteBE32 ¶

    WriteBE32 :: proc "c" (dst: ^RWops, value: ^u32) -> uint ---

    WriteBE64 ¶

    WriteBE64 :: proc "c" (dst: ^RWops, value: ^u64) -> uint ---

    WriteLE16 ¶

    WriteLE16 :: proc "c" (dst: ^RWops, value: ^u16) -> uint ---

    WriteLE32 ¶

    WriteLE32 :: proc "c" (dst: ^RWops, value: ^u32) -> uint ---

    WriteLE64 ¶

    WriteLE64 :: proc "c" (dst: ^RWops, value: ^u64) -> uint ---

    WriteU8 ¶

    WriteU8 :: proc "c" (dst: ^RWops, value: ^u8) -> uint ---

    acos ¶

    acos :: proc "c" (x: f64) -> f64 ---

    acosf ¶

    acosf :: proc "c" (x: f32) -> f32 ---

    asin ¶

    asin :: proc "c" (x: f64) -> f64 ---

    asinf ¶

    asinf :: proc "c" (x: f32) -> f32 ---

    atan ¶

    atan :: proc "c" (x: f64) -> f64 ---

    atan2 ¶

    atan2 :: proc "c" (x, y: f64) -> f64 ---

    atan2f ¶

    atan2f :: proc "c" (x, y: f32) -> f32 ---

    atanf ¶

    atanf :: proc "c" (x: f32) -> f32 ---

    calloc ¶

    calloc :: proc "c" (nmemb, size: uint) -> rawptr ---

    ceil ¶

    ceil :: proc "c" (x: f64) -> f64 ---

    ceilf ¶

    ceilf :: proc "c" (x: f32) -> f32 ---

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

    crc32 ¶

    crc32 :: proc "c" (crc: u32, data: rawptr, len: uint) -> u32 ---

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

    gl_set_proc_address ¶

    gl_set_proc_address :: proc(p: rawptr, name: cstring) {…}
     

    Used by vendor:OpenGL

    iPhoneSetAnimationCallback ¶

    iPhoneSetAnimationCallback :: proc "c" (window: ^Window, interval: i32, callback: proc "c" (_: rawptr), callbackParam: rawptr) -> i32 ---

    iPhoneSetEventPump ¶

    iPhoneSetEventPump :: proc "c" (enabled: bool) ---

    iconv ¶

    iconv :: proc "c" (cd: iconv_t, inbuf: ^cstring, inbytesleft: ^uint, outbuf: ^[^]u8, outbytesleft: ^uint) -> uint ---

    iconv_close ¶

    iconv_close :: proc "c" (cd: iconv_t) -> i32 ---

    iconv_open ¶

    iconv_open :: proc "c" (tocode, fromcode: cstring) -> iconv_t ---

    iconv_string ¶

    iconv_string :: proc "c" (tocode, fromcode, inbuf: cstring, inbytesleft: uint) -> [^]u8 ---

    iconv_utf8_locale ¶

    iconv_utf8_locale :: proc "c" (s: string) -> cstring {…}

    iconv_utf8_ucs2 ¶

    iconv_utf8_ucs2 :: proc "c" (s: string) -> [^]u16 {…}

    iconv_utf8_ucs4 ¶

    iconv_utf8_ucs4 :: proc "c" (s: string) -> [^]rune {…}

    isalnum ¶

    isalnum :: proc "c" (x: rune) -> bool ---

    isalpha ¶

    isalpha :: proc "c" (x: rune) -> bool ---

    isblank ¶

    isblank :: proc "c" (x: rune) -> bool ---

    iscntrl ¶

    iscntrl :: proc "c" (x: rune) -> bool ---

    isdigit ¶

    isdigit :: proc "c" (x: rune) -> bool ---

    isgraph ¶

    isgraph :: proc "c" (x: rune) -> bool ---

    islower ¶

    islower :: proc "c" (x: rune) -> bool ---

    isprint ¶

    isprint :: proc "c" (x: rune) -> bool ---

    ispunct ¶

    ispunct :: proc "c" (x: rune) -> bool ---

    isspace ¶

    isspace :: proc "c" (x: rune) -> bool ---

    isupper ¶

    isupper :: proc "c" (x: rune) -> bool ---

    isxdigit ¶

    isxdigit :: proc "c" (x: rune) -> bool ---

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