nsdl3

Search:
Group by:

High level SDL 3.0 shared library wrapper for Nim.

Documentation below comes from SDL 3.0 library documentation.

Usage

# Load all symbols from SDL 3.0 shared library.
# This must be the first proc called.
if not open_sdl3_library():
  echo "Failed to load SDL 3.0 library: ", last_sdl3_error()
  quit QuitFailure
defer:
  close_sdl3_library()

# Initialize SDL 3.0.
if not Init INIT_VIDEO:
  echo "Failed to initialize SDL 3.0: ", GetError()
  quit QuitFailure
defer:
  Quit()

# SDL 3.0 calls follow…

Configuration

You can disable functions you don't use. All function groups are enabled by default.

GroupDefineFunctions Defined In
Audiosdl3.audio=0<SDL3/SDL_audio.h>
Blend Modesdl3.blendmode=0<SDL3/SDL_blendmode.h>
Clipboardsdl3.clipboard=0<SDL3/SDL_clipboard.h>
Gamepadsdl3.gamepad=0<SDL3/SDL_gamepad.h>
Gesturesdl3.gesture=0<SDL3/SDL_gesture.h>
Hapticsdl3.haptic=0<SDL3/SDL_haptic.h>
HID APIsdl3.hidapi=0<SDL3/SDL_hidapi.h>
Hintssdl3.hints=0<SDL3/SDL_hints.h>
Joysticksdl3.joystick=0<SDL3/SDL_joystick.h>
Keyboardsdl3.keyboard=0<SDL3/SDL_keyboard.h>
Message Boxsdl3.messagebox=0<SDL3/SDL_messagebox.h>
Mousesdl3.mouse=0<SDL3/SDL_mouse.h>
Pensdl3.pen=0<SDL3/SDL_pen.h>
Propertiessdl3.mouse=0<SDL3/SDL_mouse.h>
Sensorsdl3.properties=0<SDL3/SDL_properties.h>
Touchsdl3.touch=0<SDL3/SDL_touch.h>
Vulkansdl3.vulkan=0<SDL3/SDL_vulkan.h>

For example if you don't need audio functions compile with:

nim c -d=sdl3.audio=0 file(s)

Procs

proc AddTimer(interval: uint32; callback: TimerCallback; param: pointer = nil): TimerID {.
    ...raises: [], tags: [RootEffect], forbids: [].}
SDL_TimerID SDL_AddTimer(Uint32 interval, SDL_TimerCallback callback,
                         void *param)
proc CaptureMouse(enabled: bool): bool {....raises: [], tags: [RootEffect],
    forbids: [].}
int SDL_CaptureMouse(SDL_bool enabled)
proc ClearClipboardData(): bool {....raises: [], tags: [RootEffect], forbids: [].}
int SDL_ClearClipboardData(void)
proc ClearError() {.inline, ...raises: [], tags: [RootEffect], forbids: [].}
void SDL_ClearError(void)
proc CloseJoystick(joystick: Joystick) {.inline, ...raises: [], tags: [RootEffect],
    forbids: [].}
SDL_CloseJoystick
proc ComposeCustomBlendMode(src_color_factor: BlendFactor;
                            dst_color_factor: BlendFactor;
                            color_operation: BlendOperation;
                            src_alpha_factor: BlendFactor;
                            dst_alpha_factor: BlendFactor;
                            alpha_operation: BlendOperation): BlendMode {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Compose a custom blend mode for renderers.

SDL_BlendMode
SDL_ComposeCustomBlendMode(SDL_BlendFactor srcColorFactor,
                           SDL_BlendFactor dstColorFactor,
                           SDL_BlendOperation colorOperation,
                           SDL_BlendFactor srcAlphaFactor,
                           SDL_BlendFactor dstAlphaFactor,
                           SDL_BlendOperation alphaOperation)

proc CreateAudioStream(src_spec: AudioSpec; dst_spec: AudioSpec): AudioStream {.
    ...raises: [], tags: [RootEffect], forbids: [].}
SDL_AudioStream *SDL_CreateAudioStream(const SDL_AudioSpec *src_spec,
                                       const SDL_AudioSpec *dst_spec)
proc CreateColorCursor(surface: SurfacePtr; hot_x: int; hot_y: int): Cursor {.
    ...raises: [], tags: [RootEffect], forbids: [].}
SDL_Cursor *SDL_CreateColorCursor(SDL_Surface *surface,
                                  int hot_x, int hot_y)
proc CreateCursor(data, mask: openArray[byte]; w: int; h: int; hot_x: int;
                  hot_y: int): Cursor {....raises: [], tags: [RootEffect],
                                        forbids: [].}
SDL_Cursor *SDL_CreateCursor(const Uint8 *data, const Uint8 *mask,
                             int w, int h, int hot_x, int hot_y)
proc CreatePopupWindow(parent: Window; offset_x: int; offset_y: int; w: int;
                       h: int; flags: WindowFlags): Window {....raises: [],
    tags: [RootEffect], forbids: [].}

Create a child popup window of the specified parent window.

SDL_Window *SDL_CreatePopupWindow(SDL_Window *parent, int offset_x,
                                  int offset_y, int w, int h,
                                  Uint32 flags)

proc CreateRenderer(window: Window; flags = RendererFlags 0): Renderer {.
    ...raises: [], tags: [RootEffect], forbids: [].}
SDL_Renderer *SDL_CreateRenderer(SDL_Window *window, const char *name,
                                 Uint32 flags)
proc CreateRenderer(window: Window; name: string; flags = RendererFlags 0): Renderer {.
    ...raises: [], tags: [RootEffect], forbids: [].}
SDL_Renderer *SDL_CreateRenderer(SDL_Window *window, const char *name,
                                 Uint32 flags)
proc CreateRendererWithProperties(props: PropertiesID): Renderer {....raises: [],
    tags: [RootEffect], forbids: [].}

Create a 2D rendering context for a window, with the specified properties.

SDL_CreateRendererWithProperties

proc CreateRGBSurfaceFrom(pixels: pointer; width: int; height: int; depth: int;
                          pitch: int; rmask: uint32; gmask: uint32;
                          bmask: uint32; amask: uint32): SurfacePtr {.
    ...deprecated: "use CreateSurfaceFrom", inline, ...raises: [], tags: [RootEffect],
    forbids: [].}
Deprecated: use CreateSurfaceFrom

    
  
proc CreateSurfaceFrom(pixels: pointer; width, height: int; pitch: int;
                       format: uint32): SurfacePtr {....raises: [],
    tags: [RootEffect], forbids: [].}
SDL_Surface *SDL_CreateSurfaceFrom(void *pixels, int width, int height,
                                  int pitch, Uint32 format)
proc CreateSystemCursor(id: SystemCursor): Cursor {....raises: [],
    tags: [RootEffect], forbids: [].}

Create a system cursor.

SDL_Cursor *SDL_CreateSystemCursor(SDL_SystemCursor id)

proc CreateTexture(renderer: Renderer; format: PixelFormatEnum;
                   access: TextureAccess; width: int; height: int): Texture {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Create a texture for a rendering context.

SDL_CreateTexture

proc CreateTextureFromSurface(renderer: Renderer; surface: SurfacePtr): Texture {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Create a texture from an existing surface.

SDL_CreateTextureFromSurface

proc CreateTextureWithProperties(renderer: Renderer; props: PropertiesID): Texture {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Create a texture for a rendering context with the specified properties.

SDL_CreateTextureWithProperties

proc CreateWindow(title: string; w: int; h: int; flags = WindowFlags 0): Window {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Create a window with the specified dimensions and flags.

SDL_Window *SDL_CreateWindow(const char *title, int w, int h,
                             Uint32 flags)

proc CreateWindowAndRenderer(width: int; height: int;
                             window_flags: WindowFlags = WindowFlags 0): tuple[
    window: Window, renderer: Renderer] {....raises: [], tags: [RootEffect],
    forbids: [].}

Create a window and default renderer.

SDL_CreateWindowAndRenderer

proc CreateWindowWithProperties(props: PropertiesID): Window {....raises: [],
    tags: [RootEffect], forbids: [].}

Create a window with the specified properties.

SDL_CreateWindowWithProperties

proc CursorVisible(): bool {....raises: [], tags: [RootEffect], forbids: [].}
proc Delay(ms: uint32) {.inline, ...raises: [], tags: [RootEffect], forbids: [].}

    
  
proc DelayNS(ns: uint64) {.inline, ...raises: [], tags: [RootEffect], forbids: [].}

    
  
proc DestroyAudioStream(stream: AudioStream) {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
void SDL_DestroyAudioStream(SDL_AudioStream *stream)
proc DestroyCursor(cursor: Cursor) {.inline, ...raises: [], tags: [RootEffect],
                                     forbids: [].}
void SDL_DestroyCursor(SDL_Cursor *cursor)
proc DestroyRenderer(renderer: Renderer) {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}

Destroy the window rendering context and free all textures.

SDL_DestroyRenderer

proc DestroySurface(surface: SurfacePtr) {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
void SDL_DestroySurface(SDL_Surface *surface)
proc DestroyTexture(texture: Texture) {.inline, ...raises: [], tags: [RootEffect],
                                        forbids: [].}

Destroy the texture.

SDL_DestroyTexture

proc DestroyWindow(window: Window) {.inline, ...raises: [], tags: [RootEffect],
                                     forbids: [].}

Destroy the window.

void SDL_DestroyWindow(SDL_Window *window)

proc DisableScreenSaver(): bool {....raises: [], tags: [RootEffect], forbids: [].}

Prevent the screen from being blanked by a screen saver.

int SDL_DisableScreenSaver(void)

proc EnableScreenSaver(): bool {....raises: [], tags: [RootEffect], forbids: [].}

Allow the screen to be blanked by a screen saver.

int SDL_EnableScreenSaver(void)

proc FlashWindow(window: Window; operation: FlashOperation): bool {.discardable,
    ...raises: [], tags: [RootEffect], forbids: [].}

Request a window to demand attention from the user.

int SDL_FlashWindow(SDL_Window *window, SDL_FlashOperation operation)

proc FlushAudioStream(stream: AudioStream): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_FlushAudioStream(SDL_AudioStream *stream)
proc FreeSurface(surface: SurfacePtr) {....deprecated: "use DestroySurface instead",
                                        inline, ...raises: [], tags: [RootEffect],
                                        forbids: [].}
Deprecated: use DestroySurface instead

    
  
proc GetAudioDeviceName(devid: AudioDeviceID): string {....raises: [],
    tags: [RootEffect], forbids: [].}
  char *SDL_GetAudioDeviceName(SDL_AudioDeviceID devid)
proc GetAudioDriver(index: int): string {....raises: [], tags: [RootEffect],
    forbids: [].}
const char *SDL_GetAudioDriver(int index)
proc GetAudioOutputDevices(): seq[AudioDeviceID] {....raises: [],
    tags: [RootEffect], forbids: [].}
  SDL_AudioDeviceID *SDL_GetAudioOutputDevices(int *count)
proc GetAudioStreamAvailable(stream: AudioStream): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
  int SDL_GetAudioStreamAvailable(SDL_AudioStream *stream)
proc GetAudioStreamDevice(stream: AudioStream): AudioDeviceID {....raises: [],
    tags: [RootEffect], forbids: [].}
SDL_AudioDeviceID SDL_GetAudioStreamDevice(SDL_AudioStream *stream)
proc GetClipboardData(mime_type: string): seq[byte] {....raises: [],
    tags: [RootEffect], forbids: [].}
void *SDL_GetClipboardData(const char *mime_type, size_t *size)
proc GetClosestFullscreenDisplayMode(display_id: DisplayID; w: int; h: int;
                                     refresh_rate: float;
                                     include_high_density_modes: bool): ptr DisplayMode {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Get the closest match to the requested display mode.

const SDL_DisplayMode *
SDL_GetClosestFullscreenDisplayMode(SDL_DisplayID displayID,
                                    int w, int h, float refresh_rate,
                                    SDL_bool include_high_density_modes)

proc GetCurrentAudioDriver(): string {.inline, ...raises: [], tags: [RootEffect],
                                       forbids: [].}
  const char *SDL_GetCurrentAudioDriver(void)
proc GetCurrentDisplayMode(display_id: DisplayID): ptr DisplayMode {....raises: [],
    tags: [RootEffect], forbids: [].}

Get information about the current display mode.

const SDL_DisplayMode *SDL_GetCurrentDisplayMode(SDL_DisplayID displayID)

proc GetCurrentVideoDriver(): string {....raises: [], tags: [RootEffect],
                                       forbids: [].}

Get the name of the currently initialized video driver.

const char *SDL_GetCurrentVideoDriver(void)

proc GetCursor(): Cursor {....raises: [], tags: [RootEffect], forbids: [].}
SDL_Cursor *SDL_GetCursor(void)
proc GetDisplayBounds(display_id: DisplayID; rect: var Rect): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Get the desktop area represented by a display.

int SDL_GetDisplayBounds(SDL_DisplayID displayID, SDL_Rect *rect)

proc GetDisplayBounds(display_id: DisplayID; x: var int; y: var int;
                      width: var int; height: var int): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Get the desktop area represented by a display.

int SDL_GetDisplayBounds(SDL_DisplayID displayID, SDL_Rect *rect)

proc GetDisplayContentScale(display_id: DisplayID): float {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
proc GetDisplayForWindow(window: Window): DisplayID {....raises: [],
    tags: [RootEffect], forbids: [].}

Get the display associated with a window.

SDL_DisplayID SDL_GetDisplayForWindow(SDL_Window *window)

proc GetDisplayName(display_id: DisplayID): string {....raises: [],
    tags: [RootEffect], forbids: [].}

Get the name of a display in UTF-8 encoding.

const char *SDL_GetDisplayName(SDL_DisplayID displayID)

proc GetDisplays(): seq[DisplayID] {....raises: [], tags: [RootEffect], forbids: [].}

Get a list of currently connected displays.

SDL_DisplayID *SDL_GetDisplays(int *count)

proc GetDisplayUsableBounds(display_id: DisplayID; rect: var Rect): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Get the usable desktop area represented by a display, in screen coordinates.

int SDL_GetDisplayUsableBounds(SDL_DisplayID displayID, SDL_Rect *rect)

proc GetDisplayUsableBounds(display_id: DisplayID; width: var int;
                            height: var int): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Get the usable desktop area represented by a display, in screen coordinates.

int SDL_GetDisplayUsableBounds(SDL_DisplayID displayID, SDL_Rect *rect)

proc GetError(): string {.inline, ...raises: [], tags: [RootEffect], forbids: [].}
const char *SDL_GetError(void)
proc GetFullscreenDisplayModes(display_id: DisplayID): seq[DisplayMode] {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Get a list of fullscreen display modes available on a display.

const SDL_DisplayMode **SDL_GetFullscreenDisplayModes(SDL_DisplayID displayID, int *count)

proc GetGlobalMouseState(): tuple[x, y: float, state: uint32] {....raises: [],
    tags: [RootEffect], forbids: [].}
Uint32 SDL_GetGlobalMouseState(float *x, float *y)
proc GetGrabbedWindow(): Window {....raises: [], tags: [RootEffect], forbids: [].}

Get the window that currently has an input grab enabled.

SDL_Window *SDL_GetGrabbedWindow(void)

proc GetHint(name: HintName): string {.inline, ...raises: [], tags: [RootEffect],
                                       forbids: [].}
const char * SDL_GetHint(const char *name)
proc GetJoystickCaps(joystick: Joystick): JoystickCaps {....raises: [],
    tags: [RootEffect], forbids: [].}
SDL_GetJoystickCaps
proc GetJoystickGUID(joystick: Joystick): JoystickGUID {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
SDL_GetJoystickGUID
proc GetJoystickName(joystick: Joystick): string {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
SDL_GetJoystickName
proc GetJoystickPath(joystick: Joystick): string {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
SDL_GetJoystickPath
proc GetJoystickProduct(joystick: Joystick): uint16 {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
SDL_GetJoystickProduct
proc GetJoysticks(): seq[JoystickID] {....raises: [], tags: [RootEffect],
                                       forbids: [].}
SDL_GetJoysticks
proc GetJoystickVendor(joystick: Joystick): uint16 {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
SDL_GetJoystickVendor
proc GetMouseFocus(): Window {....raises: [], tags: [RootEffect], forbids: [].}
SDL_Window * SDL_GetMouseFocus(void)
proc GetMouseState(): tuple[x, y: float, state: uint32] {....raises: [],
    tags: [RootEffect], forbids: [].}
Uint32 SDL_GetMouseState(float *x, float *y)
proc GetNumAudioDrivers(): int {.inline, ...raises: [], tags: [RootEffect],
                                 forbids: [].}
proc GetNumJoystickAxes(joystick: Joystick): int {....raises: [],
    tags: [RootEffect], forbids: [].}
SDL_GetNumJoystickAxes
proc GetNumJoystickButtons(joystick: Joystick): int {....raises: [],
    tags: [RootEffect], forbids: [].}
SDL_GetNumJoystickButtons
proc GetNumJoystickHats(joystick: Joystick): int {....raises: [],
    tags: [RootEffect], forbids: [].}
SDL_GetNumJoystickHats
proc GetNumVideoDrivers(): int {....raises: [], tags: [RootEffect], forbids: [].}

Get the number of video drivers compiled into SDL.

int SDL_GetNumVideoDrivers(void)

proc GetPerformanceCounter(): uint64 {.inline, ...raises: [], tags: [RootEffect],
                                       forbids: [].}
Uint64 SDL_GetPerformanceCounter(void)
proc GetPerformanceFrequency(): uint64 {.inline, ...raises: [], tags: [RootEffect],
    forbids: [].}
Uint64 SDL_GetPerformanceFrequency(void)
proc GetPixelFormatEnumForMasks(bpp: int; rmask: uint32; gmask: uint32;
                                bmask: uint32; amask: uint32): uint32 {.inline,
    ...raises: [], tags: [RootEffect], forbids: [].}

Convert bits/pixel value and RGBA masks to pixel format.

Return PIXELFORMAT_UNKNOWN if the conversion failed.

Uint32 SDL_GetPixelFormatEnumForMasks(int bpp, Uint32 Rmask,
                                      Uint32 Gmask, Uint32 Bmask,
                                      Uint32 Amask)

proc GetPrimaryDisplay(): DisplayID {.inline, ...raises: [], tags: [RootEffect],
                                      forbids: [].}

Return the primary display.

SDL_DisplayID SDL_GetPrimaryDisplay(void)

proc GetRelativeMouseMode(): bool {....raises: [], tags: [RootEffect], forbids: [].}
proc GetRenderer(window: Window): Renderer {....raises: [], tags: [RootEffect],
    forbids: [].}
SDL_Renderer *SDL_GetRenderer(SDL_Window *window)
proc GetRevision(): string {....raises: [], tags: [RootEffect], forbids: [].}
const char *SDL_GetRevision(void)
proc GetTicks(): uint64 {.inline, ...raises: [], tags: [RootEffect], forbids: [].}

Return the number of milliseconds since the SDL library initialization.

Uint64 SDL_GetTicks(void)

proc GetTicksNS(): uint64 {.inline, ...raises: [], tags: [RootEffect], forbids: [].}
Uint64 SDL_GetTicksNS(void)
proc GetVersion(): tuple[major, minor, patch: int] {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_GetVersion(SDL_version *ver)
proc GetWindowFlags(window: Window): WindowFlags {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}

Get the window flags.

Uint32 SDL_GetWindowFlags(SDL_Window *window)

proc GetWindowFromID(id: WindowID or uint32): Window {.inline, ...raises: [].}

Get a window from a stored ID.

SDL_Window *SDL_GetWindowFromID(SDL_WindowID id)

proc GetWindowFullscreenMode(window: Window = nil): ptr DisplayMode {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Query the display mode to use when a window is visible at fullscreen.

const SDL_DisplayMode *SDL_GetWindowFullscreenMode(SDL_Window *window)

proc GetWindowGrab(window: Window): bool {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
proc GetWindowID(window: Window): WindowID {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}

Get the numeric ID of a window.

SDL_WindowID SDL_GetWindowID(SDL_Window *window)

proc GetWindowKeyboardGrab(window: Window): bool {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
proc GetWindowMaximumSize(window: Window; w: var int; h: var int): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Get the maximum size of a window's client area.

int SDL_GetWindowMaximumSize(SDL_Window *window, int *w, int *h)

proc GetWindowMinimumSize(window: Window; w: var int; h: var int): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Get the minimum size of a window's client area.

int SDL_GetWindowMinimumSize(SDL_Window *window, int *w, int *h)

proc GetWindowMouseGrab(window: Window): bool {....raises: [], tags: [RootEffect],
    forbids: [].}
proc GetWindowPixelFormat(window: Window): PixelFormatEnum {....raises: [],
    tags: [RootEffect], forbids: [].}

Get the pixel format associated with the window.

Uint32 SDL_GetWindowPixelFormat(SDL_Window *window)

proc GetWindowPosition(window: Window; x: var int; y: var int): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Get the position of a window.

int SDL_GetWindowPosition(SDL_Window *window, int *x, int *y)

proc GetWindowSize(window: Window; w, h: var int): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Get the size of a window's client area.

int SDL_GetWindowSize(SDL_Window *window, int *w, int *h)

proc HasClipboardData(mime_type: string): bool {....raises: [], tags: [RootEffect],
    forbids: [].}
proc HideCursor(): bool {.discardable, inline, ...raises: [], tags: [RootEffect],
                          forbids: [].}

Hide the cursor.

int SDL_HideCursor(void)

proc HideWindow(window: Window): bool {....raises: [], tags: [RootEffect],
                                        forbids: [].}

Hide a window.

int SDL_HideWindow(SDL_Window *window)

proc Init(flags: InitFlags = INIT_VIDEO): bool {....raises: [], tags: [RootEffect],
    forbids: [].}
Initialize SDL3 library.
proc InitSubSystem(flags: InitFlags): bool {....raises: [], tags: [RootEffect],
    forbids: [].}
Initialize SDL3 subsystem.
proc JoystickHasLED(joystick: Joystick): bool {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
proc JoystickHasRumble(joystick: Joystick): bool {.
    ...deprecated: "use GetJoystickCaps instead", raises: [], tags: [], forbids: [].}
Deprecated: use GetJoystickCaps instead
proc JoystickHasRumbleTriggers(joystick: Joystick): bool {.
    ...deprecated: "use GetJoystickCaps instead", raises: [], tags: [], forbids: [].}
Deprecated: use GetJoystickCaps instead
proc JoystickNumAxes(joystick: Joystick): int {.
    ...deprecated: "Use GetNumJoystickAxes instead", raises: [],
    tags: [RootEffect], forbids: [].}
Deprecated: Use GetNumJoystickAxes instead
proc JoystickNumButtons(joystick: Joystick): int {.
    ...deprecated: "Use GetNumJoystickButtons instead", raises: [],
    tags: [RootEffect], forbids: [].}
Deprecated: Use GetNumJoystickButtons instead
proc JoystickNumHats(joystick: Joystick): int {.
    ...deprecated: "Use GetNumJoystickHats instead", raises: [],
    tags: [RootEffect], forbids: [].}
Deprecated: Use GetNumJoystickHats instead
proc LoadBMP(file: string): SurfacePtr {....raises: [], tags: [RootEffect],
    forbids: [].}
SDL_Surface *SDL_LoadBMP(const char *file)
proc Log(message: string) {.inline, ...raises: [], tags: [RootEffect], forbids: [].}
void SDL_Log(const char *fmt, ...)
proc LogCritical(category: LogCategory; message: string) {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
void SDL_LogCritical(int category, const char *fmt, ...)
proc LogDebug(category: LogCategory; message: string) {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
void SDL_LogDebug(int category, const char *fmt, ...)
proc LogError(category: LogCategory; message: string) {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
void SDL_LogError(int category, const char *fmt, ...)
proc LogInfo(category: LogCategory; message: string) {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
void SDL_LogInfo(int category, const char *fmt, ...)
proc LogMessage(category: LogCategory; priority: LogPriority; message: string) {.
    ...raises: [], tags: [RootEffect], forbids: [].}
proc LogSetOutputFunction(callback: LogOutputFunction; userdata: pointer = nil) {.
    inline, ...raises: [], tags: [RootEffect], forbids: [].}
void SDL_LogSetOutputFunction(SDL_LogOutputFunction callback,
                              void *userdata)
proc LogSetPriority(category: LogCategory; priority: LogPriority) {.inline,
    ...raises: [], tags: [RootEffect], forbids: [].}
void SDL_LogSetPriority(int category, SDL_LogPriority priority)
proc LogVerbose(category: LogCategory; message: string) {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
void SDL_LogVerbose(int category, const char *fmt, ...)
proc LogWarn(category: LogCategory; message: string) {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
void SDL_LogWarn(int category, const char *fmt, ...)
proc MapRGB(format: PixelFormat; r: byte; g: byte; b: byte): uint32 {.
    ...raises: [], tags: [RootEffect], forbids: [].}
Uint32 SDL_MapRGB(const SDL_PixelFormat *format,
                  Uint8 r, Uint8 g, Uint8 b)
proc MapRGBA(format: PixelFormat; r: byte; g: byte; b: byte; a: byte): uint32 {.
    ...raises: [], tags: [RootEffect], forbids: [].}
Uint32 SDL_MapRGBA(const SDL_PixelFormat *format,
                   Uint8 r, Uint8 g, Uint8 b, Uint8 a)
proc OpenAudioDeviceStream(devid: AudioDeviceID; spec: AudioSpec;
                           callback: AudioStreamCallback;
                           userdata: pointer = nil): AudioStream {....raises: [],
    tags: [RootEffect], forbids: [].}
SDL_AudioStream *
SDL_OpenAudioDeviceStream(SDL_AudioDeviceID devid,
                          const SDL_AudioSpec *spec,
                          SDL_AudioStreamCallback callback,
                          void *userdata)
proc OpenJoystick(instance_id: JoystickID): Joystick {....raises: [],
    tags: [RootEffect], forbids: [].}
SDL_OpenJoystick
proc PauseAudioDevice(dev: AudioDeviceID): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
  int SDL_PauseAudioDevice(SDL_AudioDeviceID dev)
proc PeepEvents(events: var openArray[Event]; action: EventAction;
                min_type: EventType; max_type: EventType): int {.inline,
    ...raises: [], tags: [], forbids: [].}
proc PeepEvents(events: var openArray[Event]; numevents: int;
                action: EventAction; min_type: EventType; max_type: EventType): int {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_PeepEvents(SDL_Event *events, int numevents,
                   SDL_eventaction action, Uint32 minType,
                   Uint32 maxType)
proc PollEvent(): bool {.inline, ...raises: [], tags: [RootEffect], forbids: [].}
proc PollEvent(event: var Event): bool {.inline, ...raises: [], tags: [RootEffect],
    forbids: [].}
proc PumpEvents() {.inline, ...raises: [], tags: [RootEffect], forbids: [].}
void SDL_PumpEvents(void)
proc PushEvent(event: var Event): bool {.inline, ...raises: [], tags: [RootEffect],
    forbids: [].}
int SDL_PushEvent(SDL_Event *event)
proc PutAudioStreamData(stream: AudioStream; buf: pointer; buflen: int): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_PutAudioStreamData(SDL_AudioStream *stream, const void *buf,
                           int len)
proc QueryTexture(texture: Texture; format: var uint32; access: var int;
                  w: var int; h: var int): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_QueryTexture(SDL_Texture *texture, Uint32 *format, int *access,
                     int *w, int *h)
proc Quit() {....raises: [], tags: [RootEffect], forbids: [].}
Clean up all initialized subsystems.
proc QuitRequested(): bool {.inline, ...raises: [], tags: [RootEffect], forbids: [].}
#define SDL_QuitRequested() \
    SDL_PumpEvents(), \
    (SDL_PeepEvents(NULL, 0, SDL_PEEKEVENT, SDL_EVENT_QUIT, \
                    SDL_EVENT_QUIT) > 0))
proc QuitSubSystem(flags: InitFlags) {.inline, ...raises: [], tags: [RootEffect],
                                       forbids: [].}
void SDL_QuitSubSystem(Uint32 flags)
proc RaiseWindow(window: Window): bool {....raises: [], tags: [RootEffect],
    forbids: [].}

Raise a window above other windows and set the input focus.

int SDL_RaiseWindow(SDL_Window *window)

proc RemoveTimer(id: TimerID): bool {.discardable, inline, ...raises: [],
                                      raises: [], tags: [RootEffect],
                                      forbids: [].}
proc RenderClear(renderer: Renderer): bool {....raises: [], tags: [RootEffect],
    forbids: [].}
int SDL_RenderClear(SDL_Renderer *renderer)
proc RenderCoordinatesFromWindow(renderer: Renderer; window_x: float;
                                 window_y: float; x: var float; y: var float): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Get a point in render coordinates when given a point in window coordinates.

int SDL_RenderCoordinatesFromWindow(SDL_Renderer *renderer,
                                    float window_x, float window_y,
                                    float *x, float *y)

proc RenderCopy(renderer: Renderer; texture: Texture): bool {.
    ...deprecated: "use RenderTexture instead", inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
Deprecated: use RenderTexture instead
XXX
proc RenderCopy(renderer: Renderer; texture: Texture; dst: FRect): bool {.
    ...deprecated: "use RenderTexture instead", inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
Deprecated: use RenderTexture instead
XXX
proc RenderCopy(renderer: Renderer; texture: Texture; src, dst: FRect): bool {.
    ...deprecated: "use RenderTexture instead", inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
Deprecated: use RenderTexture instead
XXX
proc RenderFillRect(renderer: Renderer): bool {....raises: [], tags: [RootEffect],
    forbids: [].}
int SDL_RenderFillRect(SDL_Renderer *renderer, const SDL_FRect *rect)
proc RenderFillRect(renderer: Renderer; rect: FRect): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_RenderFillRect(SDL_Renderer *renderer, const SDL_FRect *rect)
proc RenderFillRect(renderer: Renderer; x: float; y: float; w: float; h: float): bool {.
    inline, ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_RenderFillRect(SDL_Renderer *renderer, const SDL_FRect *rect)
proc RenderGeometry(renderer: Renderer; texture: Texture;
                    vertices: openArray[Vertex]; indices: openArray[cint]): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_RenderGeometry(SDL_Renderer *renderer, SDL_Texture *texture,
                       const SDL_Vertex *vertices, int num_vertices,
                       const int *indices, int num_indices)
proc RenderGeometry(renderer: Renderer; texture: Texture;
                    vertices: openArray[Vertex]): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_RenderGeometry(SDL_Renderer *renderer, SDL_Texture *texture,
                       const SDL_Vertex *vertices, int num_vertices,
                       const int *indices, int num_indices)
proc RenderGeometry(renderer: Renderer; vertices: openArray[Vertex]): bool {.
    inline, ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_RenderGeometry(SDL_Renderer *renderer, SDL_Texture *texture,
                       const SDL_Vertex *vertices, int num_vertices,
                       const int *indices, int num_indices)
proc RenderGeometry(renderer: Renderer; vertices: openArray[Vertex];
                    indices: openArray[cint]): bool {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_RenderGeometry(SDL_Renderer *renderer, SDL_Texture *texture,
                       const SDL_Vertex *vertices, int num_vertices,
                       const int *indices, int num_indices)
proc RenderLine(renderer: Renderer; x1: float; y1: float; x2: float; y2: float): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_RenderLine(SDL_Renderer *renderer, float x1, float y1,
                   float x2, float y2)
proc RenderPoint(renderer: Renderer; x, y: int): bool {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
proc RenderPoint(renderer: Renderer; x: float; y: float): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_RenderPoint(SDL_Renderer *renderer, float x, float y)
proc RenderPresent(renderer: Renderer) {.inline, ...raises: [], tags: [RootEffect],
    forbids: [].}
int SDL_RenderPresent(SDL_Renderer *renderer)
proc RenderRect(renderer: Renderer; rect: FRect): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_RenderRect(SDL_Renderer *renderer, const SDL_FRect *rect)
proc RenderRect(renderer: Renderer; x, y: float; w, h: float): bool {.inline,
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_RenderRect(SDL_Renderer *renderer, const SDL_FRect *rect)
proc RenderTexture(renderer: Renderer; texture: Texture): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_RenderTexture(SDL_Renderer *renderer, SDL_Texture *texture,
                      const SDL_FRect *srcrect, const SDL_FRect *dstrect)
proc RenderTexture(renderer: Renderer; texture: Texture; dst: FRect): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_RenderTexture(SDL_Renderer *renderer, SDL_Texture *texture,
                      const SDL_FRect *srcrect, const SDL_FRect *dstrect)
proc RenderTexture(renderer: Renderer; texture: Texture; srcrect: FRect;
                   dstrect: FRect): bool {....raises: [], tags: [RootEffect],
    forbids: [].}
int SDL_RenderTexture(SDL_Renderer *renderer, SDL_Texture *texture,
                      const SDL_FRect *srcrect, const SDL_FRect *dstrect)
proc RenderTexture(renderer: Renderer; texture: Texture; x: int; y: int; w: int;
                   h: int): bool {....raises: [], tags: [RootEffect], forbids: [].}
int SDL_RenderTexture(SDL_Renderer *renderer, SDL_Texture *texture,
                      const SDL_FRect *srcrect, const SDL_FRect *dstrect)
proc RenderTextureRotated(renderer: Renderer; texture: Texture; srcrect: FRect;
                          dstrect: FRect; angle: float; center: FPoint;
                          flip: FlipMode): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
See: SDL_RenderTextureRotated.
proc ResumeAudioDevice(dev: AudioDeviceID): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
  int SDL_ResumeAudioDevice(SDL_AudioDeviceID dev)
proc SaveBMP(surface: SurfacePtr; file: string): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_SaveBMP(SDL_Surface *surface, const char *file)
proc ScreenSaverEnabled(): bool {.inline, ...raises: [], tags: [RootEffect],
                                  forbids: [].}
proc sdl3_avail(flags = INIT_VIDEO): bool {....raises: [], tags: [RootEffect],
    forbids: [].}
proc SetCursor(cursor: Cursor): bool {....raises: [], tags: [RootEffect],
                                       forbids: [].}
int SDL_SetCursor(SDL_Cursor *cursor)
proc SetEventEnabled(typ: EventType; state: bool) {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}

Set the state of processing events by type.

void SDL_SetEventEnabled(Uint32 type, SDL_bool enabled)

proc SetHint(name: HintName; value: string): bool {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
proc SetRelativeMouseMode(enabled: bool): bool {....raises: [], tags: [RootEffect],
    forbids: [].}

Set relative mouse mode.

int SDL_SetRelativeMouseMode(SDL_bool enabled)

proc SetRenderClipRect(renderer: Renderer; rect: Rect): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_SetRenderClipRect(SDL_Renderer *renderer, const SDL_Rect *rect)
proc SetRenderDrawBlendMode(renderer: Renderer; blend_mode: BlendMode): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_SetRenderDrawBlendMode(SDL_Renderer *renderer,
                               SDL_BlendMode blendMode)
proc SetRenderDrawColor(renderer: Renderer; r: byte; g: byte; b: byte;
                        a: byte = 0x000000FF): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Set the color used for drawing operations (clear, line, rect, etc.).

int SDL_SetRenderDrawColor(SDL_Renderer *renderer, Uint8 r, Uint8 g,
                           Uint8 b, Uint8 a)

proc SetRenderScale(renderer: Renderer; scale_x: float; scale_y: float): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_SetRenderScale(SDL_Renderer *renderer,
                       float scaleX, float scaleY)
proc SetRenderTarget(renderer: Renderer; texture: Texture = nil): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_SetRenderTarget(SDL_Renderer *renderer, SDL_Texture *texture)
proc SetRenderVSync(renderer: Renderer; vsync: bool): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_SetRenderVSync(SDL_Renderer *renderer, int vsync)
proc SetSurfaceColorKey(surface: SurfacePtr; flag: bool; key: uint32): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_SetSurfaceColorKey(SDL_Surface *surface, int flag, Uint32 key)
proc SetTextureAlphaMod(texture: Texture; alpha: byte): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
int SDL_SetTextureAlphaMod(SDL_Texture *texture, Uint8 alpha)
proc SetTextureBlendMode(texture: Texture; blend_mode: BlendMode): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_SetTextureBlendMode(SDL_Texture *texture,
                            SDL_BlendMode blendMode)
proc SetTextureColorMod(texture: Texture; r: byte; g: byte; b: byte): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_SetTextureColorMod(SDL_Texture *texture,
                           Uint8 r, Uint8 g, Uint8 b)
proc SetTextureScaleMode(texture: Texture; scale_mode: ScaleMode): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_SetTextureScaleMode(SDL_Texture *texture, SDL_ScaleMode scaleMode)
proc SetWindowBordered(window: Window; bordered: bool): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Set the border state of a window.

int SDL_SetWindowBordered(SDL_Window *window, SDL_bool bordered)

proc SetWindowFullscreen(window: Window; fullscreen: bool): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Set a window's fullscreen state.

int SDL_SetWindowFullscreen(SDL_Window *window, SDL_bool fullscreen)

proc SetWindowFullscreenMode(window: Window; mode: ptr DisplayMode): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Set the display mode to use when a window is visible and fullscreen.

int SDL_SetWindowFullscreenMode(SDL_Window *window,
                                const SDL_DisplayMode *mode)

proc SetWindowGrab(window: Window; grabbed: bool): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Set a window's input grab mode.

int SDL_SetWindowGrab(SDL_Window *window, SDL_bool grabbed)

proc SetWindowIcon(window: Window; surface: SurfacePtr): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Set the icon for a window.

int SDL_SetWindowIcon(SDL_Window *window, SDL_Surface *icon)

proc SetWindowKeyboardGrab(window: Window; grabbed: bool): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Set a window's keyboard grab mode.

int SDL_SetWindowKeyboardGrab(SDL_Window *window, SDL_bool grabbed)

proc SetWindowMaximumSize(window: Window; min_w: int; min_h: int): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Set the maximum size of a window's client area.

int SDL_SetWindowMaximumSize(SDL_Window *window, int max_w, int max_h)

proc SetWindowMinimumSize(window: Window; min_w: int; min_h: int): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}

Set the minimum size of a window's client area.

int SDL_SetWindowMinimumSize(SDL_Window *window, int min_w, int min_h)

proc SetWindowMouseGrab(window: Window; grabbed: bool): bool {.discardable,
    ...raises: [], tags: [RootEffect], forbids: [].}

Set a window's mouse grab mode.

int SDL_SetWindowMouseGrab(SDL_Window *window, SDL_bool grabbed)

proc SetWindowPosition(window: Window; x: int; y: int): bool {....raises: [],
    tags: [RootEffect], forbids: [].}
Set the position of a window.
Note: Centering the window after returning from full screen moves the window to primary display. XXX: TODO: this note comes from SDL2, check this behavior in SDL3.

int SDL_SetWindowPosition(SDL_Window *window, int x, int y)

proc SetWindowResizable(window: Window; ontop: bool): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Set the user-resizable state of a window.

int SDL_SetWindowResizable(SDL_Window *window, SDL_bool resizable)

proc SetWindowSize(window: Window; x: int; y: int): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Set the size of a window's client area.

int SDL_SetWindowSize(SDL_Window *window, int w, int h)

proc SetWindowTitle(window: Window; title: string): bool {....raises: [],
    tags: [RootEffect], forbids: [].}

Set the title of a window.

int SDL_SetWindowTitle(SDL_Window *window, const char *title)

proc ShowCursor(): bool {.discardable, inline, ...raises: [], tags: [RootEffect],
                          forbids: [].}
int SDL_ShowCursor(void)
proc ShowMessageBox(messageboxdata: var MessageBoxData; buttonid: var int): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_ShowMessageBox(const SDL_MessageBoxData *messageboxdata,
                       int *buttonid)
proc ShowSimpleMessageBox(flags: MessageBoxFlags; title: string;
                          message: string; window: Window = nil): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_ShowSimpleMessageBox(Uint32 flags, const char *title,
                             const char *message, SDL_Window *window)
proc ShowWindow(window: Window): bool {....raises: [], tags: [RootEffect],
                                        forbids: [].}

Show a window.

int SDL_ShowWindow(SDL_Window *window)

proc UpdateJoysticks() {.inline, ...raises: [], tags: [RootEffect], forbids: [].}
void SDL_UpdateJoysticks(void)
proc UpdateTexture(texture: Texture; pixels: pointer; pitch: int): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_UpdateTexture(SDL_Texture *texture, const SDL_Rect *rect,
                      const void *pixels, int pitch)
proc UpdateTexture(texture: Texture; rect: var Rect; pixels: pointer; pitch: int): bool {.
    ...raises: [], tags: [RootEffect], forbids: [].}
int SDL_UpdateTexture(SDL_Texture *texture, const SDL_Rect *rect,
                      const void *pixels, int pitch)
proc UpdateWindowSurface(window: Window): bool {....raises: [], tags: [RootEffect],
    forbids: [].}

Copy the window surface to the screen.

int SDL_UpdateWindowSurface(SDL_Window *window)

proc WaitEvent(): bool {.inline, ...raises: [], tags: [RootEffect], forbids: [].}
proc WaitEvent(event: var Event): bool {.inline, ...raises: [], tags: [RootEffect],
    forbids: [].}
proc WaitEventTimeout(event: var Event; timeout: int32): bool {.inline,
    ...raises: [], tags: [RootEffect], forbids: [].}
proc WaitEventTimeout(timeout: int32): bool {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
proc WasInit(flags: InitFlags = INIT_NONE): InitFlags {.inline, ...raises: [],
    tags: [RootEffect], forbids: [].}
Uint32 SDL_WasInit(Uint32 flags)

Templates

template newSeqUninit[T: SomeNumber](len: Natural): seq[T]

Exports

open_sdl3_library, close_sdl3_library, last_sdl3_error, AudioFormatFlags, audio_isfloat, AUDIO_S32BE, AUDIO_S16, AudioFormat, AudioStream, or, AUDIO_F32LE, audio_isunsigned, AudioStreamCallback, AUDIO_S8, ==, AUDIO_S32SYS, audio_isint, audio_framesize, AUDIO_S32, AudioDeviceID, audio_islittleendian, audio_bytesize, AUDIO_F32BE, AUDIO_MASK_BITSIZE, AUDIO_U8, AUDIO_F32, audio_isbigendian, AUDIO_S16LE, AUDIO_S16BE, AUDIO_S16SYS, AudioSpec, AUDIO_S32LE, AUDIO_MASK_SIGNED, audio_issigned, AUDIO_DEVICE_DEFAULT_OUTPUT, AUDIO_MASK_ENDIAN, audio_bitsize, AudioPostmixCallback, AUDIO_MASK_FLOAT, AUDIO_F32SYS, AUDIO_DEVICE_DEFAULT_CAPTURE, WindowEvent, RELEASED, TextEditingEvent, AudioDeviceEvent, PRESSED, GamepadSensorEvent, QuitEvent, TextInputEvent, GamepadTouchpadEvent, JoyButtonEvent, repr, JoyHatEvent, EventType, TouchFingerEvent, UserEvent, MouseWheelEvent, EventFilter, PenTipEvent, MouseButtonEvent, JoyBatteryEvent, GamepadDeviceEvent, SensorEvent, $, GamepadAxisEvent, KeyboardEvent, GamepadButtonEvent, DisplayEvent, PenMotionEvent, PenButtonEvent, repr, JoyAxisEvent, MouseMotionEvent, DropEvent, EventAction, Event, JoyDeviceEvent, ClipboardEvent, CommonEvent, HINT_THREAD_STACK_SIZE, HINT_GAMECONTROLLERCONFIG, HINT_ACCELEROMETER_AS_JOYSTICK, HINT_WINDOW_ACTIVATE_WHEN_RAISED, HINT_ANDROID_BLOCK_ON_PAUSE_PAUSEAUDIO, HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS, HINT_PS2_DYNAMIC_VSYNC, HINT_AUTO_UPDATE_JOYSTICKS, HINT_JOYSTICK_HIDAPI_PS5_PLAYER_LED, HINT_MOUSE_FOCUS_CLICKTHROUGH, HINT_JOYSTICK_ZERO_CENTERED_DEVICES, HINT_JOYSTICK_HIDAPI_SWITCH, HINT_VIDEO_MAC_FULLSCREEN_SPACES, HINT_EVENT_LOGGING, HINT_JOYSTICK_GAMECUBE_DEVICES_EXCLUDED, HINT_AUDIO_DEVICE_APP_NAME, HINT_PEN_NOT_MOUSE, HINT_AUDIO_DEVICE_SAMPLE_FRAMES, HINT_JOYSTICK_HIDAPI_NINTENDO_CLASSIC, HINT_MOUSE_RELATIVE_MODE_CENTER, HINT_JOYSTICK_WHEEL_DEVICES_EXCLUDED, HINT_HIDAPI_ENUMERATE_ONLY_CONTROLLERS, HINT_MAIN_CALLBACK_RATE, HINT_JOYSTICK_WGI, HINT_JOYSTICK_GAMECUBE_DEVICES, HINT_WINDOWS_INTRESOURCE_ICON, HINT_APP_NAME, HINT_JOYSTICK_IOKIT, HINT_WAVE_TRUNCATION, HINT_GRAB_KEYBOARD, HINT_JOYSTICK_ROG_CHAKRAM, HINT_LINUX_JOYSTICK_CLASSIC, HINT_DIRECTINPUT_ENABLED, HINT_EMSCRIPTEN_ASYNCIFY, HINT_THREAD_PRIORITY_POLICY, HINT_VIDEO_DOUBLE_BUFFER, HINT_JOYSTICK_ALLOW_BACKGROUND_EVENTS, HINT_VIDEO_WAYLAND_MODE_EMULATION, HINT_WINDOWS_USE_D3D9EX, HINT_VIDEO_WAYLAND_PREFER_LIBDECOR, HINT_TRACKPAD_IS_TOUCH_ONLY, HINT_X11_WINDOW_TYPE, HINT_ORIENTATIONS, HINT_MOUSE_AUTO_CAPTURE, HINT_VIDEO_X11_NET_WM_PING, HINT_TIMER_RESOLUTION, HINT_JOYSTICK_THREAD, HINT_JOYSTICK_HIDAPI_JOYCON_HOME_LED, HINT_QTWAYLAND_WINDOW_FLAGS, HINT_MOUSE_RELATIVE_MODE_WARP, HINT_IME_SHOW_UI, HINT_JOYSTICK_HIDAPI_JOY_CONS, HINT_SHUTDOWN_DBUS_ON_QUIT, HINT_NO_SIGNAL_HANDLERS, HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED, HINT_WINDOWS_ENABLE_MENU_MNEMONICS, HINT_QUIT_ON_LAST_WINDOW_CLOSE, HINT_AUDIO_DEVICE_STREAM_ROLE, HINT_VIDEO_X11_SCALING_FACTOR, HINT_GAMECONTROLLERCONFIG_FILE, HINT_VIDEO_DRIVER, HINT_VIDEO_WAYLAND_ALLOW_LIBDECOR, HINT_MOUSE_DOUBLE_CLICK_TIME, HINT_RENDER_OPENGL_SHADERS, HINT_MOUSE_TOUCH_EVENTS, HintCallback, HINT_JOYSTICK_BLACKLIST_DEVICES, HINT_WAVE_RIFF_CHUNK_SIZE, HINT_TOUCH_MOUSE_EVENTS, HINT_JOYSTICK_MFI, HINT_WINDOW_ACTIVATE_WHEN_SHOWN, HINT_KMSDRM_REQUIRE_DRM_MASTER, HINT_VIDEO_WAYLAND_MODE_SCALING, HINT_JOYSTICK_HIDAPI_XBOX_360_PLAYER_LED, HINT_MOUSE_RELATIVE_WARP_MOTION, HINT_JOYSTICK_BLACKLIST_DEVICES_EXCLUDED, HINT_LINUX_JOYSTICK_DEADZONES, HINT_KMSDRM_DEVICE_INDEX, HINT_JOYSTICK_RAWINPUT_CORRELATE_XINPUT, HINT_JOYSTICK_THROTTLE_DEVICES, HINT_X11_FORCE_OVERRIDE_REDIRECT, HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS, HINT_AUTO_UPDATE_SENSORS, HINT_PREFERRED_LOCALES, HINT_JOYSTICK_THROTTLE_DEVICES_EXCLUDED, HINT_JOYSTICK_RAWINPUT, HintName, HINT_RENDER_DIRECT3D11_DEBUG, HINT_RPI_VIDEO_LAYER, HINT_MAC_OPENGL_ASYNC_DISPATCH, HINT_ALLOW_ALT_TAB_WHILE_GRABBED, HINT_JOYSTICK_HIDAPI_PS4, HINT_EMSCRIPTEN_CANVAS_SELECTOR, HINT_GAMECONTROLLER_IGNORE_DEVICES_EXCEPT, HINT_VIDEO_ALLOW_SCREENSAVER, HINT_ROG_GAMEPAD_MICE, HINT_VIDEO_FORCE_EGL, HINT_WINRT_PRIVACY_POLICY_LABEL, HINT_ANDROID_ALLOW_RECREATE_ACTIVITY, HINT_JOYSTICK_HIDAPI_PS4_RUMBLE, HINT_JOYSTICK_FLIGHTSTICK_DEVICES, HINT_BMP_SAVE_LEGACY_FORMAT, HINT_WINRT_HANDLE_BACK_BUTTON, HINT_AUDIO_INCLUDE_MONITORS, HINT_DISPLAY_USABLE_BOUNDS, HINT_GAMECONTROLLER_SENSOR_FUSION, HINT_FORCE_RAISEWINDOW, HINT_RENDER_LINE_METHOD, HINT_IME_INTERNAL_EDITING, HINT_VITA_TOUCH_MOUSE_DEVICE, HintPriority, HINT_AUDIO_CATEGORY, HINT_RENDER_METAL_PREFER_LOW_POWER_DEVICE, HINT_XINPUT_ENABLED, HINT_MOUSE_RELATIVE_SPEED_SCALE, HINT_GDK_TEXTINPUT_SCOPE, HINT_WINDOWS_NO_CLOSE_ON_ALT_F4, HINT_JOYSTICK_ARCADESTICK_DEVICES, HINT_IOS_HIDE_HOME_INDICATOR, HINT_RENDER_SCALE_QUALITY, HINT_JOYSTICK_HIDAPI_COMBINE_JOY_CONS, HINT_THREAD_FORCE_REALTIME_TIME_CRITICAL, HINT_JOYSTICK_DEVICE, HINT_JOYSTICK_HIDAPI_XBOX_360_WIRELESS, HINT_GAMECONTROLLERTYPE, HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK, HINT_JOYSTICK_HIDAPI_XBOX_ONE, HINT_JOYSTICK_HIDAPI_STEAMDECK, HINT_TV_REMOTE_AS_JOYSTICK, HINT_JOYSTICK_HIDAPI_STADIA, HINT_WINDOWS_INTRESOURCE_ICON_SMALL, HINT_JOYSTICK_HIDAPI_SWITCH_PLAYER_LED, HINT_VIDEO_X11_WINDOW_VISUALID, HINT_ALLOW_TOPMOST, HINT_RENDER_DIRECT3D_THREADSAFE, HINT_POLL_SENTINEL, HINT_APP_ID, HINT_MOUSE_DOUBLE_CLICK_RADIUS, HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED, HINT_JOYSTICK_HIDAPI_PS3, HINT_JOYSTICK_HIDAPI_XBOX_360, HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME, HINT_JOYSTICK_HIDAPI_GAMECUBE, HINT_VIDEO_EGL_ALLOW_GETDISPLAY_FALLBACK, HINT_ENABLE_SCREEN_KEYBOARD, HINT_APPLE_TV_REMOTE_ALLOW_ROTATION, HINT_WINDOW_FRAME_USABLE_WHILE_CURSOR_HIDDEN, HINT_JOYSTICK_HIDAPI_SHIELD, HINT_JOYSTICK_WHEEL_DEVICES, HINT_GAMECONTROLLER_IGNORE_DEVICES, HINT_JOYSTICK_HIDAPI, HINT_GDK_TEXTINPUT_TITLE, HINT_ROG_GAMEPAD_MICE_EXCLUDED, HINT_JOYSTICK_HIDAPI_PS5_RUMBLE, HINT_QTWAYLAND_CONTENT_ORIENTATION, HINT_RENDER_DRIVER, HINT_JOYSTICK_HIDAPI_STEAM, HINT_LINUX_HAT_DEADZONES, HINT_LINUX_DIGITAL_HATS, HINT_RENDER_VSYNC, HINT_MOUSE_NORMAL_SPEED_SCALE, HINT_MAC_BACKGROUND_APP, HINT_VIDEO_X11_XRANDR, HINT_VIDEO_WIN_D3DCOMPILER, HINT_ANDROID_TRAP_BACK_BUTTON, HINT_MOUSE_RELATIVE_SYSTEM_SCALE, HINT_FRAMEBUFFER_ACCELERATION, HINT_WINRT_PRIVACY_POLICY_URL, HINT_APPLE_TV_CONTROLLER_UI_EVENTS, HINT_WINDOWS_FORCE_SEMAPHORE_KERNEL, HINT_WINDOWS_ENABLE_MESSAGELOOP, HINT_GDK_TEXTINPUT_DEFAULT, HINT_JOYSTICK_HIDAPI_XBOX, HINT_AUDIO_DRIVER, HINT_GDK_TEXTINPUT_DESCRIPTION, HINT_HIDAPI_IGNORE_DEVICES, HINT_JOYSTICK_GAMECUBE_RUMBLE_BRAKE, HINT_EMSCRIPTEN_KEYBOARD_ELEMENT, HINT_JOYSTICK_HIDAPI_PS5, HINT_VIDEO_MINIMIZE_ON_FOCUS_LOSS, HINT_JOYSTICK_HIDAPI_WII, HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED, HINT_PEN_DELAY_MOUSE_BUTTON, HINT_ANDROID_BLOCK_ON_PAUSE, HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP, HINT_VIDEO_EXTERNAL_CONTEXT, HINT_GDK_TEXTINPUT_MAX_LENGTH, HINT_OPENGL_ES_DRIVER, HINT_JOYSTICK_ARCADESTICK_DEVICES_EXCLUDED, HINT_VIDEO_SYNC_WINDOW_OPERATIONS, HINT_AUDIO_DEVICE_STREAM_NAME, HINT_RETURN_KEY_HIDES_IME, HINT_JOYSTICK_HIDAPI_LUNA, HINT_JOYSTICK_FLIGHTSTICK_DEVICES_EXCLUDED, HINT_WAVE_FACT_CHUNK, HINT_VIDEO_X11_NET_WM_BYPASS_COMPOSITOR, INIT_GAMEPAD, INIT_EVENTS, INIT_AUDIO, or, INIT_VIDEO, INIT_HAPTIC, INIT_SENSOR, SdlBool, INIT_JOYSTICK, INIT_TIMER, InitFlags, INIT_NONE, SDLK_KP_1, KMOD_NUM, SDLK_y, SDLK_EXCLAIM, SDLK_KP_000, SDLK_F22, SDLK_KP_EQUALSAS400, SDLK_KP_COMMA, SDLK_KP_BINARY, SDLK_F15, SDLK_APPLICATION, ==, SDLK_d, SDLK_QUOTEDBL, SDLK_KP_MEMADD, SDLK_MODE, SDLK_7, SDLK_CLEAR, SDLK_F11, SDLK_COLON, SDLK_AC_SEARCH, SDLK_UNDERSCORE, SDLK_KP_LEFTBRACE, SDLK_F19, SDLK_CANCEL, SDLK_TAB, SDLK_AGAIN, SDLK_t, SDLK_BACKSLASH, SDLK_RIGHTPAREN, SDLK_KP_TAB, SDLK_BRIGHTNESSUP, KMOD_CTRL, SDLK_MENU, SDLK_4, SDLK_COMMA, SDLK_AC_HOME, SDLK_CURRENCYSUBUNIT, SDLK_KP_RIGHTBRACE, SDLK_KP_DBLAMPERSAND, SDLK_F5, SDLK_ASTERISK, SDLK_KP_MEMSTORE, SDLK_3, SDLK_KP_PLUS, SDLK_DELETE, SDLK_PERIOD, SDLK_KP_5, SDLK_OPER, SDLK_KP_MEMDIVIDE, SDLK_p, SDLK_F7, SDLK_u, SDLK_g, SDLK_KBDILLUMUP, SDLK_AT, SDLK_AC_BACK, SDLK_PRIOR, SDLK_F4, SDLK_F2, SDLK_MEDIASELECT, SDLK_MINUS, SDLK_F20, SDLK_KP_D, SDLK_z, SDLK_RSHIFT, SDLK_VOLUMEDOWN, SDLK_F9, SDLK_PERCENT, SDLK_KBDILLUMTOGGLE, KMOD_ALT, SDLK_MUTE, KMOD_LALT, SDLK_CALCULATOR, SDLK_F23, SDLK_SCROLLLOCK, SDLK_PRINTSCREEN, SDLK_s, SDLK_k, SDLK_SEMICOLON, SDLK_RCTRL, SDLK_ESCAPE, SDLK_F10, ==, SDLK_KP_2, SDLK_LALT, SDLK_RIGHT, SDLK_FIND, SDLK_KP_OCTAL, SDLK_x, Keycode, KMOD_RESERVED, SDLK_BACKSPACE, SDLK_KP_E, SDLK_v, SDLK_KP_HEXADECIMAL, SDLK_F3, KMOD_LSHIFT, SDLK_PAGEDOWN, SDLK_COMPUTER, SDLK_KP_B, SDLK_CRSEL, KMOD_LGUI, SDLK_j, SDLK_KP_LEFTPAREN, SDLK_LEFTBRACKET, KMOD_RGUI, SDLK_COPY, SDLK_DISPLAYSWITCH, SDLK_h, SDLK_APP1, SDLK_POWER, SDLK_RALT, SDLK_KP_HASH, SDLK_F14, SDLK_KP_MEMSUBTRACT, SDLK_KP_LESS, SDLK_KP_DECIMAL, SDLK_CURRENCYUNIT, SDLK_F17, SDLK_KP_7, SDLK_AUDIOMUTE, SDLK_KP_0, SDLK_LEFT, KMOD_RSHIFT, SDLK_8, SDLK_KP_4, SDLK_KP_3, SDLK_KP_A, SDLK_KP_SPACE, SDLK_KP_MEMCLEAR, SDLK_KP_ENTER, SDLK_UNDO, SDLK_e, SDLK_KP_COLON, SDLK_w, KMOD_RALT, SDLK_KP_EQUALS, SDLK_DECIMALSEPARATOR, SDLK_PAUSE, SDLK_KP_MULTIPLY, SDLK_l, SDLK_KBDILLUMDOWN, SDLK_F1, SDLK_CARET, SDLK_KP_00, SDLK_AUDIOPREV, SDLK_KP_PERCENT, SDLK_PAGEUP, SDLK_F12, SDLK_9, SDLK_AC_FORWARD, SDLK_SELECT, SDLK_AC_STOP, SDLK_KP_AT, SDLK_AUDIOREWIND, SDLK_F6, SDLK_1, SDLK_F16, SDLK_r, SDLK_F24, SDLK_KP_XOR, KMOD_RCTRL, SDLK_RETURN2, SDLK_NUMLOCKCLEAR, SDLK_o, SDLK_AUDIOFASTFORWARD, SDLK_KP_MEMRECALL, SDLK_i, SDLK_CALL, SDLK_SOFTLEFT, SDLK_KP_VERTICALBAR, SDLK_HOME, KMOD_NONE, SDLK_KP_DIVIDE, SDLK_n, SDLK_KP_F, KMOD_SCROLL, SDLK_CUT, SDLK_ALTERASE, SDLK_AC_REFRESH, SDLK_SLASH, SDLK_KP_PERIOD, SDLK_ENDCALL, SDLK_DOLLAR, SDLK_STOP, SDLK_APP2, KMOD_LCTRL, SDLK_KP_MINUS, SDLK_INSERT, SDLK_BRIGHTNESSDOWN, SDLK_KP_RIGHTPAREN, SDLK_LSHIFT, SDLK_KP_C, SDLK_KP_8, SDLK_CAPSLOCK, SDLK_RETURN, SDLK_KP_POWER, SDLK_b, SDLK_KP_EXCLAM, SDLK_m, SDLK_END, SDLK_F18, SDLK_6, SDLK_LESS, SDLK_THOUSANDSSEPARATOR, SDLK_F8, KMOD_CAPS, SDLK_F13, SDLK_HASH, SDLK_KP_BACKSPACE, and, SDLK_LCTRL, SDLK_AUDIOPLAY, SDLK_VOLUMEUP, SDLK_CLEARAGAIN, SDLK_SYSREQ, SDLK_SLEEP, SDLK_KP_6, SDLK_KP_CLEAR, SDLK_MAIL, SDLK_5, SDLK_PLUS, SDLK_EXSEL, SDLK_EJECT, SDLK_QUESTION, SDLK_UNKNOWN, SDLK_0, SDLK_EQUALS, KMOD_GUI, SDLK_LGUI, SDLK_SPACE, SDLK_AUDIONEXT, SDLK_KP_DBLVERTICALBAR, SDLK_LEFTPAREN, Keymod, SDLK_AUDIOSTOP, SDLK_RIGHTBRACKET, SDLK_SOFTRIGHT, SDLK_AMPERSAND, SDLK_f, SDLK_HELP, SDLK_OUT, SDLK_q, SDLK_BACKQUOTE, KMOD_MODE, SDLK_AC_BOOKMARKS, SDLK_KP_CLEARENTRY, SDLK_2, SDLK_WWW, SDLK_PASTE, SDLK_SEPARATOR, SDLK_UP, SDLK_KP_PLUSMINUS, KMOD_SHIFT, SDLK_c, SDLK_KP_AMPERSAND, SDLK_QUOTE, SDLK_KP_MEMMULTIPLY, SDLK_RGUI, SDLK_KP_9, SDLK_F21, SDLK_a, SDLK_DOWN, SDLK_GREATER, SDLK_KP_GREATER, SDLK_EXECUTE, LogPriority, LogCategory, LogOutputFunction, MESSAGEBOX_WARNING, MessageBoxButtonData, MessageBoxData, MessageBoxButtonFlags, MESSAGEBOX_BUTTON_ESCAPEKEY_DEFAULT, or, MessageBoxColorType, MESSAGEBOX_BUTTONS_RIGHT_TO_LEFT, MESSAGEBOX_BUTTONS_LEFT_TO_RIGHT, MessageBoxColorScheme, MESSAGEBOX_BUTTON_RETURNKEY_DEFAULT, MessageBoxColor, +, MESSAGEBOX_ERROR, MessageBoxFlags, MESSAGEBOX_INFORMATION, BUTTON_X2, MouseWheelDirection, BUTTON_LEFT, Cursor, BUTTON_RMASK, BUTTON_X2MASK, BUTTON_MMASK, SDL_NUM_SYSTEM_CURSORS, MouseID, BUTTON_X1MASK, BUTTON_LMASK, BUTTON_RIGHT, SystemCursor, BUTTON_X1, BUTTON_MIDDLE, ALPHA_TRANSPARENT, Palette, PackedLayout, ArrayOrder, PIXELFORMAT_XRGB32, PIXELFORMAT_RGB555, ALPHA_OPAQUE, Color, PackedOrder, PIXELFORMAT_RGBA32, bytes_per_pixel, BitmapOrder, is_array, PIXELFORMAT_RGB444, PIXELFORMAT_BGR555, init, is_packed, PIXELFORMAT_ARGB32, PIXELFORMAT_BGR444, is_indexed, PixelType, PixelFormatEnum, is_10bit, PixelFormat, PIXELFORMAT_XBGR32, PIXELFORMAT_BGRA32, is_alpha, PIXELFORMAT_BGRX32, PIXELFORMAT_RGBX32, bits_per_pixel, PIXELFORMAT_ABGR32, Rect, FPoint, init, point_in_rect, init, init, rect_empty, point_in_rect_float, rect_empty, init, FRect, init, rect_equals, rect_empty_float, Point, rects_equal_epsilon, rects_equal_float, PROPERTY_RENDERER_CREATE_NAME_STRING, PROPERTY_TEXTURE_OPENGLES2_TEXTURE_V_NUMBER, PROPERTY_TEXTURE_OPENGLES2_TEXTURE_TARGET, RendererLogicalPresentation, init, PROPERTY_TEXTURE_D3D12_TEXTURE_V_POINTER, PROPERTY_TEXTURE_D3D12_TEXTURE_POINTER, PROPERTY_TEXTURE_OPENGL_TEXTURE_NUMBER, RENDERER_SOFTWARE, PROPERTY_TEXTURE_CREATE_OPENGLES2_TEXTURE_U_NUMBER, PROPERTY_TEXTURE_OPENGL_TEX_W_FLOAT, RENDERER_ACCELERATED, RendererInfo, TextureCreateProperty, TextureAccess, PROPERTY_RENDERER_D3D12_DEVICE_POINTER, Vertex, PROPERTY_TEXTURE_D3D11_TEXTURE_U_POINTER, PROPERTY_TEXTURE_OPENGL_TEXTURE_V_NUMBER, PROPERTY_TEXTURE_CREATE_FORMAT_NUMBER, RENDERER_PRESENTVSYNC, RenderDeviceProperty, PROPERTY_TEXTURE_CREATE_HEIGHT_NUMBER, PROPERTY_RENDERER_D3D12_COMMAND_QUEUE_POINTER, TextureProperty, PROPERTY_TEXTURE_CREATE_D3D11_TEXTURE_V_POINTER, PROPERTY_TEXTURE_OPENGL_TEXTURE_U_NUMBER, PROPERTY_TEXTURE_D3D11_TEXTURE_V_POINTER, PROPERTY_RENDERER_CREATE_PRESENT_VSYNC_BOOLEAN, RendererFlags, PROPERTY_TEXTURE_OPENGL_TEX_H_FLOAT, PROPERTY_TEXTURE_D3D12_TEXTURE_U_POINTER, or, PROPERTY_TEXTURE_CREATE_OPENGLES2_TEXTURE_NUMBER, PROPERTY_TEXTURE_CREATE_OPENGL_TEXTURE_UV_NUMBER, PROPERTY_TEXTURE_OPENGLES2_TEXTURE_NUMBER, PROPERTY_TEXTURE_CREATE_D3D11_TEXTURE_U_POINTER, PROPERTY_TEXTURE_CREATE_OPENGLES2_TEXTURE_UV_NUMBER, PROPERTY_TEXTURE_CREATE_WIDTH_NUMBER, RenderCreateProperty, PROPERTY_TEXTURE_CREATE_OPENGL_TEXTURE_U_NUMBER, PROPERTY_TEXTURE_OPENGL_TEXTURE_TARGET, PROPERTY_RENDERER_D3D11_DEVICE_POINTER, PROPERTY_TEXTURE_CREATE_OPENGL_TEXTURE_NUMBER, PROPERTY_TEXTURE_CREATE_D3D11_TEXTURE_POINTER, Renderer, RendererFlip, PROPERTY_TEXTURE_OPENGLES2_TEXTURE_UV_NUMBER, PROPERTY_TEXTURE_D3D11_TEXTURE_POINTER, PROPERTY_TEXTURE_CREATE_OPENGLES2_TEXTURE_V_NUMBER, PROPERTY_RENDERER_CREATE_SURFACE_POINTER, PROPERTY_TEXTURE_CREATE_D3D12_TEXTURE_U_POINTER, PROPERTY_RENDERER_CREATE_WINDOW_POINTER, PROPERTY_TEXTURE_OPENGL_TEXTURE_UV_NUMBER, PROPERTY_TEXTURE_CREATE_D3D12_TEXTURE_V_POINTER, PROPERTY_RENDERER_D3D9_DEVICE_POINTER, PROPERTY_TEXTURE_CREATE_ACCESS_NUMBER, PROPERTY_TEXTURE_CREATE_D3D12_TEXTURE_POINTER, PROPERTY_TEXTURE_OPENGLES2_TEXTURE_U_NUMBER, PROPERTY_TEXTURE_CREATE_OPENGL_TEXTURE_V_NUMBER, Texture, BlitMap, FlipMode, pixels16, or, ScaleMode, SURFACE_USES_PROPERTIES, YuvConversionMode, PREALLOC, ==, SWSURFACE, pixels32, SurfaceFlags, DONTFREE, SurfacePtr, SIMD_ALIGNED, Surface, mustlock, RLEACCEL, TimerCallback, NS_PER_SECOND, ms_to_ns, NS_PER_US, MS_PER_SECOND, us_to_ns, ns_to_us, US_PER_SECOND, TimerID, ns_to_ms, NS_PER_MS, PROPERTY_WINDOW_CREATE_MAXIMIZED_BOOLEAN, PROPERTY_WINDOW_X11_SCREEN_NUMBER, PROPERTY_WINDOW_WAYLAND_EGL_WINDOW_POINTER, PROPERTY_WINDOW_CREATE_OPENGL_BOOLEAN, WINDOW_HIGH_PIXEL_DENSITY, WINDOW_METAL, PROPERTY_WINDOW_CREATE_COCOA_WINDOW_POINTER, EGLAttribArrayCallback, ==, PROPERTY_WINDOW_WAYLAND_XDG_TOPLEVEL_POINTER, GLContextResetNotification, PROPERTY_WINDOW_X11_DISPLAY_POINTER, WINDOW_HIDDEN, PROPERTY_WINDOW_CREATE_X_NUMBER, PROPERTY_WINDOW_CREATE_FULLSCREEN_BOOLEAN, PROPERTY_WINDOW_CREATE_X11_WINDOW_NUMBER, WINDOW_ALWAYS_ON_TOP, and, WindowBooleanProperty, PROPERTY_WINDOW_ANDROID_WINDOW_POINTER, HitTestResult, PROPERTY_WINDOW_CREATE_WAYLAND_SURFACE_ROLE_CUSTOM_BOOLEAN, PROPERTY_WINDOW_CREATE_WAYLAND_WL_SURFACE_POINTER, EGLAttrib, WINDOW_INPUT_FOCUS, PROPERTY_WINDOW_KMSDRM_DEVICE_INDEX_NUMBER, PROPERTY_WINDOW_CREATE_WIDTH_NUMBER, WINDOW_VULKAN, Window, EGLSurface, PROPERTY_WINDOW_CREATE_PARENT_POINTER, EGLDisplay, PROPERTY_WINDOW_CREATE_HEIGHT_NUMBER, PROPERTY_WINDOW_CREATE_WAYLAND_CREATE_EGL_WINDOW_BOOLEAN, PROPERTY_WINDOW_CREATE_TITLE_STRING, GLContext, WINDOW_EXTERNAL, windowpos_iscentered, SystemTheme, WINDOW_TRANSPARENT, ==, WINDOW_MINIMIZED, PROPERTY_WINDOW_WIN32_INSTANCE_POINTER, PROPERTY_WINDOW_CREATE_WIN32_HWND_POINTER, WINDOW_OCCLUDED, PROPERTY_WINDOW_CREATE_COCOA_VIEW_POINTER, WINDOW_RESIZABLE, ==, WINDOW_FULLSCREEN, PROPERTY_WINDOW_CREATE_RESIZABLE_BOOLEAN, WINDOW_NOT_FOCUSABLE, PROPERTY_WINDOW_CREATE_METAL_BOOLEAN, windowpos_isundefined, WINDOW_BORDERLESS, WINDOW_MAXIMIZED, PROPERTY_WINDOW_CREATE_HIDDEN_BOOLEAN, WindowFlags, WINDOW_SKIP_TASKBAR, PROPERTY_WINDOW_CREATE_MOUSE_GRABBED_BOOLEAN, PROPERTY_WINDOW_CREATE_HIGH_PIXEL_DENSITY_BOOLEAN, PROPERTY_WINDOW_X11_WINDOW_NUMBER, PROPERTY_WINDOW_WIN32_HDC_POINTER, WINDOW_MOUSE_GRABBED, PROPERTY_WINDOW_CREATE_TOOLTIP_BOOLEAN, PROPERTY_WINDOW_WAYLAND_DISPLAY_POINTER, ==, PROPERTY_WINDOW_CREATE_MENU_BOOLEAN, PROPERTY_WINDOW_CREATE_VULKAN_BOOLEAN, GLcontextReleaseFlag, PROPERTY_WINDOW_WIN32_HWND_POINTER, PROPERTY_WINDOW_CREATE_UTILITY_BOOLEAN, PROPERTY_WINDOW_WAYLAND_SURFACE_POINTER, PROPERTY_WINDOW_COCOA_WINDOW_POINTER, PROPERTY_WINDOW_VIVANTE_DISPLAY_POINTER, WindowID, PROPERTY_WINDOW_CREATE_BORDERLESS_BOOLEAN, PROPERTY_WINDOW_UIKIT_WINDOW_POINTER, PROPERTY_WINDOW_WAYLAND_XDG_SURFACE_POINTER, WindowPointerProperty, DisplayOrientation, WINDOW_TOOLTIP, GLprofile, WINDOW_UTILITY, WINDOW_MOUSE_CAPTURE, PROPERTY_WINDOW_VIVANTE_SURFACE_POINTER, PROPERTY_WINDOW_CREATE_Y_NUMBER, or, PROPERTY_WINDOW_CREATE_FOCUSABLE_BOOLEAN, HitTest, PROPERTY_WINDOW_WAYLAND_XDG_POPUP_POINTER, PROPERTY_WINDOW_KMSDRM_DRM_FD_NUMBER, EGLConfig, WINDOW_KEYBOARD_GRABBED, WINDOWPOS_UNDEFINED, WINDOW_OPENGL, WINDOW_MOUSE_FOCUS, DisplayID, PROPERTY_WINDOW_COCOA_METAL_VIEW_TAG_NUMBER, EGLIntArrayCallback, PROPERTY_WINDOW_WAYLAND_XDG_POSITIONER_POINTER, PROPERTY_WINDOW_ANDROID_SURFACE_POINTER, PROPERTY_WINDOW_WINRT_WINDOW_POINTER, PROPERTY_WINDOW_UIKIT_METAL_VIEW_TAG_NUMBER, DisplayMode, windowpos_centered_display, FlashOperation, PROPERTY_WINDOW_KMSDRM_GBM_DEVICE_POINTER, PROPERTY_WINDOW_VIVANTE_WINDOW_POINTER, PROPERTY_WINDOW_CREATE_ALWAYS_ON_TOP_BOOLEAN, WINDOWPOS_CENTERED, GLattr, PROPERTY_WINDOW_CREATE_WIN32_PIXEL_FORMAT_HWND_POINTER, EGLint, PROPERTY_WINDOW_CREATE_TRANSPARENT_BOOLEAN, PROPERTY_WINDOW_CREATE_MINIMIZED_BOOLEAN, WINDOW_POPUP_MENU, windowpos_centered_display, GLcontextFlag