"""This file is auto-generated."""

from .SDL import *

from .__init__ import ctypes, SDL_GET_DLL, \
    SDL_DLL, SDL_IMAGE_DLL, SDL_MIXER_DLL, SDL_NET_DLL, SDL_RTF_DLL, SDL_TTF_DLL

class LP_SDL_FRect(ctypes.POINTER(SDL_FRect)):
    ...

class LP_SDL_GPUBlitInfo(ctypes.POINTER(SDL_GPUBlitInfo)):
    ...

class LP_LP_SDL_Locale(ctypes.POINTER(ctypes.POINTER(SDL_Locale))):
    ...

class LP_SDL_Semaphore(ctypes.POINTER(SDL_Semaphore)):
    ...

class LP_SDL_Environment(ctypes.POINTER(SDL_Environment)):
    ...

class LP_c_ubyte(ctypes.POINTER(ctypes.c_ubyte)):
    ...

class LP_SDL_IOStream(ctypes.POINTER(SDL_IOStream)):
    ...

class LP_SDL_GPUComputePipeline(ctypes.POINTER(SDL_GPUComputePipeline)):
    ...

class LP_c_wchar_p(ctypes.POINTER(ctypes.c_wchar_p)):
    ...

class LP_SDL_CameraSpec(ctypes.POINTER(SDL_CameraSpec)):
    ...

class LP_SDL_GPUTextureTransferInfo(ctypes.POINTER(SDL_GPUTextureTransferInfo)):
    ...

class LP_RTF_FontEngine(ctypes.POINTER(RTF_FontEngine)):
    ...

class LP_SDL_GPUGraphicsPipeline(ctypes.POINTER(SDL_GPUGraphicsPipeline)):
    ...

class LP_SDL_Palette(ctypes.POINTER(SDL_Palette)):
    ...

class LP_SDLNet_Server(ctypes.POINTER(SDLNet_Server)):
    ...

class LP_SDL_RWLock(ctypes.POINTER(SDL_RWLock)):
    ...

class LP_SDLNet_StreamSocket(ctypes.POINTER(SDLNet_StreamSocket)):
    ...

class LP_SDL_StorageInterface(ctypes.POINTER(SDL_StorageInterface)):
    ...

class LP_SDL_IOStreamInterface(ctypes.POINTER(SDL_IOStreamInterface)):
    ...

class LP_SDL_GPUBufferBinding(ctypes.POINTER(SDL_GPUBufferBinding)):
    ...

class LP_SDL_Event(ctypes.POINTER(SDL_Event)):
    ...

class LP_SDL_Rect(ctypes.POINTER(SDL_Rect)):
    ...

class LP_SDL_hid_device_info(ctypes.POINTER(SDL_hid_device_info)):
    ...

class LP_Mix_Music(ctypes.POINTER(Mix_Music)):
    ...

class LP_SDL_AudioStream(ctypes.POINTER(SDL_AudioStream)):
    ...

class LP_LP_SDL_GPUTexture(ctypes.POINTER(ctypes.POINTER(SDL_GPUTexture))):
    ...

class LP_c_long(ctypes.POINTER(ctypes.c_long)):
    ...

class LP_SDL_Point(ctypes.POINTER(SDL_Point)):
    ...

class LP_SDL_GPUBufferLocation(ctypes.POINTER(SDL_GPUBufferLocation)):
    ...

class LP_IMG_Animation(ctypes.POINTER(IMG_Animation)):
    ...

class LP_TTF_SubString(ctypes.POINTER(TTF_SubString)):
    ...

class LP_SDL_hid_device(ctypes.POINTER(SDL_hid_device)):
    ...

class LP_SDL_GPUShader(ctypes.POINTER(SDL_GPUShader)):
    ...

class LP_SDL_GPUSamplerCreateInfo(ctypes.POINTER(SDL_GPUSamplerCreateInfo)):
    ...

class LP_SDL_GPUFence(ctypes.POINTER(SDL_GPUFence)):
    ...

class LP_SDL_AsyncIO(ctypes.POINTER(SDL_AsyncIO)):
    ...

class LP_SDL_GPUBuffer(ctypes.POINTER(SDL_GPUBuffer)):
    ...

class LP_SDL_GPUStorageBufferReadWriteBinding(ctypes.POINTER(SDL_GPUStorageBufferReadWriteBinding)):
    ...

class LP_SDL_SharedObject(ctypes.POINTER(SDL_SharedObject)):
    ...

class LP_c_ulonglong(ctypes.POINTER(ctypes.c_ulonglong)):
    ...

class LP_SDLNet_Address(ctypes.POINTER(SDLNet_Address)):
    ...

class LP_SDLNet_Datagram(ctypes.POINTER(SDLNet_Datagram)):
    ...

class LP_SDL_AssertData(ctypes.POINTER(SDL_AssertData)):
    ...

class LP_SDL_GPUTextureRegion(ctypes.POINTER(SDL_GPUTextureRegion)):
    ...

class LP_SDL_GPUBufferRegion(ctypes.POINTER(SDL_GPUBufferRegion)):
    ...

class LP_SDL_VirtualJoystickDesc(ctypes.POINTER(SDL_VirtualJoystickDesc)):
    ...

class LP_SDL_GPUShaderCreateInfo(ctypes.POINTER(SDL_GPUShaderCreateInfo)):
    ...

class LP_TTF_Text(ctypes.POINTER(TTF_Text)):
    ...

class LP_SDL_GPUTextureCreateInfo(ctypes.POINTER(SDL_GPUTextureCreateInfo)):
    ...

class LP_LP_TTF_SubString(ctypes.POINTER(ctypes.POINTER(TTF_SubString))):
    ...

class LP_SDL_GPUTransferBufferCreateInfo(ctypes.POINTER(SDL_GPUTransferBufferCreateInfo)):
    ...

class LP_SDL_Condition(ctypes.POINTER(SDL_Condition)):
    ...

class LP_c_bool(ctypes.POINTER(ctypes.c_bool)):
    ...

class LP_SDL_GPUDepthStencilTargetInfo(ctypes.POINTER(SDL_GPUDepthStencilTargetInfo)):
    ...

class LP_SDL_Storage(ctypes.POINTER(SDL_Storage)):
    ...

class LP_LP_SDL_CameraSpec(ctypes.POINTER(ctypes.POINTER(SDL_CameraSpec))):
    ...

class LP_SDL_DialogFileFilter(ctypes.POINTER(SDL_DialogFileFilter)):
    ...

class LP_SDL_GPURenderPass(ctypes.POINTER(SDL_GPURenderPass)):
    ...

class LP_SDL_GPUCopyPass(ctypes.POINTER(SDL_GPUCopyPass)):
    ...

class LP_SDL_GPUTextureSamplerBinding(ctypes.POINTER(SDL_GPUTextureSamplerBinding)):
    ...

class LP_c_double(ctypes.POINTER(ctypes.c_double)):
    ...

class LP_SDL_AtomicU32(ctypes.POINTER(SDL_AtomicU32)):
    ...

class LP_LP_SDL_AudioStream(ctypes.POINTER(ctypes.POINTER(SDL_AudioStream))):
    ...

class LP_c_float(ctypes.POINTER(ctypes.c_float)):
    ...

class LP_SDL_Thread(ctypes.POINTER(SDL_Thread)):
    ...

class LP_LP_c_ubyte(ctypes.POINTER(ctypes.POINTER(ctypes.c_ubyte))):
    ...

class LP_Mix_Chunk(ctypes.POINTER(Mix_Chunk)):
    ...

class LP_SDL_GPUTexture(ctypes.POINTER(SDL_GPUTexture)):
    ...

class LP_SDL_HapticEffect(ctypes.POINTER(SDL_HapticEffect)):
    ...

class LP_SDL_PathInfo(ctypes.POINTER(SDL_PathInfo)):
    ...

class LP_LP_SDL_DisplayMode(ctypes.POINTER(ctypes.POINTER(SDL_DisplayMode))):
    ...

class LP_SDL_Renderer(ctypes.POINTER(SDL_Renderer)):
    ...

class LP_SDL_Joystick(ctypes.POINTER(SDL_Joystick)):
    ...

class LP_TTF_TextEngine(ctypes.POINTER(TTF_TextEngine)):
    ...

class LP_SDL_Process(ctypes.POINTER(SDL_Process)):
    ...

class LP_SDL_GPUBufferCreateInfo(ctypes.POINTER(SDL_GPUBufferCreateInfo)):
    ...

class LP_LP_SDL_Surface(ctypes.POINTER(ctypes.POINTER(SDL_Surface))):
    ...

class LP_SDL_GLContextState(ctypes.POINTER(SDL_GLContextState)):
    ...

class LP_SDL_FColor(ctypes.POINTER(SDL_FColor)):
    ...

class LP_TTF_Font(ctypes.POINTER(TTF_Font)):
    ...

class LP_SDL_Texture(ctypes.POINTER(SDL_Texture)):
    ...

class LP_SDL_Sensor(ctypes.POINTER(SDL_Sensor)):
    ...

class LP_c_ulong(ctypes.POINTER(ctypes.c_ulong)):
    ...

class LP_SDL_AsyncIOOutcome(ctypes.POINTER(SDL_AsyncIOOutcome)):
    ...

class LP_SDL_MessageBoxData(ctypes.POINTER(SDL_MessageBoxData)):
    ...

class LP_SDL_AudioSpec(ctypes.POINTER(SDL_AudioSpec)):
    ...

class LP_SDL_GPUColorTargetInfo(ctypes.POINTER(SDL_GPUColorTargetInfo)):
    ...

class LP_c_void_p(ctypes.POINTER(ctypes.c_void_p)):
    ...

class LP_LP_SDLNet_StreamSocket(ctypes.POINTER(ctypes.POINTER(SDLNet_StreamSocket))):
    ...

class LP_SDL_DateTime(ctypes.POINTER(SDL_DateTime)):
    ...

class LP_c_longlong(ctypes.POINTER(ctypes.c_longlong)):
    ...

class LP_SDL_GPUViewport(ctypes.POINTER(SDL_GPUViewport)):
    ...

class LP_SDLNet_DatagramSocket(ctypes.POINTER(SDLNet_DatagramSocket)):
    ...

class LP_RTF_Context(ctypes.POINTER(RTF_Context)):
    ...

class LP_SDL_Camera(ctypes.POINTER(SDL_Camera)):
    ...

class LP_SDL_DisplayMode(ctypes.POINTER(SDL_DisplayMode)):
    ...

class LP_SDL_GPUTextureLocation(ctypes.POINTER(SDL_GPUTextureLocation)):
    ...

class LP_SDL_GPUTransferBufferLocation(ctypes.POINTER(SDL_GPUTransferBufferLocation)):
    ...

class LP_SDL_GPUComputePipelineCreateInfo(ctypes.POINTER(SDL_GPUComputePipelineCreateInfo)):
    ...

class LP_SDL_GPUSampler(ctypes.POINTER(SDL_GPUSampler)):
    ...

class LP_LP_SDL_Window(ctypes.POINTER(ctypes.POINTER(SDL_Window))):
    ...

class LP_SDL_Mutex(ctypes.POINTER(SDL_Mutex)):
    ...

class LP_SDL_GPUDevice(ctypes.POINTER(SDL_GPUDevice)):
    ...

class LP_SDL_Gamepad(ctypes.POINTER(SDL_Gamepad)):
    ...

class LP_SDL_Haptic(ctypes.POINTER(SDL_Haptic)):
    ...

class LP_VkAllocationCallbacks(ctypes.POINTER(VkAllocationCallbacks)):
    ...

class LP_SDL_GPUGraphicsPipelineCreateInfo(ctypes.POINTER(SDL_GPUGraphicsPipelineCreateInfo)):
    ...

class LP_SDL_Vertex(ctypes.POINTER(SDL_Vertex)):
    ...

class LP_SDL_Window(ctypes.POINTER(SDL_Window)):
    ...

class LP_SDL_GPUStorageTextureReadWriteBinding(ctypes.POINTER(SDL_GPUStorageTextureReadWriteBinding)):
    ...

class LP_SDL_GPUComputePass(ctypes.POINTER(SDL_GPUComputePass)):
    ...

class LP_LP_SDL_Finger(ctypes.POINTER(ctypes.POINTER(SDL_Finger))):
    ...

class LP_SDL_Color(ctypes.POINTER(SDL_Color)):
    ...

class LP_SDL_GPUCommandBuffer(ctypes.POINTER(SDL_GPUCommandBuffer)):
    ...

class LP_LP_SDL_Renderer(ctypes.POINTER(ctypes.POINTER(SDL_Renderer))):
    ...

class LP_c_char_p(ctypes.POINTER(ctypes.c_char_p)):
    ...

class LP_TTF_GPUAtlasDrawSequence(ctypes.POINTER(TTF_GPUAtlasDrawSequence)):
    ...

class LP_SDL_FPoint(ctypes.POINTER(SDL_FPoint)):
    ...

class LP_LP_SDL_GPUFence(ctypes.POINTER(ctypes.POINTER(SDL_GPUFence))):
    ...

class LP_SDL_AtomicInt(ctypes.POINTER(SDL_AtomicInt)):
    ...

class LP_c_ushort(ctypes.POINTER(ctypes.c_ushort)):
    ...

class LP_SDL_GPUTransferBuffer(ctypes.POINTER(SDL_GPUTransferBuffer)):
    ...

class LP_LP_SDLNet_Address(ctypes.POINTER(ctypes.POINTER(SDLNet_Address))):
    ...

class LP_SDL_Cursor(ctypes.POINTER(SDL_Cursor)):
    ...

class LP_SDL_Surface(ctypes.POINTER(SDL_Surface)):
    ...

class LP_c_short(ctypes.POINTER(ctypes.c_short)):
    ...

class LP_SDL_InitState(ctypes.POINTER(SDL_InitState)):
    ...

class LP_SDL_PixelFormatDetails(ctypes.POINTER(SDL_PixelFormatDetails)):
    ...

class LP_LP_SDL_GamepadBinding(ctypes.POINTER(ctypes.POINTER(SDL_GamepadBinding))):
    ...

class LP_LP_SDLNet_Datagram(ctypes.POINTER(ctypes.POINTER(SDLNet_Datagram))):
    ...

class LP_SDL_AsyncIOQueue(ctypes.POINTER(SDL_AsyncIOQueue)):
    ...

class LP_c_byte(ctypes.POINTER(ctypes.c_byte)):
    ...

# SDL3.dll implementation.

def SDL_ReportAssertion(_0: LP_SDL_AssertData, _1: ctypes.c_char_p, _2: ctypes.c_char_p, _3: ctypes.c_long) -> ctypes.c_long:
    """
    Never call this directly.
    https://wiki.libsdl.org/SDL3/SDL_ReportAssertion
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReportAssertion(_0, _1, _2, _3)

def SDL_SetAssertionHandler(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> None:
    """
    Set an application-defined assertion handler.
    https://wiki.libsdl.org/SDL3/SDL_SetAssertionHandler
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAssertionHandler(_0, _1)

def SDL_GetDefaultAssertionHandler() -> ctypes._Pointer:
    """
    Get the default assertion handler.
    https://wiki.libsdl.org/SDL3/SDL_GetDefaultAssertionHandler
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDefaultAssertionHandler()

def SDL_GetAssertionHandler(_0: LP_c_void_p) -> ctypes._Pointer:
    """
    Get the current assertion handler.
    https://wiki.libsdl.org/SDL3/SDL_GetAssertionHandler
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAssertionHandler(_0)

def SDL_GetAssertionReport() -> LP_SDL_AssertData:
    """
    Get a list of all assertion failures.
    https://wiki.libsdl.org/SDL3/SDL_GetAssertionReport
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAssertionReport()

def SDL_ResetAssertionReport() -> None:
    """
    Clear the list of all assertion failures.
    https://wiki.libsdl.org/SDL3/SDL_ResetAssertionReport
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ResetAssertionReport()

def SDL_AsyncIOFromFile(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> LP_SDL_AsyncIO:
    """
    Use this function to create a new [SDL_AsyncIO](https://wiki.libsdl.org/SDL3/SDL_AsyncIO) object for reading from and/or writing to a named file.
    https://wiki.libsdl.org/SDL3/SDL_AsyncIOFromFile
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AsyncIOFromFile(_0, _1)

def SDL_GetAsyncIOSize(_0: LP_SDL_AsyncIO) -> ctypes.c_longlong:
    """
    Use this function to get the size of the data stream in an [SDL_AsyncIO](https://wiki.libsdl.org/SDL3/SDL_AsyncIO).
    https://wiki.libsdl.org/SDL3/SDL_GetAsyncIOSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAsyncIOSize(_0)

def SDL_ReadAsyncIO(_0: LP_SDL_AsyncIO, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong, _3: ctypes.c_ulonglong, _4: LP_SDL_AsyncIOQueue, _5: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Start an async read.
    https://wiki.libsdl.org/SDL3/SDL_ReadAsyncIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadAsyncIO(_0, _1, _2, _3, _4, _5)

def SDL_WriteAsyncIO(_0: LP_SDL_AsyncIO, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong, _3: ctypes.c_ulonglong, _4: LP_SDL_AsyncIOQueue, _5: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Start an async write.
    https://wiki.libsdl.org/SDL3/SDL_WriteAsyncIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteAsyncIO(_0, _1, _2, _3, _4, _5)

def SDL_CloseAsyncIO(_0: LP_SDL_AsyncIO, _1: ctypes.c_bool, _2: LP_SDL_AsyncIOQueue, _3: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Close and free any allocated resources for an async I/O object.
    https://wiki.libsdl.org/SDL3/SDL_CloseAsyncIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CloseAsyncIO(_0, _1, _2, _3)

def SDL_CreateAsyncIOQueue() -> LP_SDL_AsyncIOQueue:
    """
    Create a task queue for tracking multiple I/O operations.
    https://wiki.libsdl.org/SDL3/SDL_CreateAsyncIOQueue
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateAsyncIOQueue()

def SDL_DestroyAsyncIOQueue(_0: LP_SDL_AsyncIOQueue) -> None:
    """
    Destroy a previously-created async I/O task queue.
    https://wiki.libsdl.org/SDL3/SDL_DestroyAsyncIOQueue
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyAsyncIOQueue(_0)

def SDL_GetAsyncIOResult(_0: LP_SDL_AsyncIOQueue, _1: LP_SDL_AsyncIOOutcome) -> ctypes.c_bool:
    """
    Query an async I/O task queue for completed tasks.
    https://wiki.libsdl.org/SDL3/SDL_GetAsyncIOResult
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAsyncIOResult(_0, _1)

def SDL_WaitAsyncIOResult(_0: LP_SDL_AsyncIOQueue, _1: LP_SDL_AsyncIOOutcome, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Block until an async I/O task queue has a completed task.
    https://wiki.libsdl.org/SDL3/SDL_WaitAsyncIOResult
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitAsyncIOResult(_0, _1, _2)

def SDL_SignalAsyncIOQueue(_0: LP_SDL_AsyncIOQueue) -> None:
    """
    Wake up any threads that are blocking in [SDL_WaitAsyncIOResult](https://wiki.libsdl.org/SDL3/SDL_WaitAsyncIOResult)().
    https://wiki.libsdl.org/SDL3/SDL_SignalAsyncIOQueue
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SignalAsyncIOQueue(_0)

def SDL_LoadFileAsync(_0: ctypes.c_char_p, _1: LP_SDL_AsyncIOQueue, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Load all the data from a file path, asynchronously.
    https://wiki.libsdl.org/SDL3/SDL_LoadFileAsync
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LoadFileAsync(_0, _1, _2)

def SDL_TryLockSpinlock(_0: LP_c_long) -> ctypes.c_bool:
    """
    Try to lock a spin lock by setting it to a non-zero value.
    https://wiki.libsdl.org/SDL3/SDL_TryLockSpinlock
    """
    return SDL_GET_DLL(SDL_DLL).SDL_TryLockSpinlock(_0)

def SDL_LockSpinlock(_0: LP_c_long) -> None:
    """
    Lock a spin lock by setting it to a non-zero value.
    https://wiki.libsdl.org/SDL3/SDL_LockSpinlock
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LockSpinlock(_0)

def SDL_UnlockSpinlock(_0: LP_c_long) -> None:
    """
    Unlock a spin lock by setting it to 0.
    https://wiki.libsdl.org/SDL3/SDL_UnlockSpinlock
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnlockSpinlock(_0)

def SDL_MemoryBarrierReleaseFunction() -> None:
    """
    Insert a memory release barrier.
    https://wiki.libsdl.org/SDL3/SDL_MemoryBarrierReleaseFunction
    """
    return SDL_GET_DLL(SDL_DLL).SDL_MemoryBarrierReleaseFunction()

def SDL_MemoryBarrierAcquireFunction() -> None:
    """
    Insert a memory acquire barrier.
    https://wiki.libsdl.org/SDL3/SDL_MemoryBarrierAcquireFunction
    """
    return SDL_GET_DLL(SDL_DLL).SDL_MemoryBarrierAcquireFunction()

def SDL_CompareAndSwapAtomicInt(_0: LP_SDL_AtomicInt, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Set an atomic variable to a new value if it is currently an old value.
    https://wiki.libsdl.org/SDL3/SDL_CompareAndSwapAtomicInt
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CompareAndSwapAtomicInt(_0, _1, _2)

def SDL_SetAtomicInt(_0: LP_SDL_AtomicInt, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Set an atomic variable to a value.
    https://wiki.libsdl.org/SDL3/SDL_SetAtomicInt
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAtomicInt(_0, _1)

def SDL_GetAtomicInt(_0: LP_SDL_AtomicInt) -> ctypes.c_long:
    """
    Get the value of an atomic variable.
    https://wiki.libsdl.org/SDL3/SDL_GetAtomicInt
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAtomicInt(_0)

def SDL_AddAtomicInt(_0: LP_SDL_AtomicInt, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Add to an atomic variable.
    https://wiki.libsdl.org/SDL3/SDL_AddAtomicInt
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AddAtomicInt(_0, _1)

def SDL_CompareAndSwapAtomicU32(_0: LP_SDL_AtomicU32, _1: ctypes.c_ulong, _2: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Set an atomic variable to a new value if it is currently an old value.
    https://wiki.libsdl.org/SDL3/SDL_CompareAndSwapAtomicU32
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CompareAndSwapAtomicU32(_0, _1, _2)

def SDL_SetAtomicU32(_0: LP_SDL_AtomicU32, _1: ctypes.c_ulong) -> ctypes.c_ulong:
    """
    Set an atomic variable to a value.
    https://wiki.libsdl.org/SDL3/SDL_SetAtomicU32
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAtomicU32(_0, _1)

def SDL_GetAtomicU32(_0: LP_SDL_AtomicU32) -> ctypes.c_ulong:
    """
    Get the value of an atomic variable.
    https://wiki.libsdl.org/SDL3/SDL_GetAtomicU32
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAtomicU32(_0)

def SDL_CompareAndSwapAtomicPointer(_0: LP_c_void_p, _1: ctypes.c_void_p, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Set a pointer to a new value if it is currently an old value.
    https://wiki.libsdl.org/SDL3/SDL_CompareAndSwapAtomicPointer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CompareAndSwapAtomicPointer(_0, _1, _2)

def SDL_SetAtomicPointer(_0: LP_c_void_p, _1: ctypes.c_void_p) -> ctypes.c_void_p:
    """
    Set a pointer to a value atomically.
    https://wiki.libsdl.org/SDL3/SDL_SetAtomicPointer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAtomicPointer(_0, _1)

def SDL_GetAtomicPointer(_0: LP_c_void_p) -> ctypes.c_void_p:
    """
    Get the value of a pointer atomically.
    https://wiki.libsdl.org/SDL3/SDL_GetAtomicPointer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAtomicPointer(_0)

def SDL_GetGlobalProperties() -> ctypes.c_ulong:
    """
    Get the global SDL properties.
    https://wiki.libsdl.org/SDL3/SDL_GetGlobalProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGlobalProperties()

def SDL_CreateProperties() -> ctypes.c_ulong:
    """
    Create a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_CreateProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateProperties()

def SDL_CopyProperties(_0: ctypes.c_ulong, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Copy a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_CopyProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CopyProperties(_0, _1)

def SDL_LockProperties(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Lock a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_LockProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LockProperties(_0)

def SDL_UnlockProperties(_0: ctypes.c_ulong) -> None:
    """
    Unlock a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_UnlockProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnlockProperties(_0)

def SDL_SetPointerPropertyWithCleanup(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_void_p, _3: ctypes._Pointer, _4: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Set a pointer property in a group of properties with a cleanup function that is called when the property is deleted.
    https://wiki.libsdl.org/SDL3/SDL_SetPointerPropertyWithCleanup
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetPointerPropertyWithCleanup(_0, _1, _2, _3, _4)

def SDL_SetPointerProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Set a pointer property in a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_SetPointerProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetPointerProperty(_0, _1, _2)

def SDL_SetStringProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Set a string property in a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_SetStringProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetStringProperty(_0, _1, _2)

def SDL_SetNumberProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_longlong) -> ctypes.c_bool:
    """
    Set an integer property in a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_SetNumberProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetNumberProperty(_0, _1, _2)

def SDL_SetFloatProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_float) -> ctypes.c_bool:
    """
    Set a floating point property in a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_SetFloatProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetFloatProperty(_0, _1, _2)

def SDL_SetBooleanProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set a boolean property in a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_SetBooleanProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetBooleanProperty(_0, _1, _2)

def SDL_HasProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Return whether a property exists in a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_HasProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasProperty(_0, _1)

def SDL_GetPropertyType(_0: ctypes.c_ulong, _1: ctypes.c_char_p) -> ctypes.c_long:
    """
    Get the type of a property in a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_GetPropertyType
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPropertyType(_0, _1)

def SDL_GetPointerProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_void_p) -> ctypes.c_void_p:
    """
    Get a pointer property from a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_GetPointerProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPointerProperty(_0, _1, _2)

def SDL_GetStringProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Get a string property from a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_GetStringProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetStringProperty(_0, _1, _2)

def SDL_GetNumberProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_longlong) -> ctypes.c_longlong:
    """
    Get a number property from a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_GetNumberProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumberProperty(_0, _1, _2)

def SDL_GetFloatProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_float) -> ctypes.c_float:
    """
    Get a floating point property from a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_GetFloatProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetFloatProperty(_0, _1, _2)

def SDL_GetBooleanProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_bool) -> ctypes.c_bool:
    """
    Get a boolean property from a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_GetBooleanProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetBooleanProperty(_0, _1, _2)

def SDL_ClearProperty(_0: ctypes.c_ulong, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Clear a property from a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_ClearProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ClearProperty(_0, _1)

def SDL_EnumerateProperties(_0: ctypes.c_ulong, _1: ctypes._Pointer, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Enumerate the properties contained in a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_EnumerateProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EnumerateProperties(_0, _1, _2)

def SDL_DestroyProperties(_0: ctypes.c_ulong) -> None:
    """
    Destroy a group of properties.
    https://wiki.libsdl.org/SDL3/SDL_DestroyProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyProperties(_0)

def SDL_IOFromFile(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> LP_SDL_IOStream:
    """
    Use this function to create a new [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) structure for reading from and/or writing to a named file.
    https://wiki.libsdl.org/SDL3/SDL_IOFromFile
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IOFromFile(_0, _1)

def SDL_IOFromMem(_0: ctypes.c_void_p, _1: ctypes.c_ulonglong) -> LP_SDL_IOStream:
    """
    Use this function to prepare a read-write memory buffer for use with [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_IOFromMem
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IOFromMem(_0, _1)

def SDL_IOFromConstMem(_0: ctypes.c_void_p, _1: ctypes.c_ulonglong) -> LP_SDL_IOStream:
    """
    Use this function to prepare a read-only memory buffer for use with [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_IOFromConstMem
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IOFromConstMem(_0, _1)

def SDL_IOFromDynamicMem() -> LP_SDL_IOStream:
    """
    Use this function to create an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) that is backed by dynamically allocated memory.
    https://wiki.libsdl.org/SDL3/SDL_IOFromDynamicMem
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IOFromDynamicMem()

def SDL_OpenIO(_0: LP_SDL_IOStreamInterface, _1: ctypes.c_void_p) -> LP_SDL_IOStream:
    """
    Create a custom [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_OpenIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenIO(_0, _1)

def SDL_CloseIO(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Close and free an allocated [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) structure.
    https://wiki.libsdl.org/SDL3/SDL_CloseIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CloseIO(_0)

def SDL_GetIOProperties(_0: LP_SDL_IOStream) -> ctypes.c_ulong:
    """
    Get the properties associated with an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_GetIOProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetIOProperties(_0)

def SDL_GetIOStatus(_0: LP_SDL_IOStream) -> ctypes.c_ulong:
    """
    Query the stream status of an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_GetIOStatus
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetIOStatus(_0)

def SDL_GetIOSize(_0: LP_SDL_IOStream) -> ctypes.c_longlong:
    """
    Use this function to get the size of the data stream in an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_GetIOSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetIOSize(_0)

def SDL_SeekIO(_0: LP_SDL_IOStream, _1: ctypes.c_longlong, _2: ctypes.c_ulong) -> ctypes.c_longlong:
    """
    Seek within an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) data stream.
    https://wiki.libsdl.org/SDL3/SDL_SeekIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SeekIO(_0, _1, _2)

def SDL_TellIO(_0: LP_SDL_IOStream) -> ctypes.c_longlong:
    """
    Determine the current read/write offset in an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) data stream.
    https://wiki.libsdl.org/SDL3/SDL_TellIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_TellIO(_0)

def SDL_ReadIO(_0: LP_SDL_IOStream, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong) -> ctypes.c_ulonglong:
    """
    Read from a data source.
    https://wiki.libsdl.org/SDL3/SDL_ReadIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadIO(_0, _1, _2)

def SDL_WriteIO(_0: LP_SDL_IOStream, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong) -> ctypes.c_ulonglong:
    """
    Write to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) data stream.
    https://wiki.libsdl.org/SDL3/SDL_WriteIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteIO(_0, _1, _2)

def SDL_IOprintf(_0: LP_SDL_IOStream, _1: ctypes.c_char_p) -> ctypes.c_ulonglong:
    """
    Print to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) data stream.
    https://wiki.libsdl.org/SDL3/SDL_IOprintf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IOprintf(_0, _1)

def SDL_IOvprintf(_0: LP_SDL_IOStream, _1: ctypes.c_char_p, _2: ctypes.c_void_p) -> ctypes.c_ulonglong:
    """
    Print to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) data stream.
    https://wiki.libsdl.org/SDL3/SDL_IOvprintf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IOvprintf(_0, _1, _2)

def SDL_FlushIO(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Flush any buffered data in the stream.
    https://wiki.libsdl.org/SDL3/SDL_FlushIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_FlushIO(_0)

def SDL_LoadFile_IO(_0: LP_SDL_IOStream, _1: LP_c_ulonglong, _2: ctypes.c_bool) -> ctypes.c_void_p:
    """
    Load all the data from an SDL data stream.
    https://wiki.libsdl.org/SDL3/SDL_LoadFile_IO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LoadFile_IO(_0, _1, _2)

def SDL_LoadFile(_0: ctypes.c_char_p, _1: LP_c_ulonglong) -> ctypes.c_void_p:
    """
    Load all the data from a file path.
    https://wiki.libsdl.org/SDL3/SDL_LoadFile
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LoadFile(_0, _1)

def SDL_SaveFile_IO(_0: LP_SDL_IOStream, _1: LP_c_void_p, _2: ctypes.c_ulonglong, _3: ctypes.c_bool) -> ctypes.c_bool:
    """
    Save all the data into an SDL data stream.
    https://wiki.libsdl.org/SDL3/SDL_SaveFile_IO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SaveFile_IO(_0, _1, _2, _3)

def SDL_SaveFile(_0: ctypes.c_char_p, _1: LP_c_void_p, _2: ctypes.c_ulonglong) -> ctypes.c_bool:
    """
    Save all the data into a file path.
    https://wiki.libsdl.org/SDL3/SDL_SaveFile
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SaveFile(_0, _1, _2)

def SDL_ReadU8(_0: LP_SDL_IOStream, _1: LP_c_ubyte) -> ctypes.c_bool:
    """
    Use this function to read a byte from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_ReadU8
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadU8(_0, _1)

def SDL_ReadS8(_0: LP_SDL_IOStream, _1: LP_c_byte) -> ctypes.c_bool:
    """
    Use this function to read a signed byte from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_ReadS8
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadS8(_0, _1)

def SDL_ReadU16LE(_0: LP_SDL_IOStream, _1: LP_c_ushort) -> ctypes.c_bool:
    """
    Use this function to read 16 bits of little-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadU16LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadU16LE(_0, _1)

def SDL_ReadS16LE(_0: LP_SDL_IOStream, _1: LP_c_short) -> ctypes.c_bool:
    """
    Use this function to read 16 bits of little-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadS16LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadS16LE(_0, _1)

def SDL_ReadU16BE(_0: LP_SDL_IOStream, _1: LP_c_ushort) -> ctypes.c_bool:
    """
    Use this function to read 16 bits of big-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadU16BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadU16BE(_0, _1)

def SDL_ReadS16BE(_0: LP_SDL_IOStream, _1: LP_c_short) -> ctypes.c_bool:
    """
    Use this function to read 16 bits of big-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadS16BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadS16BE(_0, _1)

def SDL_ReadU32LE(_0: LP_SDL_IOStream, _1: LP_c_ulong) -> ctypes.c_bool:
    """
    Use this function to read 32 bits of little-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadU32LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadU32LE(_0, _1)

def SDL_ReadS32LE(_0: LP_SDL_IOStream, _1: LP_c_long) -> ctypes.c_bool:
    """
    Use this function to read 32 bits of little-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadS32LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadS32LE(_0, _1)

def SDL_ReadU32BE(_0: LP_SDL_IOStream, _1: LP_c_ulong) -> ctypes.c_bool:
    """
    Use this function to read 32 bits of big-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadU32BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadU32BE(_0, _1)

def SDL_ReadS32BE(_0: LP_SDL_IOStream, _1: LP_c_long) -> ctypes.c_bool:
    """
    Use this function to read 32 bits of big-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadS32BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadS32BE(_0, _1)

def SDL_ReadU64LE(_0: LP_SDL_IOStream, _1: LP_c_ulonglong) -> ctypes.c_bool:
    """
    Use this function to read 64 bits of little-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadU64LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadU64LE(_0, _1)

def SDL_ReadS64LE(_0: LP_SDL_IOStream, _1: LP_c_longlong) -> ctypes.c_bool:
    """
    Use this function to read 64 bits of little-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadS64LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadS64LE(_0, _1)

def SDL_ReadU64BE(_0: LP_SDL_IOStream, _1: LP_c_ulonglong) -> ctypes.c_bool:
    """
    Use this function to read 64 bits of big-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadU64BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadU64BE(_0, _1)

def SDL_ReadS64BE(_0: LP_SDL_IOStream, _1: LP_c_longlong) -> ctypes.c_bool:
    """
    Use this function to read 64 bits of big-endian data from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) and return in native format.
    https://wiki.libsdl.org/SDL3/SDL_ReadS64BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadS64BE(_0, _1)

def SDL_WriteU8(_0: LP_SDL_IOStream, _1: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Use this function to write a byte to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_WriteU8
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteU8(_0, _1)

def SDL_WriteS8(_0: LP_SDL_IOStream, _1: ctypes.c_byte) -> ctypes.c_bool:
    """
    Use this function to write a signed byte to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_WriteS8
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteS8(_0, _1)

def SDL_WriteU16LE(_0: LP_SDL_IOStream, _1: ctypes.c_ushort) -> ctypes.c_bool:
    """
    Use this function to write 16 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as little-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteU16LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteU16LE(_0, _1)

def SDL_WriteS16LE(_0: LP_SDL_IOStream, _1: ctypes.c_short) -> ctypes.c_bool:
    """
    Use this function to write 16 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as little-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteS16LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteS16LE(_0, _1)

def SDL_WriteU16BE(_0: LP_SDL_IOStream, _1: ctypes.c_ushort) -> ctypes.c_bool:
    """
    Use this function to write 16 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as big-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteU16BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteU16BE(_0, _1)

def SDL_WriteS16BE(_0: LP_SDL_IOStream, _1: ctypes.c_short) -> ctypes.c_bool:
    """
    Use this function to write 16 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as big-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteS16BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteS16BE(_0, _1)

def SDL_WriteU32LE(_0: LP_SDL_IOStream, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Use this function to write 32 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as little-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteU32LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteU32LE(_0, _1)

def SDL_WriteS32LE(_0: LP_SDL_IOStream, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Use this function to write 32 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as little-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteS32LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteS32LE(_0, _1)

def SDL_WriteU32BE(_0: LP_SDL_IOStream, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Use this function to write 32 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as big-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteU32BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteU32BE(_0, _1)

def SDL_WriteS32BE(_0: LP_SDL_IOStream, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Use this function to write 32 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as big-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteS32BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteS32BE(_0, _1)

def SDL_WriteU64LE(_0: LP_SDL_IOStream, _1: ctypes.c_ulonglong) -> ctypes.c_bool:
    """
    Use this function to write 64 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as little-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteU64LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteU64LE(_0, _1)

def SDL_WriteS64LE(_0: LP_SDL_IOStream, _1: ctypes.c_longlong) -> ctypes.c_bool:
    """
    Use this function to write 64 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as little-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteS64LE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteS64LE(_0, _1)

def SDL_WriteU64BE(_0: LP_SDL_IOStream, _1: ctypes.c_ulonglong) -> ctypes.c_bool:
    """
    Use this function to write 64 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as big-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteU64BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteU64BE(_0, _1)

def SDL_WriteS64BE(_0: LP_SDL_IOStream, _1: ctypes.c_longlong) -> ctypes.c_bool:
    """
    Use this function to write 64 bits in native format to an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) as big-endian data.
    https://wiki.libsdl.org/SDL3/SDL_WriteS64BE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteS64BE(_0, _1)

def SDL_GetNumAudioDrivers() -> ctypes.c_long:
    """
    Use this function to get the number of built-in audio drivers.
    https://wiki.libsdl.org/SDL3/SDL_GetNumAudioDrivers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumAudioDrivers()

def SDL_GetAudioDriver(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Use this function to get the name of a built in audio driver.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioDriver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioDriver(_0)

def SDL_GetCurrentAudioDriver() -> ctypes.c_char_p:
    """
    Get the name of the current audio driver.
    https://wiki.libsdl.org/SDL3/SDL_GetCurrentAudioDriver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCurrentAudioDriver()

def SDL_GetAudioPlaybackDevices(_0: LP_c_long) -> LP_c_ulong:
    """
    Get a list of currently-connected audio playback devices.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioPlaybackDevices
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioPlaybackDevices(_0)

def SDL_GetAudioRecordingDevices(_0: LP_c_long) -> LP_c_ulong:
    """
    Get a list of currently-connected audio recording devices.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioRecordingDevices
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioRecordingDevices(_0)

def SDL_GetAudioDeviceName(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the human-readable name of a specific audio device.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioDeviceName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioDeviceName(_0)

def SDL_GetAudioDeviceFormat(_0: ctypes.c_ulong, _1: LP_SDL_AudioSpec, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the current audio format of a specific audio device.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioDeviceFormat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioDeviceFormat(_0, _1, _2)

def SDL_GetAudioDeviceChannelMap(_0: ctypes.c_ulong, _1: LP_c_long) -> LP_c_long:
    """
    Get the current channel map of an audio device.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioDeviceChannelMap
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioDeviceChannelMap(_0, _1)

def SDL_OpenAudioDevice(_0: ctypes.c_ulong, _1: LP_SDL_AudioSpec) -> ctypes.c_ulong:
    """
    Open a specific audio device.
    https://wiki.libsdl.org/SDL3/SDL_OpenAudioDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenAudioDevice(_0, _1)

def SDL_IsAudioDevicePhysical(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Determine if an audio device is physical (instead of logical).
    https://wiki.libsdl.org/SDL3/SDL_IsAudioDevicePhysical
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IsAudioDevicePhysical(_0)

def SDL_IsAudioDevicePlayback(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Determine if an audio device is a playback device (instead of recording).
    https://wiki.libsdl.org/SDL3/SDL_IsAudioDevicePlayback
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IsAudioDevicePlayback(_0)

def SDL_PauseAudioDevice(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Use this function to pause audio playback on a specified device.
    https://wiki.libsdl.org/SDL3/SDL_PauseAudioDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PauseAudioDevice(_0)

def SDL_ResumeAudioDevice(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Use this function to unpause audio playback on a specified device.
    https://wiki.libsdl.org/SDL3/SDL_ResumeAudioDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ResumeAudioDevice(_0)

def SDL_AudioDevicePaused(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Use this function to query if an audio device is paused.
    https://wiki.libsdl.org/SDL3/SDL_AudioDevicePaused
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AudioDevicePaused(_0)

def SDL_GetAudioDeviceGain(_0: ctypes.c_ulong) -> ctypes.c_float:
    """
    Get the gain of an audio device.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioDeviceGain
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioDeviceGain(_0)

def SDL_SetAudioDeviceGain(_0: ctypes.c_ulong, _1: ctypes.c_float) -> ctypes.c_bool:
    """
    Change the gain of an audio device.
    https://wiki.libsdl.org/SDL3/SDL_SetAudioDeviceGain
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAudioDeviceGain(_0, _1)

def SDL_CloseAudioDevice(_0: ctypes.c_ulong) -> None:
    """
    Close a previously-opened audio device.
    https://wiki.libsdl.org/SDL3/SDL_CloseAudioDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CloseAudioDevice(_0)

def SDL_BindAudioStreams(_0: ctypes.c_ulong, _1: LP_LP_SDL_AudioStream, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Bind a list of audio streams to an audio device.
    https://wiki.libsdl.org/SDL3/SDL_BindAudioStreams
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindAudioStreams(_0, _1, _2)

def SDL_BindAudioStream(_0: ctypes.c_ulong, _1: LP_SDL_AudioStream) -> ctypes.c_bool:
    """
    Bind a single audio stream to an audio device.
    https://wiki.libsdl.org/SDL3/SDL_BindAudioStream
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindAudioStream(_0, _1)

def SDL_UnbindAudioStreams(_0: LP_LP_SDL_AudioStream, _1: ctypes.c_long) -> None:
    """
    Unbind a list of audio streams from their audio devices.
    https://wiki.libsdl.org/SDL3/SDL_UnbindAudioStreams
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnbindAudioStreams(_0, _1)

def SDL_UnbindAudioStream(_0: LP_SDL_AudioStream) -> None:
    """
    Unbind a single audio stream from its audio device.
    https://wiki.libsdl.org/SDL3/SDL_UnbindAudioStream
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnbindAudioStream(_0)

def SDL_GetAudioStreamDevice(_0: LP_SDL_AudioStream) -> ctypes.c_ulong:
    """
    Query an audio stream for its currently-bound device.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioStreamDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioStreamDevice(_0)

def SDL_CreateAudioStream(_0: LP_SDL_AudioSpec, _1: LP_SDL_AudioSpec) -> LP_SDL_AudioStream:
    """
    Create a new audio stream.
    https://wiki.libsdl.org/SDL3/SDL_CreateAudioStream
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateAudioStream(_0, _1)

def SDL_GetAudioStreamProperties(_0: LP_SDL_AudioStream) -> ctypes.c_ulong:
    """
    Get the properties associated with an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioStreamProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioStreamProperties(_0)

def SDL_GetAudioStreamFormat(_0: LP_SDL_AudioStream, _1: LP_SDL_AudioSpec, _2: LP_SDL_AudioSpec) -> ctypes.c_bool:
    """
    Query the current format of an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioStreamFormat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioStreamFormat(_0, _1, _2)

def SDL_SetAudioStreamFormat(_0: LP_SDL_AudioStream, _1: LP_SDL_AudioSpec, _2: LP_SDL_AudioSpec) -> ctypes.c_bool:
    """
    Change the input and output formats of an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_SetAudioStreamFormat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAudioStreamFormat(_0, _1, _2)

def SDL_GetAudioStreamFrequencyRatio(_0: LP_SDL_AudioStream) -> ctypes.c_float:
    """
    Get the frequency ratio of an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioStreamFrequencyRatio
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioStreamFrequencyRatio(_0)

def SDL_SetAudioStreamFrequencyRatio(_0: LP_SDL_AudioStream, _1: ctypes.c_float) -> ctypes.c_bool:
    """
    Change the frequency ratio of an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_SetAudioStreamFrequencyRatio
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAudioStreamFrequencyRatio(_0, _1)

def SDL_GetAudioStreamGain(_0: LP_SDL_AudioStream) -> ctypes.c_float:
    """
    Get the gain of an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioStreamGain
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioStreamGain(_0)

def SDL_SetAudioStreamGain(_0: LP_SDL_AudioStream, _1: ctypes.c_float) -> ctypes.c_bool:
    """
    Change the gain of an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_SetAudioStreamGain
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAudioStreamGain(_0, _1)

def SDL_GetAudioStreamInputChannelMap(_0: LP_SDL_AudioStream, _1: LP_c_long) -> LP_c_long:
    """
    Get the current input channel map of an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioStreamInputChannelMap
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioStreamInputChannelMap(_0, _1)

def SDL_GetAudioStreamOutputChannelMap(_0: LP_SDL_AudioStream, _1: LP_c_long) -> LP_c_long:
    """
    Get the current output channel map of an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioStreamOutputChannelMap
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioStreamOutputChannelMap(_0, _1)

def SDL_SetAudioStreamInputChannelMap(_0: LP_SDL_AudioStream, _1: LP_c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the current input channel map of an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_SetAudioStreamInputChannelMap
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAudioStreamInputChannelMap(_0, _1, _2)

def SDL_SetAudioStreamOutputChannelMap(_0: LP_SDL_AudioStream, _1: LP_c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the current output channel map of an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_SetAudioStreamOutputChannelMap
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAudioStreamOutputChannelMap(_0, _1, _2)

def SDL_PutAudioStreamData(_0: LP_SDL_AudioStream, _1: ctypes.c_void_p, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Add data to the stream.
    https://wiki.libsdl.org/SDL3/SDL_PutAudioStreamData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PutAudioStreamData(_0, _1, _2)

def SDL_GetAudioStreamData(_0: LP_SDL_AudioStream, _1: ctypes.c_void_p, _2: ctypes.c_long) -> ctypes.c_long:
    """
    Get converted/resampled data from the stream.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioStreamData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioStreamData(_0, _1, _2)

def SDL_GetAudioStreamAvailable(_0: LP_SDL_AudioStream) -> ctypes.c_long:
    """
    Get the number of converted/resampled bytes available.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioStreamAvailable
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioStreamAvailable(_0)

def SDL_GetAudioStreamQueued(_0: LP_SDL_AudioStream) -> ctypes.c_long:
    """
    Get the number of bytes currently queued.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioStreamQueued
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioStreamQueued(_0)

def SDL_FlushAudioStream(_0: LP_SDL_AudioStream) -> ctypes.c_bool:
    """
    Tell the stream that you're done sending data, and anything being buffered should be converted/resampled and made available immediately.
    https://wiki.libsdl.org/SDL3/SDL_FlushAudioStream
    """
    return SDL_GET_DLL(SDL_DLL).SDL_FlushAudioStream(_0)

def SDL_ClearAudioStream(_0: LP_SDL_AudioStream) -> ctypes.c_bool:
    """
    Clear any pending data in the stream.
    https://wiki.libsdl.org/SDL3/SDL_ClearAudioStream
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ClearAudioStream(_0)

def SDL_PauseAudioStreamDevice(_0: LP_SDL_AudioStream) -> ctypes.c_bool:
    """
    Use this function to pause audio playback on the audio device associated with an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_PauseAudioStreamDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PauseAudioStreamDevice(_0)

def SDL_ResumeAudioStreamDevice(_0: LP_SDL_AudioStream) -> ctypes.c_bool:
    """
    Use this function to unpause audio playback on the audio device associated with an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_ResumeAudioStreamDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ResumeAudioStreamDevice(_0)

def SDL_LockAudioStream(_0: LP_SDL_AudioStream) -> ctypes.c_bool:
    """
    Lock an audio stream for serialized access.
    https://wiki.libsdl.org/SDL3/SDL_LockAudioStream
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LockAudioStream(_0)

def SDL_UnlockAudioStream(_0: LP_SDL_AudioStream) -> ctypes.c_bool:
    """
    Unlock an audio stream for serialized access.
    https://wiki.libsdl.org/SDL3/SDL_UnlockAudioStream
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnlockAudioStream(_0)

def SDL_SetAudioStreamGetCallback(_0: LP_SDL_AudioStream, _1: ctypes._Pointer, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Set a callback that runs when data is requested from an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_SetAudioStreamGetCallback
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAudioStreamGetCallback(_0, _1, _2)

def SDL_SetAudioStreamPutCallback(_0: LP_SDL_AudioStream, _1: ctypes._Pointer, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Set a callback that runs when data is added to an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_SetAudioStreamPutCallback
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAudioStreamPutCallback(_0, _1, _2)

def SDL_DestroyAudioStream(_0: LP_SDL_AudioStream) -> None:
    """
    Free an audio stream.
    https://wiki.libsdl.org/SDL3/SDL_DestroyAudioStream
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyAudioStream(_0)

def SDL_OpenAudioDeviceStream(_0: ctypes.c_ulong, _1: LP_SDL_AudioSpec, _2: ctypes._Pointer, _3: ctypes.c_void_p) -> LP_SDL_AudioStream:
    """
    Convenience function for straightforward audio init for the common case.
    https://wiki.libsdl.org/SDL3/SDL_OpenAudioDeviceStream
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenAudioDeviceStream(_0, _1, _2, _3)

def SDL_SetAudioPostmixCallback(_0: ctypes.c_ulong, _1: ctypes._Pointer, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Set a callback that fires when data is about to be fed to an audio device.
    https://wiki.libsdl.org/SDL3/SDL_SetAudioPostmixCallback
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAudioPostmixCallback(_0, _1, _2)

def SDL_LoadWAV_IO(_0: LP_SDL_IOStream, _1: ctypes.c_bool, _2: LP_SDL_AudioSpec, _3: LP_LP_c_ubyte, _4: LP_c_ulong) -> ctypes.c_bool:
    """
    Load the audio data of a WAVE file into memory.
    https://wiki.libsdl.org/SDL3/SDL_LoadWAV_IO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LoadWAV_IO(_0, _1, _2, _3, _4)

def SDL_LoadWAV(_0: ctypes.c_char_p, _1: LP_SDL_AudioSpec, _2: LP_LP_c_ubyte, _3: LP_c_ulong) -> ctypes.c_bool:
    """
    Loads a WAV from a file path.
    https://wiki.libsdl.org/SDL3/SDL_LoadWAV
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LoadWAV(_0, _1, _2, _3)

def SDL_MixAudio(_0: LP_c_ubyte, _1: LP_c_ubyte, _2: ctypes.c_long, _3: ctypes.c_ulong, _4: ctypes.c_float) -> ctypes.c_bool:
    """
    Mix audio data in a specified format.
    https://wiki.libsdl.org/SDL3/SDL_MixAudio
    """
    return SDL_GET_DLL(SDL_DLL).SDL_MixAudio(_0, _1, _2, _3, _4)

def SDL_ConvertAudioSamples(_0: LP_SDL_AudioSpec, _1: LP_c_ubyte, _2: ctypes.c_long, _3: LP_SDL_AudioSpec, _4: LP_LP_c_ubyte, _5: LP_c_long) -> ctypes.c_bool:
    """
    Convert some audio data of one format to another format.
    https://wiki.libsdl.org/SDL3/SDL_ConvertAudioSamples
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ConvertAudioSamples(_0, _1, _2, _3, _4, _5)

def SDL_GetAudioFormatName(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Get the human readable name of an audio format.
    https://wiki.libsdl.org/SDL3/SDL_GetAudioFormatName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAudioFormatName(_0)

def SDL_GetSilenceValueForFormat(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Get the appropriate memset value for silencing an audio format.
    https://wiki.libsdl.org/SDL3/SDL_GetSilenceValueForFormat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSilenceValueForFormat(_0)

def SDL_ComposeCustomBlendMode(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_long, _4: ctypes.c_long, _5: ctypes.c_long) -> ctypes.c_ulong:
    """
    Compose a custom blend mode for renderers.
    https://wiki.libsdl.org/SDL3/SDL_ComposeCustomBlendMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ComposeCustomBlendMode(_0, _1, _2, _3, _4, _5)

def SDL_GetPixelFormatName(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Get the human readable name of a pixel format.
    https://wiki.libsdl.org/SDL3/SDL_GetPixelFormatName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPixelFormatName(_0)

def SDL_GetMasksForPixelFormat(_0: ctypes.c_long, _1: LP_c_long, _2: LP_c_ulong, _3: LP_c_ulong, _4: LP_c_ulong, _5: LP_c_ulong) -> ctypes.c_bool:
    """
    Convert one of the enumerated pixel formats to a bpp value and RGBA masks.
    https://wiki.libsdl.org/SDL3/SDL_GetMasksForPixelFormat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetMasksForPixelFormat(_0, _1, _2, _3, _4, _5)

def SDL_GetPixelFormatForMasks(_0: ctypes.c_long, _1: ctypes.c_ulong, _2: ctypes.c_ulong, _3: ctypes.c_ulong, _4: ctypes.c_ulong) -> ctypes.c_long:
    """
    Convert a bpp value and RGBA masks to an enumerated pixel format.
    https://wiki.libsdl.org/SDL3/SDL_GetPixelFormatForMasks
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPixelFormatForMasks(_0, _1, _2, _3, _4)

def SDL_GetPixelFormatDetails(_0: ctypes.c_long) -> LP_SDL_PixelFormatDetails:
    """
    Create an [SDL_PixelFormatDetails](https://wiki.libsdl.org/SDL3/SDL_PixelFormatDetails) structure corresponding to a pixel format.
    https://wiki.libsdl.org/SDL3/SDL_GetPixelFormatDetails
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPixelFormatDetails(_0)

def SDL_CreatePalette(_0: ctypes.c_long) -> LP_SDL_Palette:
    """
    Create a palette structure with the specified number of color entries.
    https://wiki.libsdl.org/SDL3/SDL_CreatePalette
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreatePalette(_0)

def SDL_SetPaletteColors(_0: LP_SDL_Palette, _1: LP_SDL_Color, _2: ctypes.c_long, _3: ctypes.c_long) -> ctypes.c_bool:
    """
    Set a range of colors in a palette.
    https://wiki.libsdl.org/SDL3/SDL_SetPaletteColors
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetPaletteColors(_0, _1, _2, _3)

def SDL_DestroyPalette(_0: LP_SDL_Palette) -> None:
    """
    Free a palette created with [SDL_CreatePalette](https://wiki.libsdl.org/SDL3/SDL_CreatePalette)().
    https://wiki.libsdl.org/SDL3/SDL_DestroyPalette
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyPalette(_0)

def SDL_MapRGB(_0: LP_SDL_PixelFormatDetails, _1: LP_SDL_Palette, _2: ctypes.c_ubyte, _3: ctypes.c_ubyte, _4: ctypes.c_ubyte) -> ctypes.c_ulong:
    """
    Map an RGB triple to an opaque pixel value for a given pixel format.
    https://wiki.libsdl.org/SDL3/SDL_MapRGB
    """
    return SDL_GET_DLL(SDL_DLL).SDL_MapRGB(_0, _1, _2, _3, _4)

def SDL_MapRGBA(_0: LP_SDL_PixelFormatDetails, _1: LP_SDL_Palette, _2: ctypes.c_ubyte, _3: ctypes.c_ubyte, _4: ctypes.c_ubyte, _5: ctypes.c_ubyte) -> ctypes.c_ulong:
    """
    Map an RGBA quadruple to a pixel value for a given pixel format.
    https://wiki.libsdl.org/SDL3/SDL_MapRGBA
    """
    return SDL_GET_DLL(SDL_DLL).SDL_MapRGBA(_0, _1, _2, _3, _4, _5)

def SDL_GetRGB(_0: ctypes.c_ulong, _1: LP_SDL_PixelFormatDetails, _2: LP_SDL_Palette, _3: LP_c_ubyte, _4: LP_c_ubyte, _5: LP_c_ubyte) -> None:
    """
    Get RGB values from a pixel in the specified format.
    https://wiki.libsdl.org/SDL3/SDL_GetRGB
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRGB(_0, _1, _2, _3, _4, _5)

def SDL_GetRGBA(_0: ctypes.c_ulong, _1: LP_SDL_PixelFormatDetails, _2: LP_SDL_Palette, _3: LP_c_ubyte, _4: LP_c_ubyte, _5: LP_c_ubyte, _6: LP_c_ubyte) -> None:
    """
    Get RGBA values from a pixel in the specified format.
    https://wiki.libsdl.org/SDL3/SDL_GetRGBA
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRGBA(_0, _1, _2, _3, _4, _5, _6)

def SDL_malloc(_0: ctypes.c_ulonglong) -> ctypes.c_void_p:
    """
    Allocate uninitialized memory.
    https://wiki.libsdl.org/SDL3/SDL_malloc
    """
    return SDL_GET_DLL(SDL_DLL).SDL_malloc(_0)

def SDL_calloc(_0: ctypes.c_ulonglong, _1: ctypes.c_ulonglong) -> ctypes.c_void_p:
    """
    Allocate a zero-initialized array.
    https://wiki.libsdl.org/SDL3/SDL_calloc
    """
    return SDL_GET_DLL(SDL_DLL).SDL_calloc(_0, _1)

def SDL_realloc(_0: ctypes.c_void_p, _1: ctypes.c_ulonglong) -> ctypes.c_void_p:
    """
    Change the size of allocated memory.
    https://wiki.libsdl.org/SDL3/SDL_realloc
    """
    return SDL_GET_DLL(SDL_DLL).SDL_realloc(_0, _1)

def SDL_free(_0: ctypes.c_void_p) -> None:
    """
    Free allocated memory.
    https://wiki.libsdl.org/SDL3/SDL_free
    """
    return SDL_GET_DLL(SDL_DLL).SDL_free(_0)

def SDL_GetOriginalMemoryFunctions(_0: ctypes._Pointer, _1: ctypes._Pointer, _2: ctypes._Pointer, _3: ctypes._Pointer) -> None:
    """
    Get the original set of SDL memory functions.
    https://wiki.libsdl.org/SDL3/SDL_GetOriginalMemoryFunctions
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetOriginalMemoryFunctions(_0, _1, _2, _3)

def SDL_GetMemoryFunctions(_0: ctypes._Pointer, _1: ctypes._Pointer, _2: ctypes._Pointer, _3: ctypes._Pointer) -> None:
    """
    Get the current set of SDL memory functions.
    https://wiki.libsdl.org/SDL3/SDL_GetMemoryFunctions
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetMemoryFunctions(_0, _1, _2, _3)

def SDL_SetMemoryFunctions(_0: ctypes._Pointer, _1: ctypes._Pointer, _2: ctypes._Pointer, _3: ctypes._Pointer) -> ctypes.c_bool:
    """
    Replace SDL's memory allocation functions with a custom set.
    https://wiki.libsdl.org/SDL3/SDL_SetMemoryFunctions
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetMemoryFunctions(_0, _1, _2, _3)

def SDL_aligned_alloc(_0: ctypes.c_ulonglong, _1: ctypes.c_ulonglong) -> ctypes.c_void_p:
    """
    Allocate memory aligned to a specific alignment.
    https://wiki.libsdl.org/SDL3/SDL_aligned_alloc
    """
    return SDL_GET_DLL(SDL_DLL).SDL_aligned_alloc(_0, _1)

def SDL_aligned_free(_0: ctypes.c_void_p) -> None:
    """
    Free memory allocated by [SDL_aligned_alloc](https://wiki.libsdl.org/SDL3/SDL_aligned_alloc)().
    https://wiki.libsdl.org/SDL3/SDL_aligned_free
    """
    return SDL_GET_DLL(SDL_DLL).SDL_aligned_free(_0)

def SDL_GetNumAllocations() -> ctypes.c_long:
    """
    Get the number of outstanding (unfreed) allocations.
    https://wiki.libsdl.org/SDL3/SDL_GetNumAllocations
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumAllocations()

def SDL_GetEnvironment() -> LP_SDL_Environment:
    """
    Get the process environment.
    https://wiki.libsdl.org/SDL3/SDL_GetEnvironment
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetEnvironment()

def SDL_CreateEnvironment(_0: ctypes.c_bool) -> LP_SDL_Environment:
    """
    Create a set of environment variables
    https://wiki.libsdl.org/SDL3/SDL_CreateEnvironment
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateEnvironment(_0)

def SDL_GetEnvironmentVariable(_0: LP_SDL_Environment, _1: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Get the value of a variable in the environment.
    https://wiki.libsdl.org/SDL3/SDL_GetEnvironmentVariable
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetEnvironmentVariable(_0, _1)

def SDL_GetEnvironmentVariables(_0: LP_SDL_Environment) -> LP_c_char_p:
    """
    Get all variables in the environment.
    https://wiki.libsdl.org/SDL3/SDL_GetEnvironmentVariables
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetEnvironmentVariables(_0)

def SDL_SetEnvironmentVariable(_0: LP_SDL_Environment, _1: ctypes.c_char_p, _2: ctypes.c_char_p, _3: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set the value of a variable in the environment.
    https://wiki.libsdl.org/SDL3/SDL_SetEnvironmentVariable
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetEnvironmentVariable(_0, _1, _2, _3)

def SDL_UnsetEnvironmentVariable(_0: LP_SDL_Environment, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Clear a variable from the environment.
    https://wiki.libsdl.org/SDL3/SDL_UnsetEnvironmentVariable
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnsetEnvironmentVariable(_0, _1)

def SDL_DestroyEnvironment(_0: LP_SDL_Environment) -> None:
    """
    Destroy a set of environment variables.
    https://wiki.libsdl.org/SDL3/SDL_DestroyEnvironment
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyEnvironment(_0)

def SDL_getenv(_0: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Get the value of a variable in the environment.
    https://wiki.libsdl.org/SDL3/SDL_getenv
    """
    return SDL_GET_DLL(SDL_DLL).SDL_getenv(_0)

def SDL_getenv_unsafe(_0: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Get the value of a variable in the environment.
    https://wiki.libsdl.org/SDL3/SDL_getenv_unsafe
    """
    return SDL_GET_DLL(SDL_DLL).SDL_getenv_unsafe(_0)

def SDL_setenv_unsafe(_0: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Set the value of a variable in the environment.
    https://wiki.libsdl.org/SDL3/SDL_setenv_unsafe
    """
    return SDL_GET_DLL(SDL_DLL).SDL_setenv_unsafe(_0)

def SDL_unsetenv_unsafe(_0: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Clear a variable from the environment.
    https://wiki.libsdl.org/SDL3/SDL_unsetenv_unsafe
    """
    return SDL_GET_DLL(SDL_DLL).SDL_unsetenv_unsafe(_0)

def SDL_qsort(_0: ctypes.c_void_p, _1: ctypes.c_ulonglong, _2: ctypes.c_ulonglong, _3: ctypes._Pointer) -> None:
    """
    Sort an array.
    https://wiki.libsdl.org/SDL3/SDL_qsort
    """
    return SDL_GET_DLL(SDL_DLL).SDL_qsort(_0, _1, _2, _3)

def SDL_bsearch(_0: ctypes.c_void_p, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong, _3: ctypes.c_ulonglong, _4: ctypes._Pointer) -> ctypes.c_void_p:
    """
    Perform a binary search on a previously sorted array.
    https://wiki.libsdl.org/SDL3/SDL_bsearch
    """
    return SDL_GET_DLL(SDL_DLL).SDL_bsearch(_0, _1, _2, _3, _4)

def SDL_qsort_r(_0: ctypes.c_void_p, _1: ctypes.c_ulonglong, _2: ctypes.c_ulonglong, _3: ctypes._Pointer, _4: ctypes.c_void_p) -> None:
    """
    Sort an array, passing a userdata pointer to the compare function.
    https://wiki.libsdl.org/SDL3/SDL_qsort_r
    """
    return SDL_GET_DLL(SDL_DLL).SDL_qsort_r(_0, _1, _2, _3, _4)

def SDL_bsearch_r(_0: ctypes.c_void_p, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong, _3: ctypes.c_ulonglong, _4: ctypes._Pointer, _5: ctypes.c_void_p) -> ctypes.c_void_p:
    """
    Perform a binary search on a previously sorted array, passing a userdata pointer to the compare function.
    https://wiki.libsdl.org/SDL3/SDL_bsearch_r
    """
    return SDL_GET_DLL(SDL_DLL).SDL_bsearch_r(_0, _1, _2, _3, _4, _5)

def SDL_abs(_0: ctypes.c_long) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3/SDL_abs
    """
    return SDL_GET_DLL(SDL_DLL).SDL_abs(_0)

def SDL_isalpha(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Query if a character is alphabetic (a letter).
    https://wiki.libsdl.org/SDL3/SDL_isalpha
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isalpha(_0)

def SDL_isalnum(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Query if a character is alphabetic (a letter) or a number.
    https://wiki.libsdl.org/SDL3/SDL_isalnum
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isalnum(_0)

def SDL_isblank(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Report if a character is blank (a space or tab).
    https://wiki.libsdl.org/SDL3/SDL_isblank
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isblank(_0)

def SDL_iscntrl(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Report if a character is a control character.
    https://wiki.libsdl.org/SDL3/SDL_iscntrl
    """
    return SDL_GET_DLL(SDL_DLL).SDL_iscntrl(_0)

def SDL_isdigit(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Report if a character is a numeric digit.
    https://wiki.libsdl.org/SDL3/SDL_isdigit
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isdigit(_0)

def SDL_isxdigit(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Report if a character is a hexadecimal digit.
    https://wiki.libsdl.org/SDL3/SDL_isxdigit
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isxdigit(_0)

def SDL_ispunct(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Report if a character is a punctuation mark.
    https://wiki.libsdl.org/SDL3/SDL_ispunct
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ispunct(_0)

def SDL_isspace(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Report if a character is whitespace.
    https://wiki.libsdl.org/SDL3/SDL_isspace
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isspace(_0)

def SDL_isupper(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Report if a character is upper case.
    https://wiki.libsdl.org/SDL3/SDL_isupper
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isupper(_0)

def SDL_islower(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Report if a character is lower case.
    https://wiki.libsdl.org/SDL3/SDL_islower
    """
    return SDL_GET_DLL(SDL_DLL).SDL_islower(_0)

def SDL_isprint(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Report if a character is "printable".
    https://wiki.libsdl.org/SDL3/SDL_isprint
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isprint(_0)

def SDL_isgraph(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Report if a character is any "printable" except space.
    https://wiki.libsdl.org/SDL3/SDL_isgraph
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isgraph(_0)

def SDL_toupper(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Convert low-ASCII English letters to uppercase.
    https://wiki.libsdl.org/SDL3/SDL_toupper
    """
    return SDL_GET_DLL(SDL_DLL).SDL_toupper(_0)

def SDL_tolower(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Convert low-ASCII English letters to lowercase.
    https://wiki.libsdl.org/SDL3/SDL_tolower
    """
    return SDL_GET_DLL(SDL_DLL).SDL_tolower(_0)

def SDL_crc16(_0: ctypes.c_ushort, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong) -> ctypes.c_ushort:
    """
    https://wiki.libsdl.org/SDL3/SDL_crc16
    """
    return SDL_GET_DLL(SDL_DLL).SDL_crc16(_0, _1, _2)

def SDL_crc32(_0: ctypes.c_ulong, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong) -> ctypes.c_ulong:
    """
    https://wiki.libsdl.org/SDL3/SDL_crc32
    """
    return SDL_GET_DLL(SDL_DLL).SDL_crc32(_0, _1, _2)

def SDL_murmur3_32(_0: ctypes.c_void_p, _1: ctypes.c_ulonglong, _2: ctypes.c_ulong) -> ctypes.c_ulong:
    """
    https://wiki.libsdl.org/SDL3/SDL_murmur3_32
    """
    return SDL_GET_DLL(SDL_DLL).SDL_murmur3_32(_0, _1, _2)

def SDL_memcpy(_0: ctypes.c_void_p, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong) -> ctypes.c_void_p:
    """
    Copy non-overlapping memory.
    https://wiki.libsdl.org/SDL3/SDL_memcpy
    """
    return SDL_GET_DLL(SDL_DLL).SDL_memcpy(_0, _1, _2)

def SDL_memmove(_0: ctypes.c_void_p, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong) -> ctypes.c_void_p:
    """
    Copy memory.
    https://wiki.libsdl.org/SDL3/SDL_memmove
    """
    return SDL_GET_DLL(SDL_DLL).SDL_memmove(_0, _1, _2)

def SDL_memset(_0: ctypes.c_void_p, _1: ctypes.c_long, _2: ctypes.c_ulonglong) -> ctypes.c_void_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_memset
    """
    return SDL_GET_DLL(SDL_DLL).SDL_memset(_0, _1, _2)

def SDL_memset4(_0: ctypes.c_void_p, _1: ctypes.c_ulong, _2: ctypes.c_ulonglong) -> ctypes.c_void_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_memset4
    """
    return SDL_GET_DLL(SDL_DLL).SDL_memset4(_0, _1, _2)

def SDL_memcmp(_0: ctypes.c_void_p, _1: ctypes.c_void_p, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3/SDL_memcmp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_memcmp(_0, _1, _2)

def SDL_wcslen(_0: ctypes.c_wchar_p) -> ctypes.c_ulonglong:
    """
    https://wiki.libsdl.org/SDL3/SDL_wcslen
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcslen(_0)

def SDL_wcsnlen(_0: ctypes.c_wchar_p, _1: ctypes.c_ulonglong) -> ctypes.c_ulonglong:
    """
    https://wiki.libsdl.org/SDL3/SDL_wcsnlen
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcsnlen(_0, _1)

def SDL_wcslcpy(_0: ctypes.c_wchar_p, _1: ctypes.c_wchar_p, _2: ctypes.c_ulonglong) -> ctypes.c_ulonglong:
    """
    Copy a wide string.
    https://wiki.libsdl.org/SDL3/SDL_wcslcpy
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcslcpy(_0, _1, _2)

def SDL_wcslcat(_0: ctypes.c_wchar_p, _1: ctypes.c_wchar_p, _2: ctypes.c_ulonglong) -> ctypes.c_ulonglong:
    """
    Concatenate wide strings.
    https://wiki.libsdl.org/SDL3/SDL_wcslcat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcslcat(_0, _1, _2)

def SDL_wcsdup(_0: ctypes.c_wchar_p) -> ctypes.c_wchar_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_wcsdup
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcsdup(_0)

def SDL_wcsstr(_0: ctypes.c_wchar_p, _1: ctypes.c_wchar_p) -> ctypes.c_wchar_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_wcsstr
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcsstr(_0, _1)

def SDL_wcsnstr(_0: ctypes.c_wchar_p, _1: ctypes.c_wchar_p, _2: ctypes.c_ulonglong) -> ctypes.c_wchar_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_wcsnstr
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcsnstr(_0, _1, _2)

def SDL_wcscmp(_0: ctypes.c_wchar_p, _1: ctypes.c_wchar_p) -> ctypes.c_long:
    """
    Compare two null-terminated wide strings.
    https://wiki.libsdl.org/SDL3/SDL_wcscmp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcscmp(_0, _1)

def SDL_wcsncmp(_0: ctypes.c_wchar_p, _1: ctypes.c_wchar_p, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Compare two wide strings up to a number of wchar_t values.
    https://wiki.libsdl.org/SDL3/SDL_wcsncmp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcsncmp(_0, _1, _2)

def SDL_wcscasecmp(_0: ctypes.c_wchar_p, _1: ctypes.c_wchar_p) -> ctypes.c_long:
    """
    Compare two null-terminated wide strings, case-insensitively.
    https://wiki.libsdl.org/SDL3/SDL_wcscasecmp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcscasecmp(_0, _1)

def SDL_wcsncasecmp(_0: ctypes.c_wchar_p, _1: ctypes.c_wchar_p, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Compare two wide strings, case-insensitively, up to a number of wchar_t.
    https://wiki.libsdl.org/SDL3/SDL_wcsncasecmp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcsncasecmp(_0, _1, _2)

def SDL_wcstol(_0: ctypes.c_wchar_p, _1: LP_c_wchar_p, _2: ctypes.c_long) -> ctypes.c_long:
    """
    Parse a `long` from a wide string.
    https://wiki.libsdl.org/SDL3/SDL_wcstol
    """
    return SDL_GET_DLL(SDL_DLL).SDL_wcstol(_0, _1, _2)

def SDL_strlen(_0: ctypes.c_char_p) -> ctypes.c_ulonglong:
    """
    This works exactly like strlen() but doesn't require access to a C runtime.
    https://wiki.libsdl.org/SDL3/SDL_strlen
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strlen(_0)

def SDL_strnlen(_0: ctypes.c_char_p, _1: ctypes.c_ulonglong) -> ctypes.c_ulonglong:
    """
    This works exactly like strnlen() but doesn't require access to a C runtime.
    https://wiki.libsdl.org/SDL3/SDL_strnlen
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strnlen(_0, _1)

def SDL_strlcpy(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong) -> ctypes.c_ulonglong:
    """
    Copy a string.
    https://wiki.libsdl.org/SDL3/SDL_strlcpy
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strlcpy(_0, _1, _2)

def SDL_utf8strlcpy(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong) -> ctypes.c_ulonglong:
    """
    Copy an UTF-8 string.
    https://wiki.libsdl.org/SDL3/SDL_utf8strlcpy
    """
    return SDL_GET_DLL(SDL_DLL).SDL_utf8strlcpy(_0, _1, _2)

def SDL_strlcat(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong) -> ctypes.c_ulonglong:
    """
    Concatenate strings.
    https://wiki.libsdl.org/SDL3/SDL_strlcat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strlcat(_0, _1, _2)

def SDL_strdup(_0: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_strdup
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strdup(_0)

def SDL_strndup(_0: ctypes.c_char_p, _1: ctypes.c_ulonglong) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_strndup
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strndup(_0, _1)

def SDL_strrev(_0: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_strrev
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strrev(_0)

def SDL_strupr(_0: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Convert a string to uppercase.
    https://wiki.libsdl.org/SDL3/SDL_strupr
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strupr(_0)

def SDL_strlwr(_0: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Convert a string to lowercase.
    https://wiki.libsdl.org/SDL3/SDL_strlwr
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strlwr(_0)

def SDL_strchr(_0: ctypes.c_char_p, _1: ctypes.c_long) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_strchr
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strchr(_0, _1)

def SDL_strrchr(_0: ctypes.c_char_p, _1: ctypes.c_long) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_strrchr
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strrchr(_0, _1)

def SDL_strstr(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_strstr
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strstr(_0, _1)

def SDL_strnstr(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_strnstr
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strnstr(_0, _1, _2)

def SDL_strcasestr(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_strcasestr
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strcasestr(_0, _1)

def SDL_strtok_r(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: LP_c_char_p) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_strtok_r
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strtok_r(_0, _1, _2)

def SDL_utf8strlen(_0: ctypes.c_char_p) -> ctypes.c_ulonglong:
    """
    https://wiki.libsdl.org/SDL3/SDL_utf8strlen
    """
    return SDL_GET_DLL(SDL_DLL).SDL_utf8strlen(_0)

def SDL_utf8strnlen(_0: ctypes.c_char_p, _1: ctypes.c_ulonglong) -> ctypes.c_ulonglong:
    """
    https://wiki.libsdl.org/SDL3/SDL_utf8strnlen
    """
    return SDL_GET_DLL(SDL_DLL).SDL_utf8strnlen(_0, _1)

def SDL_itoa(_0: ctypes.c_long, _1: ctypes.c_char_p, _2: ctypes.c_long) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_itoa
    """
    return SDL_GET_DLL(SDL_DLL).SDL_itoa(_0, _1, _2)

def SDL_uitoa(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_long) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_uitoa
    """
    return SDL_GET_DLL(SDL_DLL).SDL_uitoa(_0, _1, _2)

def SDL_ltoa(_0: ctypes.c_long, _1: ctypes.c_char_p, _2: ctypes.c_long) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_ltoa
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ltoa(_0, _1, _2)

def SDL_ultoa(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_long) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_ultoa
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ultoa(_0, _1, _2)

def SDL_lltoa(_0: ctypes.c_longlong, _1: ctypes.c_char_p, _2: ctypes.c_long) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_lltoa
    """
    return SDL_GET_DLL(SDL_DLL).SDL_lltoa(_0, _1, _2)

def SDL_ulltoa(_0: ctypes.c_ulonglong, _1: ctypes.c_char_p, _2: ctypes.c_long) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3/SDL_ulltoa
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ulltoa(_0, _1, _2)

def SDL_atoi(_0: ctypes.c_char_p) -> ctypes.c_long:
    """
    Parse an `int` from a string.
    https://wiki.libsdl.org/SDL3/SDL_atoi
    """
    return SDL_GET_DLL(SDL_DLL).SDL_atoi(_0)

def SDL_atof(_0: ctypes.c_char_p) -> ctypes.c_double:
    """
    Parse a `double` from a string.
    https://wiki.libsdl.org/SDL3/SDL_atof
    """
    return SDL_GET_DLL(SDL_DLL).SDL_atof(_0)

def SDL_strtol(_0: ctypes.c_char_p, _1: LP_c_char_p, _2: ctypes.c_long) -> ctypes.c_long:
    """
    Parse a `long` from a string.
    https://wiki.libsdl.org/SDL3/SDL_strtol
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strtol(_0, _1, _2)

def SDL_strtoul(_0: ctypes.c_char_p, _1: LP_c_char_p, _2: ctypes.c_long) -> ctypes.c_ulong:
    """
    Parse an `unsigned long` from a string.
    https://wiki.libsdl.org/SDL3/SDL_strtoul
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strtoul(_0, _1, _2)

def SDL_strtoll(_0: ctypes.c_char_p, _1: LP_c_char_p, _2: ctypes.c_long) -> ctypes.c_longlong:
    """
    Parse a `long long` from a string.
    https://wiki.libsdl.org/SDL3/SDL_strtoll
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strtoll(_0, _1, _2)

def SDL_strtoull(_0: ctypes.c_char_p, _1: LP_c_char_p, _2: ctypes.c_long) -> ctypes.c_ulonglong:
    """
    Parse an `unsigned long long` from a string.
    https://wiki.libsdl.org/SDL3/SDL_strtoull
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strtoull(_0, _1, _2)

def SDL_strtod(_0: ctypes.c_char_p, _1: LP_c_char_p) -> ctypes.c_double:
    """
    Parse a `double` from a string.
    https://wiki.libsdl.org/SDL3/SDL_strtod
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strtod(_0, _1)

def SDL_strcmp(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> ctypes.c_long:
    """
    Compare two null-terminated UTF-8 strings.
    https://wiki.libsdl.org/SDL3/SDL_strcmp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strcmp(_0, _1)

def SDL_strncmp(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Compare two UTF-8 strings up to a number of bytes.
    https://wiki.libsdl.org/SDL3/SDL_strncmp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strncmp(_0, _1, _2)

def SDL_strcasecmp(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> ctypes.c_long:
    """
    Compare two null-terminated UTF-8 strings, case-insensitively.
    https://wiki.libsdl.org/SDL3/SDL_strcasecmp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strcasecmp(_0, _1)

def SDL_strncasecmp(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Compare two UTF-8 strings, case-insensitively, up to a number of bytes.
    https://wiki.libsdl.org/SDL3/SDL_strncasecmp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_strncasecmp(_0, _1, _2)

def SDL_StepUTF8(_0: LP_c_char_p, _1: LP_c_ulonglong) -> ctypes.c_ulong:
    """
    Decode a UTF-8 string, one Unicode codepoint at a time.
    https://wiki.libsdl.org/SDL3/SDL_StepUTF8
    """
    return SDL_GET_DLL(SDL_DLL).SDL_StepUTF8(_0, _1)

def SDL_StepBackUTF8(_0: ctypes.c_char_p, _1: LP_c_char_p) -> ctypes.c_ulong:
    """
    Decode a UTF-8 string in reverse, one Unicode codepoint at a time.
    https://wiki.libsdl.org/SDL3/SDL_StepBackUTF8
    """
    return SDL_GET_DLL(SDL_DLL).SDL_StepBackUTF8(_0, _1)

def SDL_UCS4ToUTF8(_0: ctypes.c_ulong, _1: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Convert a single Unicode codepoint to UTF-8.
    https://wiki.libsdl.org/SDL3/SDL_UCS4ToUTF8
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UCS4ToUTF8(_0, _1)

def SDL_sscanf(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3/SDL_sscanf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_sscanf(_0, _1)

def SDL_vsscanf(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_void_p) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3/SDL_vsscanf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_vsscanf(_0, _1, _2)

def SDL_snprintf(_0: ctypes.c_char_p, _1: ctypes.c_ulonglong, _2: ctypes.c_char_p) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3/SDL_snprintf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_snprintf(_0, _1, _2)

def SDL_swprintf(_0: ctypes.c_wchar_p, _1: ctypes.c_ulonglong, _2: ctypes.c_wchar_p) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3/SDL_swprintf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_swprintf(_0, _1, _2)

def SDL_vsnprintf(_0: ctypes.c_char_p, _1: ctypes.c_ulonglong, _2: ctypes.c_char_p, _3: ctypes.c_void_p) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3/SDL_vsnprintf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_vsnprintf(_0, _1, _2, _3)

def SDL_vswprintf(_0: ctypes.c_wchar_p, _1: ctypes.c_ulonglong, _2: ctypes.c_wchar_p, _3: ctypes.c_void_p) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3/SDL_vswprintf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_vswprintf(_0, _1, _2, _3)

def SDL_asprintf(_0: LP_c_char_p, _1: ctypes.c_char_p) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3/SDL_asprintf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_asprintf(_0, _1)

def SDL_vasprintf(_0: LP_c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_void_p) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3/SDL_vasprintf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_vasprintf(_0, _1, _2)

def SDL_srand(_0: ctypes.c_ulonglong) -> None:
    """
    Seeds the pseudo-random number generator.
    https://wiki.libsdl.org/SDL3/SDL_srand
    """
    return SDL_GET_DLL(SDL_DLL).SDL_srand(_0)

def SDL_rand(_0: ctypes.c_longlong) -> ctypes.c_long:
    """
    Generate a pseudo-random number less than n for positive n
    https://wiki.libsdl.org/SDL3/SDL_rand
    """
    return SDL_GET_DLL(SDL_DLL).SDL_rand(_0)

def SDL_randf() -> ctypes.c_float:
    """
    Generate a uniform pseudo-random floating point number less than 1.0
    https://wiki.libsdl.org/SDL3/SDL_randf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_randf()

def SDL_rand_bits() -> ctypes.c_ulong:
    """
    Generate 32 pseudo-random bits.
    https://wiki.libsdl.org/SDL3/SDL_rand_bits
    """
    return SDL_GET_DLL(SDL_DLL).SDL_rand_bits()

def SDL_rand_r(_0: LP_c_ulonglong, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Generate a pseudo-random number less than n for positive n
    https://wiki.libsdl.org/SDL3/SDL_rand_r
    """
    return SDL_GET_DLL(SDL_DLL).SDL_rand_r(_0, _1)

def SDL_randf_r(_0: LP_c_ulonglong) -> ctypes.c_float:
    """
    Generate a uniform pseudo-random floating point number less than 1.0
    https://wiki.libsdl.org/SDL3/SDL_randf_r
    """
    return SDL_GET_DLL(SDL_DLL).SDL_randf_r(_0)

def SDL_rand_bits_r(_0: LP_c_ulonglong) -> ctypes.c_ulong:
    """
    Generate 32 pseudo-random bits.
    https://wiki.libsdl.org/SDL3/SDL_rand_bits_r
    """
    return SDL_GET_DLL(SDL_DLL).SDL_rand_bits_r(_0)

def SDL_acos(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the arc cosine of `x`.
    https://wiki.libsdl.org/SDL3/SDL_acos
    """
    return SDL_GET_DLL(SDL_DLL).SDL_acos(_0)

def SDL_acosf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the arc cosine of `x`.
    https://wiki.libsdl.org/SDL3/SDL_acosf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_acosf(_0)

def SDL_asin(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the arc sine of `x`.
    https://wiki.libsdl.org/SDL3/SDL_asin
    """
    return SDL_GET_DLL(SDL_DLL).SDL_asin(_0)

def SDL_asinf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the arc sine of `x`.
    https://wiki.libsdl.org/SDL3/SDL_asinf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_asinf(_0)

def SDL_atan(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the arc tangent of `x`.
    https://wiki.libsdl.org/SDL3/SDL_atan
    """
    return SDL_GET_DLL(SDL_DLL).SDL_atan(_0)

def SDL_atanf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the arc tangent of `x`.
    https://wiki.libsdl.org/SDL3/SDL_atanf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_atanf(_0)

def SDL_atan2(_0: ctypes.c_double, _1: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the arc tangent of `y / x`, using the signs of x and y to adjust the result's quadrant.
    https://wiki.libsdl.org/SDL3/SDL_atan2
    """
    return SDL_GET_DLL(SDL_DLL).SDL_atan2(_0, _1)

def SDL_atan2f(_0: ctypes.c_float, _1: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the arc tangent of `y / x`, using the signs of x and y to adjust the result's quadrant.
    https://wiki.libsdl.org/SDL3/SDL_atan2f
    """
    return SDL_GET_DLL(SDL_DLL).SDL_atan2f(_0, _1)

def SDL_ceil(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the ceiling of `x`.
    https://wiki.libsdl.org/SDL3/SDL_ceil
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ceil(_0)

def SDL_ceilf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the ceiling of `x`.
    https://wiki.libsdl.org/SDL3/SDL_ceilf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ceilf(_0)

def SDL_copysign(_0: ctypes.c_double, _1: ctypes.c_double) -> ctypes.c_double:
    """
    Copy the sign of one floating-point value to another.
    https://wiki.libsdl.org/SDL3/SDL_copysign
    """
    return SDL_GET_DLL(SDL_DLL).SDL_copysign(_0, _1)

def SDL_copysignf(_0: ctypes.c_float, _1: ctypes.c_float) -> ctypes.c_float:
    """
    Copy the sign of one floating-point value to another.
    https://wiki.libsdl.org/SDL3/SDL_copysignf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_copysignf(_0, _1)

def SDL_cos(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the cosine of `x`.
    https://wiki.libsdl.org/SDL3/SDL_cos
    """
    return SDL_GET_DLL(SDL_DLL).SDL_cos(_0)

def SDL_cosf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the cosine of `x`.
    https://wiki.libsdl.org/SDL3/SDL_cosf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_cosf(_0)

def SDL_exp(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the exponential of `x`.
    https://wiki.libsdl.org/SDL3/SDL_exp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_exp(_0)

def SDL_expf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the exponential of `x`.
    https://wiki.libsdl.org/SDL3/SDL_expf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_expf(_0)

def SDL_fabs(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the absolute value of `x`
    https://wiki.libsdl.org/SDL3/SDL_fabs
    """
    return SDL_GET_DLL(SDL_DLL).SDL_fabs(_0)

def SDL_fabsf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the absolute value of `x`
    https://wiki.libsdl.org/SDL3/SDL_fabsf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_fabsf(_0)

def SDL_floor(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the floor of `x`.
    https://wiki.libsdl.org/SDL3/SDL_floor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_floor(_0)

def SDL_floorf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the floor of `x`.
    https://wiki.libsdl.org/SDL3/SDL_floorf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_floorf(_0)

def SDL_trunc(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Truncate `x` to an integer.
    https://wiki.libsdl.org/SDL3/SDL_trunc
    """
    return SDL_GET_DLL(SDL_DLL).SDL_trunc(_0)

def SDL_truncf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Truncate `x` to an integer.
    https://wiki.libsdl.org/SDL3/SDL_truncf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_truncf(_0)

def SDL_fmod(_0: ctypes.c_double, _1: ctypes.c_double) -> ctypes.c_double:
    """
    Return the floating-point remainder of `x / y`
    https://wiki.libsdl.org/SDL3/SDL_fmod
    """
    return SDL_GET_DLL(SDL_DLL).SDL_fmod(_0, _1)

def SDL_fmodf(_0: ctypes.c_float, _1: ctypes.c_float) -> ctypes.c_float:
    """
    Return the floating-point remainder of `x / y`
    https://wiki.libsdl.org/SDL3/SDL_fmodf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_fmodf(_0, _1)

def SDL_isinf(_0: ctypes.c_double) -> ctypes.c_long:
    """
    Return whether the value is infinity.
    https://wiki.libsdl.org/SDL3/SDL_isinf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isinf(_0)

def SDL_isinff(_0: ctypes.c_float) -> ctypes.c_long:
    """
    Return whether the value is infinity.
    https://wiki.libsdl.org/SDL3/SDL_isinff
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isinff(_0)

def SDL_isnan(_0: ctypes.c_double) -> ctypes.c_long:
    """
    Return whether the value is NaN.
    https://wiki.libsdl.org/SDL3/SDL_isnan
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isnan(_0)

def SDL_isnanf(_0: ctypes.c_float) -> ctypes.c_long:
    """
    Return whether the value is NaN.
    https://wiki.libsdl.org/SDL3/SDL_isnanf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_isnanf(_0)

def SDL_log(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the natural logarithm of `x`.
    https://wiki.libsdl.org/SDL3/SDL_log
    """
    return SDL_GET_DLL(SDL_DLL).SDL_log(_0)

def SDL_logf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the natural logarithm of `x`.
    https://wiki.libsdl.org/SDL3/SDL_logf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_logf(_0)

def SDL_log10(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the base-10 logarithm of `x`.
    https://wiki.libsdl.org/SDL3/SDL_log10
    """
    return SDL_GET_DLL(SDL_DLL).SDL_log10(_0)

def SDL_log10f(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the base-10 logarithm of `x`.
    https://wiki.libsdl.org/SDL3/SDL_log10f
    """
    return SDL_GET_DLL(SDL_DLL).SDL_log10f(_0)

def SDL_modf(_0: ctypes.c_double, _1: LP_c_double) -> ctypes.c_double:
    """
    Split `x` into integer and fractional parts
    https://wiki.libsdl.org/SDL3/SDL_modf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_modf(_0, _1)

def SDL_modff(_0: ctypes.c_float, _1: LP_c_float) -> ctypes.c_float:
    """
    Split `x` into integer and fractional parts
    https://wiki.libsdl.org/SDL3/SDL_modff
    """
    return SDL_GET_DLL(SDL_DLL).SDL_modff(_0, _1)

def SDL_pow(_0: ctypes.c_double, _1: ctypes.c_double) -> ctypes.c_double:
    """
    Raise `x` to the power `y`
    https://wiki.libsdl.org/SDL3/SDL_pow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_pow(_0, _1)

def SDL_powf(_0: ctypes.c_float, _1: ctypes.c_float) -> ctypes.c_float:
    """
    Raise `x` to the power `y`
    https://wiki.libsdl.org/SDL3/SDL_powf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_powf(_0, _1)

def SDL_round(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Round `x` to the nearest integer.
    https://wiki.libsdl.org/SDL3/SDL_round
    """
    return SDL_GET_DLL(SDL_DLL).SDL_round(_0)

def SDL_roundf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Round `x` to the nearest integer.
    https://wiki.libsdl.org/SDL3/SDL_roundf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_roundf(_0)

def SDL_lround(_0: ctypes.c_double) -> ctypes.c_long:
    """
    Round `x` to the nearest integer representable as a long
    https://wiki.libsdl.org/SDL3/SDL_lround
    """
    return SDL_GET_DLL(SDL_DLL).SDL_lround(_0)

def SDL_lroundf(_0: ctypes.c_float) -> ctypes.c_long:
    """
    Round `x` to the nearest integer representable as a long
    https://wiki.libsdl.org/SDL3/SDL_lroundf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_lroundf(_0)

def SDL_scalbn(_0: ctypes.c_double, _1: ctypes.c_long) -> ctypes.c_double:
    """
    Scale `x` by an integer power of two.
    https://wiki.libsdl.org/SDL3/SDL_scalbn
    """
    return SDL_GET_DLL(SDL_DLL).SDL_scalbn(_0, _1)

def SDL_scalbnf(_0: ctypes.c_float, _1: ctypes.c_long) -> ctypes.c_float:
    """
    Scale `x` by an integer power of two.
    https://wiki.libsdl.org/SDL3/SDL_scalbnf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_scalbnf(_0, _1)

def SDL_sin(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the sine of `x`.
    https://wiki.libsdl.org/SDL3/SDL_sin
    """
    return SDL_GET_DLL(SDL_DLL).SDL_sin(_0)

def SDL_sinf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the sine of `x`.
    https://wiki.libsdl.org/SDL3/SDL_sinf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_sinf(_0)

def SDL_sqrt(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the square root of `x`.
    https://wiki.libsdl.org/SDL3/SDL_sqrt
    """
    return SDL_GET_DLL(SDL_DLL).SDL_sqrt(_0)

def SDL_sqrtf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the square root of `x`.
    https://wiki.libsdl.org/SDL3/SDL_sqrtf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_sqrtf(_0)

def SDL_tan(_0: ctypes.c_double) -> ctypes.c_double:
    """
    Compute the tangent of `x`.
    https://wiki.libsdl.org/SDL3/SDL_tan
    """
    return SDL_GET_DLL(SDL_DLL).SDL_tan(_0)

def SDL_tanf(_0: ctypes.c_float) -> ctypes.c_float:
    """
    Compute the tangent of `x`.
    https://wiki.libsdl.org/SDL3/SDL_tanf
    """
    return SDL_GET_DLL(SDL_DLL).SDL_tanf(_0)

def SDL_iconv_open(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> SDL_iconv_t:
    """
    This function allocates a context for the specified character set conversion.
    https://wiki.libsdl.org/SDL3/SDL_iconv_open
    """
    return SDL_GET_DLL(SDL_DLL).SDL_iconv_open(_0, _1)

def SDL_iconv_close(_0: SDL_iconv_t) -> ctypes.c_long:
    """
    This function frees a context used for character set conversion.
    https://wiki.libsdl.org/SDL3/SDL_iconv_close
    """
    return SDL_GET_DLL(SDL_DLL).SDL_iconv_close(_0)

def SDL_iconv(_0: SDL_iconv_t, _1: LP_c_char_p, _2: LP_c_ulonglong, _3: LP_c_char_p, _4: LP_c_ulonglong) -> ctypes.c_ulonglong:
    """
    This function converts text between encodings, reading from and writing to a buffer.
    https://wiki.libsdl.org/SDL3/SDL_iconv
    """
    return SDL_GET_DLL(SDL_DLL).SDL_iconv(_0, _1, _2, _3, _4)

def SDL_iconv_string(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_char_p, _3: ctypes.c_ulonglong) -> ctypes.c_char_p:
    """
    Helper function to convert a string's encoding in one call.
    https://wiki.libsdl.org/SDL3/SDL_iconv_string
    """
    return SDL_GET_DLL(SDL_DLL).SDL_iconv_string(_0, _1, _2, _3)

def SDL_HasRectIntersection(_0: LP_SDL_Rect, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Determine whether two rectangles intersect.
    https://wiki.libsdl.org/SDL3/SDL_HasRectIntersection
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasRectIntersection(_0, _1)

def SDL_GetRectIntersection(_0: LP_SDL_Rect, _1: LP_SDL_Rect, _2: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Calculate the intersection of two rectangles.
    https://wiki.libsdl.org/SDL3/SDL_GetRectIntersection
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRectIntersection(_0, _1, _2)

def SDL_GetRectUnion(_0: LP_SDL_Rect, _1: LP_SDL_Rect, _2: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Calculate the union of two rectangles.
    https://wiki.libsdl.org/SDL3/SDL_GetRectUnion
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRectUnion(_0, _1, _2)

def SDL_GetRectEnclosingPoints(_0: LP_SDL_Point, _1: ctypes.c_long, _2: LP_SDL_Rect, _3: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Calculate a minimal rectangle enclosing a set of points.
    https://wiki.libsdl.org/SDL3/SDL_GetRectEnclosingPoints
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRectEnclosingPoints(_0, _1, _2, _3)

def SDL_GetRectAndLineIntersection(_0: LP_SDL_Rect, _1: LP_c_long, _2: LP_c_long, _3: LP_c_long, _4: LP_c_long) -> ctypes.c_bool:
    """
    Calculate the intersection of a rectangle and line segment.
    https://wiki.libsdl.org/SDL3/SDL_GetRectAndLineIntersection
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRectAndLineIntersection(_0, _1, _2, _3, _4)

def SDL_HasRectIntersectionFloat(_0: LP_SDL_FRect, _1: LP_SDL_FRect) -> ctypes.c_bool:
    """
    Determine whether two rectangles intersect with float precision.
    https://wiki.libsdl.org/SDL3/SDL_HasRectIntersectionFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasRectIntersectionFloat(_0, _1)

def SDL_GetRectIntersectionFloat(_0: LP_SDL_FRect, _1: LP_SDL_FRect, _2: LP_SDL_FRect) -> ctypes.c_bool:
    """
    Calculate the intersection of two rectangles with float precision.
    https://wiki.libsdl.org/SDL3/SDL_GetRectIntersectionFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRectIntersectionFloat(_0, _1, _2)

def SDL_GetRectUnionFloat(_0: LP_SDL_FRect, _1: LP_SDL_FRect, _2: LP_SDL_FRect) -> ctypes.c_bool:
    """
    Calculate the union of two rectangles with float precision.
    https://wiki.libsdl.org/SDL3/SDL_GetRectUnionFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRectUnionFloat(_0, _1, _2)

def SDL_GetRectEnclosingPointsFloat(_0: LP_SDL_FPoint, _1: ctypes.c_long, _2: LP_SDL_FRect, _3: LP_SDL_FRect) -> ctypes.c_bool:
    """
    Calculate a minimal rectangle enclosing a set of points with float precision.
    https://wiki.libsdl.org/SDL3/SDL_GetRectEnclosingPointsFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRectEnclosingPointsFloat(_0, _1, _2, _3)

def SDL_GetRectAndLineIntersectionFloat(_0: LP_SDL_FRect, _1: LP_c_float, _2: LP_c_float, _3: LP_c_float, _4: LP_c_float) -> ctypes.c_bool:
    """
    Calculate the intersection of a rectangle and line segment with float precision.
    https://wiki.libsdl.org/SDL3/SDL_GetRectAndLineIntersectionFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRectAndLineIntersectionFloat(_0, _1, _2, _3, _4)

def SDL_CreateSurface(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_long) -> LP_SDL_Surface:
    """
    Allocate a new surface with a specific pixel format.
    https://wiki.libsdl.org/SDL3/SDL_CreateSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateSurface(_0, _1, _2)

def SDL_CreateSurfaceFrom(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_void_p, _4: ctypes.c_long) -> LP_SDL_Surface:
    """
    Allocate a new surface with a specific pixel format and existing pixel data.
    https://wiki.libsdl.org/SDL3/SDL_CreateSurfaceFrom
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateSurfaceFrom(_0, _1, _2, _3, _4)

def SDL_DestroySurface(_0: LP_SDL_Surface) -> None:
    """
    Free a surface.
    https://wiki.libsdl.org/SDL3/SDL_DestroySurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroySurface(_0)

def SDL_GetSurfaceProperties(_0: LP_SDL_Surface) -> ctypes.c_ulong:
    """
    Get the properties associated with a surface.
    https://wiki.libsdl.org/SDL3/SDL_GetSurfaceProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSurfaceProperties(_0)

def SDL_SetSurfaceColorspace(_0: LP_SDL_Surface, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the colorspace used by a surface.
    https://wiki.libsdl.org/SDL3/SDL_SetSurfaceColorspace
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetSurfaceColorspace(_0, _1)

def SDL_GetSurfaceColorspace(_0: LP_SDL_Surface) -> ctypes.c_long:
    """
    Get the colorspace used by a surface.
    https://wiki.libsdl.org/SDL3/SDL_GetSurfaceColorspace
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSurfaceColorspace(_0)

def SDL_CreateSurfacePalette(_0: LP_SDL_Surface) -> LP_SDL_Palette:
    """
    Create a palette and associate it with a surface.
    https://wiki.libsdl.org/SDL3/SDL_CreateSurfacePalette
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateSurfacePalette(_0)

def SDL_SetSurfacePalette(_0: LP_SDL_Surface, _1: LP_SDL_Palette) -> ctypes.c_bool:
    """
    Set the palette used by a surface.
    https://wiki.libsdl.org/SDL3/SDL_SetSurfacePalette
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetSurfacePalette(_0, _1)

def SDL_GetSurfacePalette(_0: LP_SDL_Surface) -> LP_SDL_Palette:
    """
    Get the palette used by a surface.
    https://wiki.libsdl.org/SDL3/SDL_GetSurfacePalette
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSurfacePalette(_0)

def SDL_AddSurfaceAlternateImage(_0: LP_SDL_Surface, _1: LP_SDL_Surface) -> ctypes.c_bool:
    """
    Add an alternate version of a surface.
    https://wiki.libsdl.org/SDL3/SDL_AddSurfaceAlternateImage
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AddSurfaceAlternateImage(_0, _1)

def SDL_SurfaceHasAlternateImages(_0: LP_SDL_Surface) -> ctypes.c_bool:
    """
    Return whether a surface has alternate versions available.
    https://wiki.libsdl.org/SDL3/SDL_SurfaceHasAlternateImages
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SurfaceHasAlternateImages(_0)

def SDL_GetSurfaceImages(_0: LP_SDL_Surface, _1: LP_c_long) -> LP_LP_SDL_Surface:
    """
    Get an array including all versions of a surface.
    https://wiki.libsdl.org/SDL3/SDL_GetSurfaceImages
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSurfaceImages(_0, _1)

def SDL_RemoveSurfaceAlternateImages(_0: LP_SDL_Surface) -> None:
    """
    Remove all alternate versions of a surface.
    https://wiki.libsdl.org/SDL3/SDL_RemoveSurfaceAlternateImages
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RemoveSurfaceAlternateImages(_0)

def SDL_LockSurface(_0: LP_SDL_Surface) -> ctypes.c_bool:
    """
    Set up a surface for directly accessing the pixels.
    https://wiki.libsdl.org/SDL3/SDL_LockSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LockSurface(_0)

def SDL_UnlockSurface(_0: LP_SDL_Surface) -> None:
    """
    Release a surface after directly accessing the pixels.
    https://wiki.libsdl.org/SDL3/SDL_UnlockSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnlockSurface(_0)

def SDL_LoadBMP_IO(_0: LP_SDL_IOStream, _1: ctypes.c_bool) -> LP_SDL_Surface:
    """
    Load a BMP image from a seekable SDL data stream.
    https://wiki.libsdl.org/SDL3/SDL_LoadBMP_IO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LoadBMP_IO(_0, _1)

def SDL_LoadBMP(_0: ctypes.c_char_p) -> LP_SDL_Surface:
    """
    Load a BMP image from a file.
    https://wiki.libsdl.org/SDL3/SDL_LoadBMP
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LoadBMP(_0)

def SDL_SaveBMP_IO(_0: LP_SDL_Surface, _1: LP_SDL_IOStream, _2: ctypes.c_bool) -> ctypes.c_bool:
    """
    Save a surface to a seekable SDL data stream in BMP format.
    https://wiki.libsdl.org/SDL3/SDL_SaveBMP_IO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SaveBMP_IO(_0, _1, _2)

def SDL_SaveBMP(_0: LP_SDL_Surface, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Save a surface to a file.
    https://wiki.libsdl.org/SDL3/SDL_SaveBMP
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SaveBMP(_0, _1)

def SDL_SetSurfaceRLE(_0: LP_SDL_Surface, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set the RLE acceleration hint for a surface.
    https://wiki.libsdl.org/SDL3/SDL_SetSurfaceRLE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetSurfaceRLE(_0, _1)

def SDL_SurfaceHasRLE(_0: LP_SDL_Surface) -> ctypes.c_bool:
    """
    Returns whether the surface is RLE enabled.
    https://wiki.libsdl.org/SDL3/SDL_SurfaceHasRLE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SurfaceHasRLE(_0)

def SDL_SetSurfaceColorKey(_0: LP_SDL_Surface, _1: ctypes.c_bool, _2: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Set the color key (transparent pixel) in a surface.
    https://wiki.libsdl.org/SDL3/SDL_SetSurfaceColorKey
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetSurfaceColorKey(_0, _1, _2)

def SDL_SurfaceHasColorKey(_0: LP_SDL_Surface) -> ctypes.c_bool:
    """
    Returns whether the surface has a color key.
    https://wiki.libsdl.org/SDL3/SDL_SurfaceHasColorKey
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SurfaceHasColorKey(_0)

def SDL_GetSurfaceColorKey(_0: LP_SDL_Surface, _1: LP_c_ulong) -> ctypes.c_bool:
    """
    Get the color key (transparent pixel) for a surface.
    https://wiki.libsdl.org/SDL3/SDL_GetSurfaceColorKey
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSurfaceColorKey(_0, _1)

def SDL_SetSurfaceColorMod(_0: LP_SDL_Surface, _1: ctypes.c_ubyte, _2: ctypes.c_ubyte, _3: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set an additional color value multiplied into blit operations.
    https://wiki.libsdl.org/SDL3/SDL_SetSurfaceColorMod
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetSurfaceColorMod(_0, _1, _2, _3)

def SDL_GetSurfaceColorMod(_0: LP_SDL_Surface, _1: LP_c_ubyte, _2: LP_c_ubyte, _3: LP_c_ubyte) -> ctypes.c_bool:
    """
    Get the additional color value multiplied into blit operations.
    https://wiki.libsdl.org/SDL3/SDL_GetSurfaceColorMod
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSurfaceColorMod(_0, _1, _2, _3)

def SDL_SetSurfaceAlphaMod(_0: LP_SDL_Surface, _1: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set an additional alpha value used in blit operations.
    https://wiki.libsdl.org/SDL3/SDL_SetSurfaceAlphaMod
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetSurfaceAlphaMod(_0, _1)

def SDL_GetSurfaceAlphaMod(_0: LP_SDL_Surface, _1: LP_c_ubyte) -> ctypes.c_bool:
    """
    Get the additional alpha value used in blit operations.
    https://wiki.libsdl.org/SDL3/SDL_GetSurfaceAlphaMod
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSurfaceAlphaMod(_0, _1)

def SDL_SetSurfaceBlendMode(_0: LP_SDL_Surface, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Set the blend mode used for blit operations.
    https://wiki.libsdl.org/SDL3/SDL_SetSurfaceBlendMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetSurfaceBlendMode(_0, _1)

def SDL_GetSurfaceBlendMode(_0: LP_SDL_Surface, _1: LP_c_ulong) -> ctypes.c_bool:
    """
    Get the blend mode used for blit operations.
    https://wiki.libsdl.org/SDL3/SDL_GetSurfaceBlendMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSurfaceBlendMode(_0, _1)

def SDL_SetSurfaceClipRect(_0: LP_SDL_Surface, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Set the clipping rectangle for a surface.
    https://wiki.libsdl.org/SDL3/SDL_SetSurfaceClipRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetSurfaceClipRect(_0, _1)

def SDL_GetSurfaceClipRect(_0: LP_SDL_Surface, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Get the clipping rectangle for a surface.
    https://wiki.libsdl.org/SDL3/SDL_GetSurfaceClipRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSurfaceClipRect(_0, _1)

def SDL_FlipSurface(_0: LP_SDL_Surface, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Flip a surface vertically or horizontally.
    https://wiki.libsdl.org/SDL3/SDL_FlipSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_FlipSurface(_0, _1)

def SDL_DuplicateSurface(_0: LP_SDL_Surface) -> LP_SDL_Surface:
    """
    Creates a new surface identical to the existing surface.
    https://wiki.libsdl.org/SDL3/SDL_DuplicateSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DuplicateSurface(_0)

def SDL_ScaleSurface(_0: LP_SDL_Surface, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_ulong) -> LP_SDL_Surface:
    """
    Creates a new surface identical to the existing surface, scaled to the desired size.
    https://wiki.libsdl.org/SDL3/SDL_ScaleSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ScaleSurface(_0, _1, _2, _3)

def SDL_ConvertSurface(_0: LP_SDL_Surface, _1: ctypes.c_long) -> LP_SDL_Surface:
    """
    Copy an existing surface to a new surface of the specified format.
    https://wiki.libsdl.org/SDL3/SDL_ConvertSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ConvertSurface(_0, _1)

def SDL_ConvertSurfaceAndColorspace(_0: LP_SDL_Surface, _1: ctypes.c_long, _2: LP_SDL_Palette, _3: ctypes.c_long, _4: ctypes.c_ulong) -> LP_SDL_Surface:
    """
    Copy an existing surface to a new surface of the specified format and colorspace.
    https://wiki.libsdl.org/SDL3/SDL_ConvertSurfaceAndColorspace
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ConvertSurfaceAndColorspace(_0, _1, _2, _3, _4)

def SDL_ConvertPixels(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_void_p, _4: ctypes.c_long, _5: ctypes.c_long, _6: ctypes.c_void_p, _7: ctypes.c_long) -> ctypes.c_bool:
    """
    Copy a block of pixels of one format to another format.
    https://wiki.libsdl.org/SDL3/SDL_ConvertPixels
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ConvertPixels(_0, _1, _2, _3, _4, _5, _6, _7)

def SDL_ConvertPixelsAndColorspace(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_long, _4: ctypes.c_ulong, _5: ctypes.c_void_p, _6: ctypes.c_long, _7: ctypes.c_long, _8: ctypes.c_long, _9: ctypes.c_ulong, _10: ctypes.c_void_p, _11: ctypes.c_long) -> ctypes.c_bool:
    """
    Copy a block of pixels of one format and colorspace to another format and colorspace.
    https://wiki.libsdl.org/SDL3/SDL_ConvertPixelsAndColorspace
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ConvertPixelsAndColorspace(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11)

def SDL_PremultiplyAlpha(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_void_p, _4: ctypes.c_long, _5: ctypes.c_long, _6: ctypes.c_void_p, _7: ctypes.c_long, _8: ctypes.c_bool) -> ctypes.c_bool:
    """
    Premultiply the alpha on a block of pixels.
    https://wiki.libsdl.org/SDL3/SDL_PremultiplyAlpha
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PremultiplyAlpha(_0, _1, _2, _3, _4, _5, _6, _7, _8)

def SDL_PremultiplySurfaceAlpha(_0: LP_SDL_Surface, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Premultiply the alpha in a surface.
    https://wiki.libsdl.org/SDL3/SDL_PremultiplySurfaceAlpha
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PremultiplySurfaceAlpha(_0, _1)

def SDL_ClearSurface(_0: LP_SDL_Surface, _1: ctypes.c_float, _2: ctypes.c_float, _3: ctypes.c_float, _4: ctypes.c_float) -> ctypes.c_bool:
    """
    Clear a surface with a specific color, with floating point precision.
    https://wiki.libsdl.org/SDL3/SDL_ClearSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ClearSurface(_0, _1, _2, _3, _4)

def SDL_FillSurfaceRect(_0: LP_SDL_Surface, _1: LP_SDL_Rect, _2: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Perform a fast fill of a rectangle with a specific color.
    https://wiki.libsdl.org/SDL3/SDL_FillSurfaceRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_FillSurfaceRect(_0, _1, _2)

def SDL_FillSurfaceRects(_0: LP_SDL_Surface, _1: LP_SDL_Rect, _2: ctypes.c_long, _3: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Perform a fast fill of a set of rectangles with a specific color.
    https://wiki.libsdl.org/SDL3/SDL_FillSurfaceRects
    """
    return SDL_GET_DLL(SDL_DLL).SDL_FillSurfaceRects(_0, _1, _2, _3)

def SDL_BlitSurface(_0: LP_SDL_Surface, _1: LP_SDL_Rect, _2: LP_SDL_Surface, _3: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Performs a fast blit from the source surface to the destination surface.
    https://wiki.libsdl.org/SDL3/SDL_BlitSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BlitSurface(_0, _1, _2, _3)

def SDL_BlitSurfaceUnchecked(_0: LP_SDL_Surface, _1: LP_SDL_Rect, _2: LP_SDL_Surface, _3: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Perform low-level surface blitting only.
    https://wiki.libsdl.org/SDL3/SDL_BlitSurfaceUnchecked
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BlitSurfaceUnchecked(_0, _1, _2, _3)

def SDL_BlitSurfaceScaled(_0: LP_SDL_Surface, _1: LP_SDL_Rect, _2: LP_SDL_Surface, _3: LP_SDL_Rect, _4: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Perform a scaled blit to a destination surface, which may be of a different format.
    https://wiki.libsdl.org/SDL3/SDL_BlitSurfaceScaled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BlitSurfaceScaled(_0, _1, _2, _3, _4)

def SDL_BlitSurfaceUncheckedScaled(_0: LP_SDL_Surface, _1: LP_SDL_Rect, _2: LP_SDL_Surface, _3: LP_SDL_Rect, _4: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Perform low-level surface scaled blitting only.
    https://wiki.libsdl.org/SDL3/SDL_BlitSurfaceUncheckedScaled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BlitSurfaceUncheckedScaled(_0, _1, _2, _3, _4)

def SDL_BlitSurfaceTiled(_0: LP_SDL_Surface, _1: LP_SDL_Rect, _2: LP_SDL_Surface, _3: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Perform a tiled blit to a destination surface, which may be of a different format.
    https://wiki.libsdl.org/SDL3/SDL_BlitSurfaceTiled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BlitSurfaceTiled(_0, _1, _2, _3)

def SDL_BlitSurfaceTiledWithScale(_0: LP_SDL_Surface, _1: LP_SDL_Rect, _2: ctypes.c_float, _3: ctypes.c_ulong, _4: LP_SDL_Surface, _5: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Perform a scaled and tiled blit to a destination surface, which may be of a different format.
    https://wiki.libsdl.org/SDL3/SDL_BlitSurfaceTiledWithScale
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BlitSurfaceTiledWithScale(_0, _1, _2, _3, _4, _5)

def SDL_BlitSurface9Grid(_0: LP_SDL_Surface, _1: LP_SDL_Rect, _2: ctypes.c_long, _3: ctypes.c_long, _4: ctypes.c_long, _5: ctypes.c_long, _6: ctypes.c_float, _7: ctypes.c_ulong, _8: LP_SDL_Surface, _9: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Perform a scaled blit using the 9-grid algorithm to a destination surface, which may be of a different format.
    https://wiki.libsdl.org/SDL3/SDL_BlitSurface9Grid
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BlitSurface9Grid(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9)

def SDL_MapSurfaceRGB(_0: LP_SDL_Surface, _1: ctypes.c_ubyte, _2: ctypes.c_ubyte, _3: ctypes.c_ubyte) -> ctypes.c_ulong:
    """
    Map an RGB triple to an opaque pixel value for a surface.
    https://wiki.libsdl.org/SDL3/SDL_MapSurfaceRGB
    """
    return SDL_GET_DLL(SDL_DLL).SDL_MapSurfaceRGB(_0, _1, _2, _3)

def SDL_MapSurfaceRGBA(_0: LP_SDL_Surface, _1: ctypes.c_ubyte, _2: ctypes.c_ubyte, _3: ctypes.c_ubyte, _4: ctypes.c_ubyte) -> ctypes.c_ulong:
    """
    Map an RGBA quadruple to a pixel value for a surface.
    https://wiki.libsdl.org/SDL3/SDL_MapSurfaceRGBA
    """
    return SDL_GET_DLL(SDL_DLL).SDL_MapSurfaceRGBA(_0, _1, _2, _3, _4)

def SDL_ReadSurfacePixel(_0: LP_SDL_Surface, _1: ctypes.c_long, _2: ctypes.c_long, _3: LP_c_ubyte, _4: LP_c_ubyte, _5: LP_c_ubyte, _6: LP_c_ubyte) -> ctypes.c_bool:
    """
    Retrieves a single pixel from a surface.
    https://wiki.libsdl.org/SDL3/SDL_ReadSurfacePixel
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadSurfacePixel(_0, _1, _2, _3, _4, _5, _6)

def SDL_ReadSurfacePixelFloat(_0: LP_SDL_Surface, _1: ctypes.c_long, _2: ctypes.c_long, _3: LP_c_float, _4: LP_c_float, _5: LP_c_float, _6: LP_c_float) -> ctypes.c_bool:
    """
    Retrieves a single pixel from a surface.
    https://wiki.libsdl.org/SDL3/SDL_ReadSurfacePixelFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadSurfacePixelFloat(_0, _1, _2, _3, _4, _5, _6)

def SDL_WriteSurfacePixel(_0: LP_SDL_Surface, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_ubyte, _4: ctypes.c_ubyte, _5: ctypes.c_ubyte, _6: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Writes a single pixel to a surface.
    https://wiki.libsdl.org/SDL3/SDL_WriteSurfacePixel
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteSurfacePixel(_0, _1, _2, _3, _4, _5, _6)

def SDL_WriteSurfacePixelFloat(_0: LP_SDL_Surface, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_float, _4: ctypes.c_float, _5: ctypes.c_float, _6: ctypes.c_float) -> ctypes.c_bool:
    """
    Writes a single pixel to a surface.
    https://wiki.libsdl.org/SDL3/SDL_WriteSurfacePixelFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteSurfacePixelFloat(_0, _1, _2, _3, _4, _5, _6)

def SDL_GetNumCameraDrivers() -> ctypes.c_long:
    """
    Use this function to get the number of built-in camera drivers.
    https://wiki.libsdl.org/SDL3/SDL_GetNumCameraDrivers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumCameraDrivers()

def SDL_GetCameraDriver(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Use this function to get the name of a built in camera driver.
    https://wiki.libsdl.org/SDL3/SDL_GetCameraDriver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCameraDriver(_0)

def SDL_GetCurrentCameraDriver() -> ctypes.c_char_p:
    """
    Get the name of the current camera driver.
    https://wiki.libsdl.org/SDL3/SDL_GetCurrentCameraDriver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCurrentCameraDriver()

def SDL_GetCameras(_0: LP_c_long) -> LP_c_ulong:
    """
    Get a list of currently connected camera devices.
    https://wiki.libsdl.org/SDL3/SDL_GetCameras
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCameras(_0)

def SDL_GetCameraSupportedFormats(_0: ctypes.c_ulong, _1: LP_c_long) -> LP_LP_SDL_CameraSpec:
    """
    Get the list of native formats/sizes a camera supports.
    https://wiki.libsdl.org/SDL3/SDL_GetCameraSupportedFormats
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCameraSupportedFormats(_0, _1)

def SDL_GetCameraName(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the human-readable device name for a camera.
    https://wiki.libsdl.org/SDL3/SDL_GetCameraName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCameraName(_0)

def SDL_GetCameraPosition(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the position of the camera in relation to the system.
    https://wiki.libsdl.org/SDL3/SDL_GetCameraPosition
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCameraPosition(_0)

def SDL_OpenCamera(_0: ctypes.c_ulong, _1: LP_SDL_CameraSpec) -> LP_SDL_Camera:
    """
    Open a video recording device (a "camera").
    https://wiki.libsdl.org/SDL3/SDL_OpenCamera
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenCamera(_0, _1)

def SDL_GetCameraPermissionState(_0: LP_SDL_Camera) -> ctypes.c_long:
    """
    Query if camera access has been approved by the user.
    https://wiki.libsdl.org/SDL3/SDL_GetCameraPermissionState
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCameraPermissionState(_0)

def SDL_GetCameraID(_0: LP_SDL_Camera) -> ctypes.c_ulong:
    """
    Get the instance ID of an opened camera.
    https://wiki.libsdl.org/SDL3/SDL_GetCameraID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCameraID(_0)

def SDL_GetCameraProperties(_0: LP_SDL_Camera) -> ctypes.c_ulong:
    """
    Get the properties associated with an opened camera.
    https://wiki.libsdl.org/SDL3/SDL_GetCameraProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCameraProperties(_0)

def SDL_GetCameraFormat(_0: LP_SDL_Camera, _1: LP_SDL_CameraSpec) -> ctypes.c_bool:
    """
    Get the spec that a camera is using when generating images.
    https://wiki.libsdl.org/SDL3/SDL_GetCameraFormat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCameraFormat(_0, _1)

def SDL_AcquireCameraFrame(_0: LP_SDL_Camera, _1: LP_c_longlong) -> LP_SDL_Surface:
    """
    Acquire a frame.
    https://wiki.libsdl.org/SDL3/SDL_AcquireCameraFrame
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AcquireCameraFrame(_0, _1)

def SDL_ReleaseCameraFrame(_0: LP_SDL_Camera, _1: LP_SDL_Surface) -> None:
    """
    Release a frame of video acquired from a camera.
    https://wiki.libsdl.org/SDL3/SDL_ReleaseCameraFrame
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReleaseCameraFrame(_0, _1)

def SDL_CloseCamera(_0: LP_SDL_Camera) -> None:
    """
    Use this function to shut down camera processing and close the camera device.
    https://wiki.libsdl.org/SDL3/SDL_CloseCamera
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CloseCamera(_0)

def SDL_SetClipboardText(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Put UTF-8 text into the clipboard.
    https://wiki.libsdl.org/SDL3/SDL_SetClipboardText
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetClipboardText(_0)

def SDL_GetClipboardText() -> ctypes.c_char_p:
    """
    Get UTF-8 text from the clipboard.
    https://wiki.libsdl.org/SDL3/SDL_GetClipboardText
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetClipboardText()

def SDL_HasClipboardText() -> ctypes.c_bool:
    """
    Query whether the clipboard exists and contains a non-empty text string.
    https://wiki.libsdl.org/SDL3/SDL_HasClipboardText
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasClipboardText()

def SDL_SetPrimarySelectionText(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Put UTF-8 text into the primary selection.
    https://wiki.libsdl.org/SDL3/SDL_SetPrimarySelectionText
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetPrimarySelectionText(_0)

def SDL_GetPrimarySelectionText() -> ctypes.c_char_p:
    """
    Get UTF-8 text from the primary selection.
    https://wiki.libsdl.org/SDL3/SDL_GetPrimarySelectionText
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPrimarySelectionText()

def SDL_HasPrimarySelectionText() -> ctypes.c_bool:
    """
    Query whether the primary selection exists and contains a non-empty text string.
    https://wiki.libsdl.org/SDL3/SDL_HasPrimarySelectionText
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasPrimarySelectionText()

def SDL_SetClipboardData(_0: ctypes._Pointer, _1: ctypes._Pointer, _2: ctypes.c_void_p, _3: LP_c_char_p, _4: ctypes.c_ulonglong) -> ctypes.c_bool:
    """
    Offer clipboard data to the OS.
    https://wiki.libsdl.org/SDL3/SDL_SetClipboardData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetClipboardData(_0, _1, _2, _3, _4)

def SDL_ClearClipboardData() -> ctypes.c_bool:
    """
    Clear the clipboard data.
    https://wiki.libsdl.org/SDL3/SDL_ClearClipboardData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ClearClipboardData()

def SDL_GetClipboardData(_0: ctypes.c_char_p, _1: LP_c_ulonglong) -> ctypes.c_void_p:
    """
    Get the data from clipboard for a given mime type.
    https://wiki.libsdl.org/SDL3/SDL_GetClipboardData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetClipboardData(_0, _1)

def SDL_HasClipboardData(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Query whether there is data in the clipboard for the provided mime type.
    https://wiki.libsdl.org/SDL3/SDL_HasClipboardData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasClipboardData(_0)

def SDL_GetNumLogicalCPUCores() -> ctypes.c_long:
    """
    Get the number of logical CPU cores available.
    https://wiki.libsdl.org/SDL3/SDL_GetNumLogicalCPUCores
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumLogicalCPUCores()

def SDL_GetCPUCacheLineSize() -> ctypes.c_long:
    """
    Determine the L1 cache line size of the CPU.
    https://wiki.libsdl.org/SDL3/SDL_GetCPUCacheLineSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCPUCacheLineSize()

def SDL_HasAltiVec() -> ctypes.c_bool:
    """
    Determine whether the CPU has AltiVec features.
    https://wiki.libsdl.org/SDL3/SDL_HasAltiVec
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasAltiVec()

def SDL_HasMMX() -> ctypes.c_bool:
    """
    Determine whether the CPU has MMX features.
    https://wiki.libsdl.org/SDL3/SDL_HasMMX
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasMMX()

def SDL_HasSSE() -> ctypes.c_bool:
    """
    Determine whether the CPU has SSE features.
    https://wiki.libsdl.org/SDL3/SDL_HasSSE
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasSSE()

def SDL_HasSSE2() -> ctypes.c_bool:
    """
    Determine whether the CPU has SSE2 features.
    https://wiki.libsdl.org/SDL3/SDL_HasSSE2
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasSSE2()

def SDL_HasSSE3() -> ctypes.c_bool:
    """
    Determine whether the CPU has SSE3 features.
    https://wiki.libsdl.org/SDL3/SDL_HasSSE3
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasSSE3()

def SDL_HasSSE41() -> ctypes.c_bool:
    """
    Determine whether the CPU has SSE4.1 features.
    https://wiki.libsdl.org/SDL3/SDL_HasSSE41
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasSSE41()

def SDL_HasSSE42() -> ctypes.c_bool:
    """
    Determine whether the CPU has SSE4.2 features.
    https://wiki.libsdl.org/SDL3/SDL_HasSSE42
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasSSE42()

def SDL_HasAVX() -> ctypes.c_bool:
    """
    Determine whether the CPU has AVX features.
    https://wiki.libsdl.org/SDL3/SDL_HasAVX
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasAVX()

def SDL_HasAVX2() -> ctypes.c_bool:
    """
    Determine whether the CPU has AVX2 features.
    https://wiki.libsdl.org/SDL3/SDL_HasAVX2
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasAVX2()

def SDL_HasAVX512F() -> ctypes.c_bool:
    """
    Determine whether the CPU has AVX-512F (foundation) features.
    https://wiki.libsdl.org/SDL3/SDL_HasAVX512F
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasAVX512F()

def SDL_HasARMSIMD() -> ctypes.c_bool:
    """
    Determine whether the CPU has ARM SIMD (ARMv6) features.
    https://wiki.libsdl.org/SDL3/SDL_HasARMSIMD
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasARMSIMD()

def SDL_HasNEON() -> ctypes.c_bool:
    """
    Determine whether the CPU has NEON (ARM SIMD) features.
    https://wiki.libsdl.org/SDL3/SDL_HasNEON
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasNEON()

def SDL_HasLSX() -> ctypes.c_bool:
    """
    Determine whether the CPU has LSX (LOONGARCH SIMD) features.
    https://wiki.libsdl.org/SDL3/SDL_HasLSX
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasLSX()

def SDL_HasLASX() -> ctypes.c_bool:
    """
    Determine whether the CPU has LASX (LOONGARCH SIMD) features.
    https://wiki.libsdl.org/SDL3/SDL_HasLASX
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasLASX()

def SDL_GetSystemRAM() -> ctypes.c_long:
    """
    Get the amount of RAM configured in the system.
    https://wiki.libsdl.org/SDL3/SDL_GetSystemRAM
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSystemRAM()

def SDL_GetSIMDAlignment() -> ctypes.c_ulonglong:
    """
    Report the alignment this system needs for SIMD allocations.
    https://wiki.libsdl.org/SDL3/SDL_GetSIMDAlignment
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSIMDAlignment()

def SDL_GetNumVideoDrivers() -> ctypes.c_long:
    """
    Get the number of video drivers compiled into SDL.
    https://wiki.libsdl.org/SDL3/SDL_GetNumVideoDrivers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumVideoDrivers()

def SDL_GetVideoDriver(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Get the name of a built in video driver.
    https://wiki.libsdl.org/SDL3/SDL_GetVideoDriver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetVideoDriver(_0)

def SDL_GetCurrentVideoDriver() -> ctypes.c_char_p:
    """
    Get the name of the currently initialized video driver.
    https://wiki.libsdl.org/SDL3/SDL_GetCurrentVideoDriver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCurrentVideoDriver()

def SDL_GetSystemTheme() -> ctypes.c_long:
    """
    Get the current system theme.
    https://wiki.libsdl.org/SDL3/SDL_GetSystemTheme
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSystemTheme()

def SDL_GetDisplays(_0: LP_c_long) -> LP_c_ulong:
    """
    Get a list of currently connected displays.
    https://wiki.libsdl.org/SDL3/SDL_GetDisplays
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDisplays(_0)

def SDL_GetPrimaryDisplay() -> ctypes.c_ulong:
    """
    Return the primary display.
    https://wiki.libsdl.org/SDL3/SDL_GetPrimaryDisplay
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPrimaryDisplay()

def SDL_GetDisplayProperties(_0: ctypes.c_ulong) -> ctypes.c_ulong:
    """
    Get the properties associated with a display.
    https://wiki.libsdl.org/SDL3/SDL_GetDisplayProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDisplayProperties(_0)

def SDL_GetDisplayName(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the name of a display in UTF-8 encoding.
    https://wiki.libsdl.org/SDL3/SDL_GetDisplayName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDisplayName(_0)

def SDL_GetDisplayBounds(_0: ctypes.c_ulong, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Get the desktop area represented by a display.
    https://wiki.libsdl.org/SDL3/SDL_GetDisplayBounds
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDisplayBounds(_0, _1)

def SDL_GetDisplayUsableBounds(_0: ctypes.c_ulong, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Get the usable desktop area represented by a display, in screen coordinates.
    https://wiki.libsdl.org/SDL3/SDL_GetDisplayUsableBounds
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDisplayUsableBounds(_0, _1)

def SDL_GetNaturalDisplayOrientation(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the orientation of a display when it is unrotated.
    https://wiki.libsdl.org/SDL3/SDL_GetNaturalDisplayOrientation
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNaturalDisplayOrientation(_0)

def SDL_GetCurrentDisplayOrientation(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the orientation of a display.
    https://wiki.libsdl.org/SDL3/SDL_GetCurrentDisplayOrientation
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCurrentDisplayOrientation(_0)

def SDL_GetDisplayContentScale(_0: ctypes.c_ulong) -> ctypes.c_float:
    """
    Get the content scale of a display.
    https://wiki.libsdl.org/SDL3/SDL_GetDisplayContentScale
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDisplayContentScale(_0)

def SDL_GetFullscreenDisplayModes(_0: ctypes.c_ulong, _1: LP_c_long) -> LP_LP_SDL_DisplayMode:
    """
    Get a list of fullscreen display modes available on a display.
    https://wiki.libsdl.org/SDL3/SDL_GetFullscreenDisplayModes
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetFullscreenDisplayModes(_0, _1)

def SDL_GetClosestFullscreenDisplayMode(_0: ctypes.c_ulong, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_float, _4: ctypes.c_bool, _5: LP_SDL_DisplayMode) -> ctypes.c_bool:
    """
    Get the closest match to the requested display mode.
    https://wiki.libsdl.org/SDL3/SDL_GetClosestFullscreenDisplayMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetClosestFullscreenDisplayMode(_0, _1, _2, _3, _4, _5)

def SDL_GetDesktopDisplayMode(_0: ctypes.c_ulong) -> LP_SDL_DisplayMode:
    """
    Get information about the desktop's display mode.
    https://wiki.libsdl.org/SDL3/SDL_GetDesktopDisplayMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDesktopDisplayMode(_0)

def SDL_GetCurrentDisplayMode(_0: ctypes.c_ulong) -> LP_SDL_DisplayMode:
    """
    Get information about the current display mode.
    https://wiki.libsdl.org/SDL3/SDL_GetCurrentDisplayMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCurrentDisplayMode(_0)

def SDL_GetDisplayForPoint(_0: LP_SDL_Point) -> ctypes.c_ulong:
    """
    Get the display containing a point.
    https://wiki.libsdl.org/SDL3/SDL_GetDisplayForPoint
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDisplayForPoint(_0)

def SDL_GetDisplayForRect(_0: LP_SDL_Rect) -> ctypes.c_ulong:
    """
    Get the display primarily containing a rect.
    https://wiki.libsdl.org/SDL3/SDL_GetDisplayForRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDisplayForRect(_0)

def SDL_GetDisplayForWindow(_0: LP_SDL_Window) -> ctypes.c_ulong:
    """
    Get the display associated with a window.
    https://wiki.libsdl.org/SDL3/SDL_GetDisplayForWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDisplayForWindow(_0)

def SDL_GetWindowPixelDensity(_0: LP_SDL_Window) -> ctypes.c_float:
    """
    Get the pixel density of a window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowPixelDensity
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowPixelDensity(_0)

def SDL_GetWindowDisplayScale(_0: LP_SDL_Window) -> ctypes.c_float:
    """
    Get the content display scale relative to a window's pixel size.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowDisplayScale
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowDisplayScale(_0)

def SDL_SetWindowFullscreenMode(_0: LP_SDL_Window, _1: LP_SDL_DisplayMode) -> ctypes.c_bool:
    """
    Set the display mode to use when a window is visible and fullscreen.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowFullscreenMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowFullscreenMode(_0, _1)

def SDL_GetWindowFullscreenMode(_0: LP_SDL_Window) -> LP_SDL_DisplayMode:
    """
    Query the display mode to use when a window is visible at fullscreen.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowFullscreenMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowFullscreenMode(_0)

def SDL_GetWindowICCProfile(_0: LP_SDL_Window, _1: LP_c_ulonglong) -> ctypes.c_void_p:
    """
    Get the raw ICC profile data for the screen the window is currently on.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowICCProfile
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowICCProfile(_0, _1)

def SDL_GetWindowPixelFormat(_0: LP_SDL_Window) -> ctypes.c_long:
    """
    Get the pixel format associated with the window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowPixelFormat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowPixelFormat(_0)

def SDL_GetWindows(_0: LP_c_long) -> LP_LP_SDL_Window:
    """
    Get a list of valid windows.
    https://wiki.libsdl.org/SDL3/SDL_GetWindows
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindows(_0)

def SDL_CreateWindow(_0: ctypes.c_char_p, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_ulonglong) -> LP_SDL_Window:
    """
    Create a window with the specified dimensions and flags.
    https://wiki.libsdl.org/SDL3/SDL_CreateWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateWindow(_0, _1, _2, _3)

def SDL_CreatePopupWindow(_0: LP_SDL_Window, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_long, _4: ctypes.c_long, _5: ctypes.c_ulonglong) -> LP_SDL_Window:
    """
    Create a child popup window of the specified parent window.
    https://wiki.libsdl.org/SDL3/SDL_CreatePopupWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreatePopupWindow(_0, _1, _2, _3, _4, _5)

def SDL_CreateWindowWithProperties(_0: ctypes.c_ulong) -> LP_SDL_Window:
    """
    Create a window with the specified properties.
    https://wiki.libsdl.org/SDL3/SDL_CreateWindowWithProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateWindowWithProperties(_0)

def SDL_GetWindowID(_0: LP_SDL_Window) -> ctypes.c_ulong:
    """
    Get the numeric ID of a window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowID(_0)

def SDL_GetWindowFromID(_0: ctypes.c_ulong) -> LP_SDL_Window:
    """
    Get a window from a stored ID.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowFromID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowFromID(_0)

def SDL_GetWindowParent(_0: LP_SDL_Window) -> LP_SDL_Window:
    """
    Get parent of a window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowParent
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowParent(_0)

def SDL_GetWindowProperties(_0: LP_SDL_Window) -> ctypes.c_ulong:
    """
    Get the properties associated with a window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowProperties(_0)

def SDL_GetWindowFlags(_0: LP_SDL_Window) -> ctypes.c_ulonglong:
    """
    Get the window flags.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowFlags
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowFlags(_0)

def SDL_SetWindowTitle(_0: LP_SDL_Window, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Set the title of a window.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowTitle
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowTitle(_0, _1)

def SDL_GetWindowTitle(_0: LP_SDL_Window) -> ctypes.c_char_p:
    """
    Get the title of a window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowTitle
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowTitle(_0)

def SDL_SetWindowIcon(_0: LP_SDL_Window, _1: LP_SDL_Surface) -> ctypes.c_bool:
    """
    Set the icon for a window.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowIcon
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowIcon(_0, _1)

def SDL_SetWindowPosition(_0: LP_SDL_Window, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Request that the window's position be set.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowPosition
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowPosition(_0, _1, _2)

def SDL_GetWindowPosition(_0: LP_SDL_Window, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the position of a window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowPosition
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowPosition(_0, _1, _2)

def SDL_SetWindowSize(_0: LP_SDL_Window, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Request that the size of a window's client area be set.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowSize(_0, _1, _2)

def SDL_GetWindowSize(_0: LP_SDL_Window, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the size of a window's client area.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowSize(_0, _1, _2)

def SDL_GetWindowSafeArea(_0: LP_SDL_Window, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Get the safe area for this window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowSafeArea
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowSafeArea(_0, _1)

def SDL_SetWindowAspectRatio(_0: LP_SDL_Window, _1: ctypes.c_float, _2: ctypes.c_float) -> ctypes.c_bool:
    """
    Request that the aspect ratio of a window's client area be set.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowAspectRatio
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowAspectRatio(_0, _1, _2)

def SDL_GetWindowAspectRatio(_0: LP_SDL_Window, _1: LP_c_float, _2: LP_c_float) -> ctypes.c_bool:
    """
    Get the size of a window's client area.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowAspectRatio
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowAspectRatio(_0, _1, _2)

def SDL_GetWindowBordersSize(_0: LP_SDL_Window, _1: LP_c_long, _2: LP_c_long, _3: LP_c_long, _4: LP_c_long) -> ctypes.c_bool:
    """
    Get the size of a window's borders (decorations) around the client area.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowBordersSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowBordersSize(_0, _1, _2, _3, _4)

def SDL_GetWindowSizeInPixels(_0: LP_SDL_Window, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the size of a window's client area, in pixels.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowSizeInPixels
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowSizeInPixels(_0, _1, _2)

def SDL_SetWindowMinimumSize(_0: LP_SDL_Window, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the minimum size of a window's client area.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowMinimumSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowMinimumSize(_0, _1, _2)

def SDL_GetWindowMinimumSize(_0: LP_SDL_Window, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the minimum size of a window's client area.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowMinimumSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowMinimumSize(_0, _1, _2)

def SDL_SetWindowMaximumSize(_0: LP_SDL_Window, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the maximum size of a window's client area.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowMaximumSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowMaximumSize(_0, _1, _2)

def SDL_GetWindowMaximumSize(_0: LP_SDL_Window, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the maximum size of a window's client area.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowMaximumSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowMaximumSize(_0, _1, _2)

def SDL_SetWindowBordered(_0: LP_SDL_Window, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set the border state of a window.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowBordered
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowBordered(_0, _1)

def SDL_SetWindowResizable(_0: LP_SDL_Window, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set the user-resizable state of a window.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowResizable
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowResizable(_0, _1)

def SDL_SetWindowAlwaysOnTop(_0: LP_SDL_Window, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set the window to always be above the others.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowAlwaysOnTop
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowAlwaysOnTop(_0, _1)

def SDL_ShowWindow(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Show a window.
    https://wiki.libsdl.org/SDL3/SDL_ShowWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShowWindow(_0)

def SDL_HideWindow(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Hide a window.
    https://wiki.libsdl.org/SDL3/SDL_HideWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HideWindow(_0)

def SDL_RaiseWindow(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Request that a window be raised above other windows and gain the input focus.
    https://wiki.libsdl.org/SDL3/SDL_RaiseWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RaiseWindow(_0)

def SDL_MaximizeWindow(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Request that the window be made as large as possible.
    https://wiki.libsdl.org/SDL3/SDL_MaximizeWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_MaximizeWindow(_0)

def SDL_MinimizeWindow(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Request that the window be minimized to an iconic representation.
    https://wiki.libsdl.org/SDL3/SDL_MinimizeWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_MinimizeWindow(_0)

def SDL_RestoreWindow(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Request that the size and position of a minimized or maximized window be restored.
    https://wiki.libsdl.org/SDL3/SDL_RestoreWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RestoreWindow(_0)

def SDL_SetWindowFullscreen(_0: LP_SDL_Window, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Request that the window's fullscreen state be changed.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowFullscreen
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowFullscreen(_0, _1)

def SDL_SyncWindow(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Block until any pending window state is finalized.
    https://wiki.libsdl.org/SDL3/SDL_SyncWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SyncWindow(_0)

def SDL_WindowHasSurface(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Return whether the window has a surface associated with it.
    https://wiki.libsdl.org/SDL3/SDL_WindowHasSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WindowHasSurface(_0)

def SDL_GetWindowSurface(_0: LP_SDL_Window) -> LP_SDL_Surface:
    """
    Get the SDL surface associated with the window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowSurface(_0)

def SDL_SetWindowSurfaceVSync(_0: LP_SDL_Window, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Toggle VSync for the window surface.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowSurfaceVSync
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowSurfaceVSync(_0, _1)

def SDL_GetWindowSurfaceVSync(_0: LP_SDL_Window, _1: LP_c_long) -> ctypes.c_bool:
    """
    Get VSync for the window surface.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowSurfaceVSync
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowSurfaceVSync(_0, _1)

def SDL_UpdateWindowSurface(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Copy the window surface to the screen.
    https://wiki.libsdl.org/SDL3/SDL_UpdateWindowSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UpdateWindowSurface(_0)

def SDL_UpdateWindowSurfaceRects(_0: LP_SDL_Window, _1: LP_SDL_Rect, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Copy areas of the window surface to the screen.
    https://wiki.libsdl.org/SDL3/SDL_UpdateWindowSurfaceRects
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UpdateWindowSurfaceRects(_0, _1, _2)

def SDL_DestroyWindowSurface(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Destroy the surface associated with the window.
    https://wiki.libsdl.org/SDL3/SDL_DestroyWindowSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyWindowSurface(_0)

def SDL_SetWindowKeyboardGrab(_0: LP_SDL_Window, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set a window's keyboard grab mode.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowKeyboardGrab
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowKeyboardGrab(_0, _1)

def SDL_SetWindowMouseGrab(_0: LP_SDL_Window, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set a window's mouse grab mode.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowMouseGrab
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowMouseGrab(_0, _1)

def SDL_GetWindowKeyboardGrab(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Get a window's keyboard grab mode.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowKeyboardGrab
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowKeyboardGrab(_0)

def SDL_GetWindowMouseGrab(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Get a window's mouse grab mode.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowMouseGrab
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowMouseGrab(_0)

def SDL_GetGrabbedWindow() -> LP_SDL_Window:
    """
    Get the window that currently has an input grab enabled.
    https://wiki.libsdl.org/SDL3/SDL_GetGrabbedWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGrabbedWindow()

def SDL_SetWindowMouseRect(_0: LP_SDL_Window, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Confines the cursor to the specified area of a window.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowMouseRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowMouseRect(_0, _1)

def SDL_GetWindowMouseRect(_0: LP_SDL_Window) -> LP_SDL_Rect:
    """
    Get the mouse confinement rectangle of a window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowMouseRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowMouseRect(_0)

def SDL_SetWindowOpacity(_0: LP_SDL_Window, _1: ctypes.c_float) -> ctypes.c_bool:
    """
    Set the opacity for a window.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowOpacity
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowOpacity(_0, _1)

def SDL_GetWindowOpacity(_0: LP_SDL_Window) -> ctypes.c_float:
    """
    Get the opacity of a window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowOpacity
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowOpacity(_0)

def SDL_SetWindowParent(_0: LP_SDL_Window, _1: LP_SDL_Window) -> ctypes.c_bool:
    """
    Set the window as a child of a parent window.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowParent
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowParent(_0, _1)

def SDL_SetWindowModal(_0: LP_SDL_Window, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Toggle the state of the window as modal.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowModal
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowModal(_0, _1)

def SDL_SetWindowFocusable(_0: LP_SDL_Window, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set whether the window may have input focus.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowFocusable
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowFocusable(_0, _1)

def SDL_ShowWindowSystemMenu(_0: LP_SDL_Window, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Display the system-level window menu.
    https://wiki.libsdl.org/SDL3/SDL_ShowWindowSystemMenu
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShowWindowSystemMenu(_0, _1, _2)

def SDL_SetWindowHitTest(_0: LP_SDL_Window, _1: ctypes._Pointer, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Provide a callback that decides if a window region has special properties.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowHitTest
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowHitTest(_0, _1, _2)

def SDL_SetWindowShape(_0: LP_SDL_Window, _1: LP_SDL_Surface) -> ctypes.c_bool:
    """
    Set the shape of a transparent window.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowShape
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowShape(_0, _1)

def SDL_FlashWindow(_0: LP_SDL_Window, _1: LP_c_long) -> ctypes.c_bool:
    """
    Request a window to demand attention from the user.
    https://wiki.libsdl.org/SDL3/SDL_FlashWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_FlashWindow(_0, _1)

def SDL_DestroyWindow(_0: LP_SDL_Window) -> None:
    """
    Destroy a window.
    https://wiki.libsdl.org/SDL3/SDL_DestroyWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyWindow(_0)

def SDL_ScreenSaverEnabled() -> ctypes.c_bool:
    """
    Check whether the screensaver is currently enabled.
    https://wiki.libsdl.org/SDL3/SDL_ScreenSaverEnabled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ScreenSaverEnabled()

def SDL_EnableScreenSaver() -> ctypes.c_bool:
    """
    Allow the screen to be blanked by a screen saver.
    https://wiki.libsdl.org/SDL3/SDL_EnableScreenSaver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EnableScreenSaver()

def SDL_DisableScreenSaver() -> ctypes.c_bool:
    """
    Prevent the screen from being blanked by a screen saver.
    https://wiki.libsdl.org/SDL3/SDL_DisableScreenSaver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DisableScreenSaver()

def SDL_GL_LoadLibrary(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Dynamically load an OpenGL library.
    https://wiki.libsdl.org/SDL3/SDL_GL_LoadLibrary
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_LoadLibrary(_0)

def SDL_GL_GetProcAddress(_0: ctypes.c_char_p) -> ctypes._Pointer:
    """
    Get an OpenGL function by name.
    https://wiki.libsdl.org/SDL3/SDL_GL_GetProcAddress
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_GetProcAddress(_0)

def SDL_EGL_GetProcAddress(_0: ctypes.c_char_p) -> ctypes._Pointer:
    """
    Get an EGL library function by name.
    https://wiki.libsdl.org/SDL3/SDL_EGL_GetProcAddress
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EGL_GetProcAddress(_0)

def SDL_GL_UnloadLibrary() -> None:
    """
    Unload the OpenGL library previously loaded by [SDL_GL_LoadLibrary](https://wiki.libsdl.org/SDL3/SDL_GL_LoadLibrary)().
    https://wiki.libsdl.org/SDL3/SDL_GL_UnloadLibrary
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_UnloadLibrary()

def SDL_GL_ExtensionSupported(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Check if an OpenGL extension is supported for the current context.
    https://wiki.libsdl.org/SDL3/SDL_GL_ExtensionSupported
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_ExtensionSupported(_0)

def SDL_GL_ResetAttributes() -> None:
    """
    Reset all previously set OpenGL context attributes to their default values.
    https://wiki.libsdl.org/SDL3/SDL_GL_ResetAttributes
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_ResetAttributes()

def SDL_GL_SetAttribute(_0: ctypes.c_long, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Set an OpenGL window attribute before window creation.
    https://wiki.libsdl.org/SDL3/SDL_GL_SetAttribute
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_SetAttribute(_0, _1)

def SDL_GL_GetAttribute(_0: ctypes.c_long, _1: LP_c_long) -> ctypes.c_bool:
    """
    Get the actual value for an attribute from the current context.
    https://wiki.libsdl.org/SDL3/SDL_GL_GetAttribute
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_GetAttribute(_0, _1)

def SDL_GL_CreateContext(_0: LP_SDL_Window) -> LP_SDL_GLContextState:
    """
    Create an OpenGL context for an OpenGL window, and make it current.
    https://wiki.libsdl.org/SDL3/SDL_GL_CreateContext
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_CreateContext(_0)

def SDL_GL_MakeCurrent(_0: LP_SDL_Window, _1: LP_SDL_GLContextState) -> ctypes.c_bool:
    """
    Set up an OpenGL context for rendering into an OpenGL window.
    https://wiki.libsdl.org/SDL3/SDL_GL_MakeCurrent
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_MakeCurrent(_0, _1)

def SDL_GL_GetCurrentWindow() -> LP_SDL_Window:
    """
    Get the currently active OpenGL window.
    https://wiki.libsdl.org/SDL3/SDL_GL_GetCurrentWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_GetCurrentWindow()

def SDL_GL_GetCurrentContext() -> LP_SDL_GLContextState:
    """
    Get the currently active OpenGL context.
    https://wiki.libsdl.org/SDL3/SDL_GL_GetCurrentContext
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_GetCurrentContext()

def SDL_EGL_GetCurrentDisplay() -> ctypes.c_void_p:
    """
    Get the currently active EGL display.
    https://wiki.libsdl.org/SDL3/SDL_EGL_GetCurrentDisplay
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EGL_GetCurrentDisplay()

def SDL_EGL_GetCurrentConfig() -> ctypes.c_void_p:
    """
    Get the currently active EGL config.
    https://wiki.libsdl.org/SDL3/SDL_EGL_GetCurrentConfig
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EGL_GetCurrentConfig()

def SDL_EGL_GetWindowSurface(_0: LP_SDL_Window) -> ctypes.c_void_p:
    """
    Get the EGL surface associated with the window.
    https://wiki.libsdl.org/SDL3/SDL_EGL_GetWindowSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EGL_GetWindowSurface(_0)

def SDL_EGL_SetAttributeCallbacks(_0: ctypes._Pointer, _1: ctypes._Pointer, _2: ctypes._Pointer) -> None:
    """
    Sets the callbacks for defining custom EGLAttrib arrays for EGL initialization.
    https://wiki.libsdl.org/SDL3/SDL_EGL_SetAttributeCallbacks
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EGL_SetAttributeCallbacks(_0, _1, _2)

def SDL_GL_SetSwapInterval(_0: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the swap interval for the current OpenGL context.
    https://wiki.libsdl.org/SDL3/SDL_GL_SetSwapInterval
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_SetSwapInterval(_0)

def SDL_GL_GetSwapInterval(_0: LP_c_long) -> ctypes.c_bool:
    """
    Get the swap interval for the current OpenGL context.
    https://wiki.libsdl.org/SDL3/SDL_GL_GetSwapInterval
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_GetSwapInterval(_0)

def SDL_GL_SwapWindow(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Update a window with OpenGL rendering.
    https://wiki.libsdl.org/SDL3/SDL_GL_SwapWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_SwapWindow(_0)

def SDL_GL_DestroyContext(_0: LP_SDL_GLContextState) -> ctypes.c_bool:
    """
    Delete an OpenGL context.
    https://wiki.libsdl.org/SDL3/SDL_GL_DestroyContext
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GL_DestroyContext(_0)

def SDL_ShowOpenFileDialog(_0: ctypes._Pointer, _1: ctypes.c_void_p, _2: LP_SDL_Window, _3: LP_SDL_DialogFileFilter, _4: ctypes.c_long, _5: ctypes.c_char_p, _6: ctypes.c_bool) -> None:
    """
    Displays a dialog that lets the user select a file on their filesystem.
    https://wiki.libsdl.org/SDL3/SDL_ShowOpenFileDialog
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShowOpenFileDialog(_0, _1, _2, _3, _4, _5, _6)

def SDL_ShowSaveFileDialog(_0: ctypes._Pointer, _1: ctypes.c_void_p, _2: LP_SDL_Window, _3: LP_SDL_DialogFileFilter, _4: ctypes.c_long, _5: ctypes.c_char_p) -> None:
    """
    Displays a dialog that lets the user choose a new or existing file on their filesystem.
    https://wiki.libsdl.org/SDL3/SDL_ShowSaveFileDialog
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShowSaveFileDialog(_0, _1, _2, _3, _4, _5)

def SDL_ShowOpenFolderDialog(_0: ctypes._Pointer, _1: ctypes.c_void_p, _2: LP_SDL_Window, _3: ctypes.c_char_p, _4: ctypes.c_bool) -> None:
    """
    Displays a dialog that lets the user select a folder on their filesystem.
    https://wiki.libsdl.org/SDL3/SDL_ShowOpenFolderDialog
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShowOpenFolderDialog(_0, _1, _2, _3, _4)

def SDL_ShowFileDialogWithProperties(_0: ctypes.c_long, _1: ctypes._Pointer, _2: ctypes.c_void_p, _3: ctypes.c_ulong) -> None:
    """
    Create and launch a file dialog with the specified properties.
    https://wiki.libsdl.org/SDL3/SDL_ShowFileDialogWithProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShowFileDialogWithProperties(_0, _1, _2, _3)

def SDL_SetError(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Set the SDL error message for the current thread.
    https://wiki.libsdl.org/SDL3/SDL_SetError
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetError(_0)

def SDL_SetErrorV(_0: ctypes.c_char_p, _1: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Set the SDL error message for the current thread.
    https://wiki.libsdl.org/SDL3/SDL_SetErrorV
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetErrorV(_0, _1)

def SDL_OutOfMemory() -> ctypes.c_bool:
    """
    Set an error indicating that memory allocation failed.
    https://wiki.libsdl.org/SDL3/SDL_OutOfMemory
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OutOfMemory()

def SDL_GetError() -> ctypes.c_char_p:
    """
    Retrieve a message about the last error that occurred on the current thread.
    https://wiki.libsdl.org/SDL3/SDL_GetError
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetError()

def SDL_ClearError() -> ctypes.c_bool:
    """
    Clear any previous error message for this thread.
    https://wiki.libsdl.org/SDL3/SDL_ClearError
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ClearError()

def SDL_GetSensors(_0: LP_c_long) -> LP_c_ulong:
    """
    Get a list of currently connected sensors.
    https://wiki.libsdl.org/SDL3/SDL_GetSensors
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensors(_0)

def SDL_GetSensorNameForID(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the implementation dependent name of a sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetSensorNameForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensorNameForID(_0)

def SDL_GetSensorTypeForID(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the type of a sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetSensorTypeForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensorTypeForID(_0)

def SDL_GetSensorNonPortableTypeForID(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the platform dependent type of a sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetSensorNonPortableTypeForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensorNonPortableTypeForID(_0)

def SDL_OpenSensor(_0: ctypes.c_ulong) -> LP_SDL_Sensor:
    """
    Open a sensor for use.
    https://wiki.libsdl.org/SDL3/SDL_OpenSensor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenSensor(_0)

def SDL_GetSensorFromID(_0: ctypes.c_ulong) -> LP_SDL_Sensor:
    """
    Return the [SDL_Sensor](https://wiki.libsdl.org/SDL3/SDL_Sensor) associated with an instance ID.
    https://wiki.libsdl.org/SDL3/SDL_GetSensorFromID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensorFromID(_0)

def SDL_GetSensorProperties(_0: LP_SDL_Sensor) -> ctypes.c_ulong:
    """
    Get the properties associated with a sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetSensorProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensorProperties(_0)

def SDL_GetSensorName(_0: LP_SDL_Sensor) -> ctypes.c_char_p:
    """
    Get the implementation dependent name of a sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetSensorName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensorName(_0)

def SDL_GetSensorType(_0: LP_SDL_Sensor) -> ctypes.c_long:
    """
    Get the type of a sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetSensorType
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensorType(_0)

def SDL_GetSensorNonPortableType(_0: LP_SDL_Sensor) -> ctypes.c_long:
    """
    Get the platform dependent type of a sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetSensorNonPortableType
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensorNonPortableType(_0)

def SDL_GetSensorID(_0: LP_SDL_Sensor) -> ctypes.c_ulong:
    """
    Get the instance ID of a sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetSensorID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensorID(_0)

def SDL_GetSensorData(_0: LP_SDL_Sensor, _1: LP_c_float, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Get the current state of an opened sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetSensorData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSensorData(_0, _1, _2)

def SDL_CloseSensor(_0: LP_SDL_Sensor) -> None:
    """
    Close a sensor previously opened with [SDL_OpenSensor](https://wiki.libsdl.org/SDL3/SDL_OpenSensor)().
    https://wiki.libsdl.org/SDL3/SDL_CloseSensor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CloseSensor(_0)

def SDL_UpdateSensors() -> None:
    """
    Update the current state of the open sensors.
    https://wiki.libsdl.org/SDL3/SDL_UpdateSensors
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UpdateSensors()

def SDL_GetPowerInfo(_0: LP_c_long, _1: LP_c_long) -> ctypes.c_long:
    """
    Get the current power supply details.
    https://wiki.libsdl.org/SDL3/SDL_GetPowerInfo
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPowerInfo(_0, _1)

def SDL_GUIDToString(_0: SDL_GUID, _1: ctypes.c_char_p, _2: ctypes.c_long) -> None:
    """
    Get an ASCII string representation for a given [SDL_GUID](https://wiki.libsdl.org/SDL3/SDL_GUID).
    https://wiki.libsdl.org/SDL3/SDL_GUIDToString
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GUIDToString(_0, _1, _2)

def SDL_StringToGUID(_0: ctypes.c_char_p) -> SDL_GUID:
    """
    Convert a GUID string into a [SDL_GUID](https://wiki.libsdl.org/SDL3/SDL_GUID) structure.
    https://wiki.libsdl.org/SDL3/SDL_StringToGUID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_StringToGUID(_0)

def SDL_LockJoysticks() -> None:
    """
    Locking for atomic access to the joystick API.
    https://wiki.libsdl.org/SDL3/SDL_LockJoysticks
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LockJoysticks()

def SDL_UnlockJoysticks() -> None:
    """
    Unlocking for atomic access to the joystick API.
    https://wiki.libsdl.org/SDL3/SDL_UnlockJoysticks
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnlockJoysticks()

def SDL_HasJoystick() -> ctypes.c_bool:
    """
    Return whether a joystick is currently connected.
    https://wiki.libsdl.org/SDL3/SDL_HasJoystick
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasJoystick()

def SDL_GetJoysticks(_0: LP_c_long) -> LP_c_ulong:
    """
    Get a list of currently connected joysticks.
    https://wiki.libsdl.org/SDL3/SDL_GetJoysticks
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoysticks(_0)

def SDL_GetJoystickNameForID(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the implementation dependent name of a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickNameForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickNameForID(_0)

def SDL_GetJoystickPathForID(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the implementation dependent path of a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickPathForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickPathForID(_0)

def SDL_GetJoystickPlayerIndexForID(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the player index of a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickPlayerIndexForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickPlayerIndexForID(_0)

def SDL_GetJoystickGUIDForID(_0: ctypes.c_ulong) -> SDL_GUID:
    """
    Get the implementation-dependent GUID of a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickGUIDForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickGUIDForID(_0)

def SDL_GetJoystickVendorForID(_0: ctypes.c_ulong) -> ctypes.c_ushort:
    """
    Get the USB vendor ID of a joystick, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickVendorForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickVendorForID(_0)

def SDL_GetJoystickProductForID(_0: ctypes.c_ulong) -> ctypes.c_ushort:
    """
    Get the USB product ID of a joystick, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickProductForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickProductForID(_0)

def SDL_GetJoystickProductVersionForID(_0: ctypes.c_ulong) -> ctypes.c_ushort:
    """
    Get the product version of a joystick, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickProductVersionForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickProductVersionForID(_0)

def SDL_GetJoystickTypeForID(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the type of a joystick, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickTypeForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickTypeForID(_0)

def SDL_OpenJoystick(_0: ctypes.c_ulong) -> LP_SDL_Joystick:
    """
    Open a joystick for use.
    https://wiki.libsdl.org/SDL3/SDL_OpenJoystick
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenJoystick(_0)

def SDL_GetJoystickFromID(_0: ctypes.c_ulong) -> LP_SDL_Joystick:
    """
    Get the [SDL_Joystick](https://wiki.libsdl.org/SDL3/SDL_Joystick) associated with an instance ID, if it has been opened.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickFromID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickFromID(_0)

def SDL_GetJoystickFromPlayerIndex(_0: ctypes.c_long) -> LP_SDL_Joystick:
    """
    Get the [SDL_Joystick](https://wiki.libsdl.org/SDL3/SDL_Joystick) associated with a player index.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickFromPlayerIndex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickFromPlayerIndex(_0)

def SDL_AttachVirtualJoystick(_0: LP_SDL_VirtualJoystickDesc) -> ctypes.c_ulong:
    """
    Attach a new virtual joystick.
    https://wiki.libsdl.org/SDL3/SDL_AttachVirtualJoystick
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AttachVirtualJoystick(_0)

def SDL_DetachVirtualJoystick(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Detach a virtual joystick.
    https://wiki.libsdl.org/SDL3/SDL_DetachVirtualJoystick
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DetachVirtualJoystick(_0)

def SDL_IsJoystickVirtual(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Query whether or not a joystick is virtual.
    https://wiki.libsdl.org/SDL3/SDL_IsJoystickVirtual
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IsJoystickVirtual(_0)

def SDL_SetJoystickVirtualAxis(_0: LP_SDL_Joystick, _1: ctypes.c_long, _2: ctypes.c_short) -> ctypes.c_bool:
    """
    Set the state of an axis on an opened virtual joystick.
    https://wiki.libsdl.org/SDL3/SDL_SetJoystickVirtualAxis
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetJoystickVirtualAxis(_0, _1, _2)

def SDL_SetJoystickVirtualBall(_0: LP_SDL_Joystick, _1: ctypes.c_long, _2: ctypes.c_short, _3: ctypes.c_short) -> ctypes.c_bool:
    """
    Generate ball motion on an opened virtual joystick.
    https://wiki.libsdl.org/SDL3/SDL_SetJoystickVirtualBall
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetJoystickVirtualBall(_0, _1, _2, _3)

def SDL_SetJoystickVirtualButton(_0: LP_SDL_Joystick, _1: ctypes.c_long, _2: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set the state of a button on an opened virtual joystick.
    https://wiki.libsdl.org/SDL3/SDL_SetJoystickVirtualButton
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetJoystickVirtualButton(_0, _1, _2)

def SDL_SetJoystickVirtualHat(_0: LP_SDL_Joystick, _1: ctypes.c_long, _2: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set the state of a hat on an opened virtual joystick.
    https://wiki.libsdl.org/SDL3/SDL_SetJoystickVirtualHat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetJoystickVirtualHat(_0, _1, _2)

def SDL_SetJoystickVirtualTouchpad(_0: LP_SDL_Joystick, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_ubyte, _4: ctypes.c_float, _5: ctypes.c_float, _6: ctypes.c_float) -> ctypes.c_bool:
    """
    Set touchpad finger state on an opened virtual joystick.
    https://wiki.libsdl.org/SDL3/SDL_SetJoystickVirtualTouchpad
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetJoystickVirtualTouchpad(_0, _1, _2, _3, _4, _5, _6)

def SDL_SendJoystickVirtualSensorData(_0: LP_SDL_Joystick, _1: ctypes.c_long, _2: ctypes.c_ulonglong, _3: LP_c_float, _4: ctypes.c_long) -> ctypes.c_bool:
    """
    Send a sensor update for an opened virtual joystick.
    https://wiki.libsdl.org/SDL3/SDL_SendJoystickVirtualSensorData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SendJoystickVirtualSensorData(_0, _1, _2, _3, _4)

def SDL_GetJoystickProperties(_0: LP_SDL_Joystick) -> ctypes.c_ulong:
    """
    Get the properties associated with a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickProperties(_0)

def SDL_GetJoystickName(_0: LP_SDL_Joystick) -> ctypes.c_char_p:
    """
    Get the implementation dependent name of a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickName(_0)

def SDL_GetJoystickPath(_0: LP_SDL_Joystick) -> ctypes.c_char_p:
    """
    Get the implementation dependent path of a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickPath
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickPath(_0)

def SDL_GetJoystickPlayerIndex(_0: LP_SDL_Joystick) -> ctypes.c_long:
    """
    Get the player index of an opened joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickPlayerIndex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickPlayerIndex(_0)

def SDL_SetJoystickPlayerIndex(_0: LP_SDL_Joystick, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the player index of an opened joystick.
    https://wiki.libsdl.org/SDL3/SDL_SetJoystickPlayerIndex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetJoystickPlayerIndex(_0, _1)

def SDL_GetJoystickGUID(_0: LP_SDL_Joystick) -> SDL_GUID:
    """
    Get the implementation-dependent GUID for the joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickGUID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickGUID(_0)

def SDL_GetJoystickVendor(_0: LP_SDL_Joystick) -> ctypes.c_ushort:
    """
    Get the USB vendor ID of an opened joystick, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickVendor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickVendor(_0)

def SDL_GetJoystickProduct(_0: LP_SDL_Joystick) -> ctypes.c_ushort:
    """
    Get the USB product ID of an opened joystick, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickProduct
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickProduct(_0)

def SDL_GetJoystickProductVersion(_0: LP_SDL_Joystick) -> ctypes.c_ushort:
    """
    Get the product version of an opened joystick, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickProductVersion
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickProductVersion(_0)

def SDL_GetJoystickFirmwareVersion(_0: LP_SDL_Joystick) -> ctypes.c_ushort:
    """
    Get the firmware version of an opened joystick, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickFirmwareVersion
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickFirmwareVersion(_0)

def SDL_GetJoystickSerial(_0: LP_SDL_Joystick) -> ctypes.c_char_p:
    """
    Get the serial number of an opened joystick, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickSerial
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickSerial(_0)

def SDL_GetJoystickType(_0: LP_SDL_Joystick) -> ctypes.c_long:
    """
    Get the type of an opened joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickType
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickType(_0)

def SDL_GetJoystickGUIDInfo(_0: SDL_GUID, _1: LP_c_ushort, _2: LP_c_ushort, _3: LP_c_ushort, _4: LP_c_ushort) -> None:
    """
    Get the device information encoded in a [SDL_GUID](https://wiki.libsdl.org/SDL3/SDL_GUID) structure.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickGUIDInfo
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickGUIDInfo(_0, _1, _2, _3, _4)

def SDL_JoystickConnected(_0: LP_SDL_Joystick) -> ctypes.c_bool:
    """
    Get the status of a specified joystick.
    https://wiki.libsdl.org/SDL3/SDL_JoystickConnected
    """
    return SDL_GET_DLL(SDL_DLL).SDL_JoystickConnected(_0)

def SDL_GetJoystickID(_0: LP_SDL_Joystick) -> ctypes.c_ulong:
    """
    Get the instance ID of an opened joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickID(_0)

def SDL_GetNumJoystickAxes(_0: LP_SDL_Joystick) -> ctypes.c_long:
    """
    Get the number of general axis controls on a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetNumJoystickAxes
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumJoystickAxes(_0)

def SDL_GetNumJoystickBalls(_0: LP_SDL_Joystick) -> ctypes.c_long:
    """
    Get the number of trackballs on a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetNumJoystickBalls
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumJoystickBalls(_0)

def SDL_GetNumJoystickHats(_0: LP_SDL_Joystick) -> ctypes.c_long:
    """
    Get the number of POV hats on a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetNumJoystickHats
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumJoystickHats(_0)

def SDL_GetNumJoystickButtons(_0: LP_SDL_Joystick) -> ctypes.c_long:
    """
    Get the number of buttons on a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetNumJoystickButtons
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumJoystickButtons(_0)

def SDL_SetJoystickEventsEnabled(_0: ctypes.c_bool) -> None:
    """
    Set the state of joystick event processing.
    https://wiki.libsdl.org/SDL3/SDL_SetJoystickEventsEnabled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetJoystickEventsEnabled(_0)

def SDL_JoystickEventsEnabled() -> ctypes.c_bool:
    """
    Query the state of joystick event processing.
    https://wiki.libsdl.org/SDL3/SDL_JoystickEventsEnabled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_JoystickEventsEnabled()

def SDL_UpdateJoysticks() -> None:
    """
    Update the current state of the open joysticks.
    https://wiki.libsdl.org/SDL3/SDL_UpdateJoysticks
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UpdateJoysticks()

def SDL_GetJoystickAxis(_0: LP_SDL_Joystick, _1: ctypes.c_long) -> ctypes.c_short:
    """
    Get the current state of an axis control on a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickAxis
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickAxis(_0, _1)

def SDL_GetJoystickAxisInitialState(_0: LP_SDL_Joystick, _1: ctypes.c_long, _2: LP_c_short) -> ctypes.c_bool:
    """
    Get the initial state of an axis control on a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickAxisInitialState
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickAxisInitialState(_0, _1, _2)

def SDL_GetJoystickBall(_0: LP_SDL_Joystick, _1: ctypes.c_long, _2: LP_c_long, _3: LP_c_long) -> ctypes.c_bool:
    """
    Get the ball axis change since the last poll.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickBall
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickBall(_0, _1, _2, _3)

def SDL_GetJoystickHat(_0: LP_SDL_Joystick, _1: ctypes.c_long) -> ctypes.c_ubyte:
    """
    Get the current state of a POV hat on a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickHat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickHat(_0, _1)

def SDL_GetJoystickButton(_0: LP_SDL_Joystick, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Get the current state of a button on a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickButton
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickButton(_0, _1)

def SDL_RumbleJoystick(_0: LP_SDL_Joystick, _1: ctypes.c_ushort, _2: ctypes.c_ushort, _3: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Start a rumble effect.
    https://wiki.libsdl.org/SDL3/SDL_RumbleJoystick
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RumbleJoystick(_0, _1, _2, _3)

def SDL_RumbleJoystickTriggers(_0: LP_SDL_Joystick, _1: ctypes.c_ushort, _2: ctypes.c_ushort, _3: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Start a rumble effect in the joystick's triggers.
    https://wiki.libsdl.org/SDL3/SDL_RumbleJoystickTriggers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RumbleJoystickTriggers(_0, _1, _2, _3)

def SDL_SetJoystickLED(_0: LP_SDL_Joystick, _1: ctypes.c_ubyte, _2: ctypes.c_ubyte, _3: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Update a joystick's LED color.
    https://wiki.libsdl.org/SDL3/SDL_SetJoystickLED
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetJoystickLED(_0, _1, _2, _3)

def SDL_SendJoystickEffect(_0: LP_SDL_Joystick, _1: ctypes.c_void_p, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Send a joystick specific effect packet.
    https://wiki.libsdl.org/SDL3/SDL_SendJoystickEffect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SendJoystickEffect(_0, _1, _2)

def SDL_CloseJoystick(_0: LP_SDL_Joystick) -> None:
    """
    Close a joystick previously opened with [SDL_OpenJoystick](https://wiki.libsdl.org/SDL3/SDL_OpenJoystick)().
    https://wiki.libsdl.org/SDL3/SDL_CloseJoystick
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CloseJoystick(_0)

def SDL_GetJoystickConnectionState(_0: LP_SDL_Joystick) -> ctypes.c_long:
    """
    Get the connection state of a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickConnectionState
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickConnectionState(_0)

def SDL_GetJoystickPowerInfo(_0: LP_SDL_Joystick, _1: LP_c_long) -> ctypes.c_long:
    """
    Get the battery state of a joystick.
    https://wiki.libsdl.org/SDL3/SDL_GetJoystickPowerInfo
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetJoystickPowerInfo(_0, _1)

def SDL_HasKeyboard() -> ctypes.c_bool:
    """
    Return whether a keyboard is currently connected.
    https://wiki.libsdl.org/SDL3/SDL_HasKeyboard
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasKeyboard()

def SDL_GetKeyboards(_0: LP_c_long) -> LP_c_ulong:
    """
    Get a list of currently connected keyboards.
    https://wiki.libsdl.org/SDL3/SDL_GetKeyboards
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetKeyboards(_0)

def SDL_GetKeyboardNameForID(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the name of a keyboard.
    https://wiki.libsdl.org/SDL3/SDL_GetKeyboardNameForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetKeyboardNameForID(_0)

def SDL_GetKeyboardFocus() -> LP_SDL_Window:
    """
    Query the window which currently has keyboard focus.
    https://wiki.libsdl.org/SDL3/SDL_GetKeyboardFocus
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetKeyboardFocus()

def SDL_GetKeyboardState(_0: LP_c_long) -> LP_c_bool:
    """
    Get a snapshot of the current state of the keyboard.
    https://wiki.libsdl.org/SDL3/SDL_GetKeyboardState
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetKeyboardState(_0)

def SDL_ResetKeyboard() -> None:
    """
    Clear the state of the keyboard.
    https://wiki.libsdl.org/SDL3/SDL_ResetKeyboard
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ResetKeyboard()

def SDL_GetModState() -> ctypes.c_ushort:
    """
    Get the current key modifier state for the keyboard.
    https://wiki.libsdl.org/SDL3/SDL_GetModState
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetModState()

def SDL_SetModState(_0: ctypes.c_ushort) -> None:
    """
    Set the current key modifier state for the keyboard.
    https://wiki.libsdl.org/SDL3/SDL_SetModState
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetModState(_0)

def SDL_GetKeyFromScancode(_0: ctypes.c_ulong, _1: ctypes.c_ushort, _2: ctypes.c_bool) -> ctypes.c_ulong:
    """
    Get the key code corresponding to the given scancode according to the current keyboard layout.
    https://wiki.libsdl.org/SDL3/SDL_GetKeyFromScancode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetKeyFromScancode(_0, _1, _2)

def SDL_GetScancodeFromKey(_0: ctypes.c_ulong, _1: LP_c_ushort) -> ctypes.c_ulong:
    """
    Get the scancode corresponding to the given key code according to the current keyboard layout.
    https://wiki.libsdl.org/SDL3/SDL_GetScancodeFromKey
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetScancodeFromKey(_0, _1)

def SDL_SetScancodeName(_0: ctypes.c_ulong, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Set a human-readable name for a scancode.
    https://wiki.libsdl.org/SDL3/SDL_SetScancodeName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetScancodeName(_0, _1)

def SDL_GetScancodeName(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get a human-readable name for a scancode.
    https://wiki.libsdl.org/SDL3/SDL_GetScancodeName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetScancodeName(_0)

def SDL_GetScancodeFromName(_0: ctypes.c_char_p) -> ctypes.c_ulong:
    """
    Get a scancode from a human-readable name.
    https://wiki.libsdl.org/SDL3/SDL_GetScancodeFromName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetScancodeFromName(_0)

def SDL_GetKeyName(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get a human-readable name for a key.
    https://wiki.libsdl.org/SDL3/SDL_GetKeyName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetKeyName(_0)

def SDL_GetKeyFromName(_0: ctypes.c_char_p) -> ctypes.c_ulong:
    """
    Get a key code from a human-readable name.
    https://wiki.libsdl.org/SDL3/SDL_GetKeyFromName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetKeyFromName(_0)

def SDL_StartTextInput(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Start accepting Unicode text input events in a window.
    https://wiki.libsdl.org/SDL3/SDL_StartTextInput
    """
    return SDL_GET_DLL(SDL_DLL).SDL_StartTextInput(_0)

def SDL_StartTextInputWithProperties(_0: LP_SDL_Window, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Start accepting Unicode text input events in a window, with properties describing the input.
    https://wiki.libsdl.org/SDL3/SDL_StartTextInputWithProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_StartTextInputWithProperties(_0, _1)

def SDL_TextInputActive(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Check whether or not Unicode text input events are enabled for a window.
    https://wiki.libsdl.org/SDL3/SDL_TextInputActive
    """
    return SDL_GET_DLL(SDL_DLL).SDL_TextInputActive(_0)

def SDL_StopTextInput(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Stop receiving any text input events in a window.
    https://wiki.libsdl.org/SDL3/SDL_StopTextInput
    """
    return SDL_GET_DLL(SDL_DLL).SDL_StopTextInput(_0)

def SDL_ClearComposition(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Dismiss the composition window/IME without disabling the subsystem.
    https://wiki.libsdl.org/SDL3/SDL_ClearComposition
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ClearComposition(_0)

def SDL_SetTextInputArea(_0: LP_SDL_Window, _1: LP_SDL_Rect, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the area used to type Unicode text input.
    https://wiki.libsdl.org/SDL3/SDL_SetTextInputArea
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetTextInputArea(_0, _1, _2)

def SDL_GetTextInputArea(_0: LP_SDL_Window, _1: LP_SDL_Rect, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the area used to type Unicode text input.
    https://wiki.libsdl.org/SDL3/SDL_GetTextInputArea
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTextInputArea(_0, _1, _2)

def SDL_HasScreenKeyboardSupport() -> ctypes.c_bool:
    """
    Check whether the platform has screen keyboard support.
    https://wiki.libsdl.org/SDL3/SDL_HasScreenKeyboardSupport
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasScreenKeyboardSupport()

def SDL_ScreenKeyboardShown(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Check whether the screen keyboard is shown for given window.
    https://wiki.libsdl.org/SDL3/SDL_ScreenKeyboardShown
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ScreenKeyboardShown(_0)

def SDL_HasMouse() -> ctypes.c_bool:
    """
    Return whether a mouse is currently connected.
    https://wiki.libsdl.org/SDL3/SDL_HasMouse
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasMouse()

def SDL_GetMice(_0: LP_c_long) -> LP_c_ulong:
    """
    Get a list of currently connected mice.
    https://wiki.libsdl.org/SDL3/SDL_GetMice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetMice(_0)

def SDL_GetMouseNameForID(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the name of a mouse.
    https://wiki.libsdl.org/SDL3/SDL_GetMouseNameForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetMouseNameForID(_0)

def SDL_GetMouseFocus() -> LP_SDL_Window:
    """
    Get the window which currently has mouse focus.
    https://wiki.libsdl.org/SDL3/SDL_GetMouseFocus
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetMouseFocus()

def SDL_GetMouseState(_0: LP_c_float, _1: LP_c_float) -> ctypes.c_ulong:
    """
    Query SDL's cache for the synchronous mouse button state and the window-relative SDL-cursor position.
    https://wiki.libsdl.org/SDL3/SDL_GetMouseState
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetMouseState(_0, _1)

def SDL_GetGlobalMouseState(_0: LP_c_float, _1: LP_c_float) -> ctypes.c_ulong:
    """
    Query the platform for the asynchronous mouse button state and the desktop-relative platform-cursor position.
    https://wiki.libsdl.org/SDL3/SDL_GetGlobalMouseState
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGlobalMouseState(_0, _1)

def SDL_GetRelativeMouseState(_0: LP_c_float, _1: LP_c_float) -> ctypes.c_ulong:
    """
    Query SDL's cache for the synchronous mouse button state and accumulated mouse delta since last call.
    https://wiki.libsdl.org/SDL3/SDL_GetRelativeMouseState
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRelativeMouseState(_0, _1)

def SDL_WarpMouseInWindow(_0: LP_SDL_Window, _1: ctypes.c_float, _2: ctypes.c_float) -> None:
    """
    Move the mouse cursor to the given position within the window.
    https://wiki.libsdl.org/SDL3/SDL_WarpMouseInWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WarpMouseInWindow(_0, _1, _2)

def SDL_WarpMouseGlobal(_0: ctypes.c_float, _1: ctypes.c_float) -> ctypes.c_bool:
    """
    Move the mouse to the given position in global screen space.
    https://wiki.libsdl.org/SDL3/SDL_WarpMouseGlobal
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WarpMouseGlobal(_0, _1)

def SDL_SetWindowRelativeMouseMode(_0: LP_SDL_Window, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set relative mouse mode for a window.
    https://wiki.libsdl.org/SDL3/SDL_SetWindowRelativeMouseMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowRelativeMouseMode(_0, _1)

def SDL_GetWindowRelativeMouseMode(_0: LP_SDL_Window) -> ctypes.c_bool:
    """
    Query whether relative mouse mode is enabled for a window.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowRelativeMouseMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowRelativeMouseMode(_0)

def SDL_CaptureMouse(_0: ctypes.c_bool) -> ctypes.c_bool:
    """
    Capture the mouse and to track input outside an SDL window.
    https://wiki.libsdl.org/SDL3/SDL_CaptureMouse
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CaptureMouse(_0)

def SDL_CreateCursor(_0: LP_c_ubyte, _1: LP_c_ubyte, _2: ctypes.c_long, _3: ctypes.c_long, _4: ctypes.c_long, _5: ctypes.c_long) -> LP_SDL_Cursor:
    """
    Create a cursor using the specified bitmap data and mask (in MSB format).
    https://wiki.libsdl.org/SDL3/SDL_CreateCursor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateCursor(_0, _1, _2, _3, _4, _5)

def SDL_CreateColorCursor(_0: LP_SDL_Surface, _1: ctypes.c_long, _2: ctypes.c_long) -> LP_SDL_Cursor:
    """
    Create a color cursor.
    https://wiki.libsdl.org/SDL3/SDL_CreateColorCursor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateColorCursor(_0, _1, _2)

def SDL_CreateSystemCursor(_0: ctypes.c_long) -> LP_SDL_Cursor:
    """
    Create a system cursor.
    https://wiki.libsdl.org/SDL3/SDL_CreateSystemCursor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateSystemCursor(_0)

def SDL_SetCursor(_0: LP_SDL_Cursor) -> ctypes.c_bool:
    """
    Set the active cursor.
    https://wiki.libsdl.org/SDL3/SDL_SetCursor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetCursor(_0)

def SDL_GetCursor() -> LP_SDL_Cursor:
    """
    Get the active cursor.
    https://wiki.libsdl.org/SDL3/SDL_GetCursor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCursor()

def SDL_GetDefaultCursor() -> LP_SDL_Cursor:
    """
    Get the default cursor.
    https://wiki.libsdl.org/SDL3/SDL_GetDefaultCursor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDefaultCursor()

def SDL_DestroyCursor(_0: LP_SDL_Cursor) -> None:
    """
    Free a previously-created cursor.
    https://wiki.libsdl.org/SDL3/SDL_DestroyCursor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyCursor(_0)

def SDL_ShowCursor() -> ctypes.c_bool:
    """
    Show the cursor.
    https://wiki.libsdl.org/SDL3/SDL_ShowCursor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShowCursor()

def SDL_HideCursor() -> ctypes.c_bool:
    """
    Hide the cursor.
    https://wiki.libsdl.org/SDL3/SDL_HideCursor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HideCursor()

def SDL_CursorVisible() -> ctypes.c_bool:
    """
    Return whether the cursor is currently being shown.
    https://wiki.libsdl.org/SDL3/SDL_CursorVisible
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CursorVisible()

def SDL_GetTouchDevices(_0: LP_c_long) -> LP_c_ulonglong:
    """
    Get a list of registered touch devices.
    https://wiki.libsdl.org/SDL3/SDL_GetTouchDevices
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTouchDevices(_0)

def SDL_GetTouchDeviceName(_0: ctypes.c_ulonglong) -> ctypes.c_char_p:
    """
    Get the touch device name as reported from the driver.
    https://wiki.libsdl.org/SDL3/SDL_GetTouchDeviceName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTouchDeviceName(_0)

def SDL_GetTouchDeviceType(_0: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Get the type of the given touch device.
    https://wiki.libsdl.org/SDL3/SDL_GetTouchDeviceType
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTouchDeviceType(_0)

def SDL_GetTouchFingers(_0: ctypes.c_ulonglong, _1: LP_c_long) -> LP_LP_SDL_Finger:
    """
    Get a list of active fingers for a given touch device.
    https://wiki.libsdl.org/SDL3/SDL_GetTouchFingers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTouchFingers(_0, _1)

def SDL_PumpEvents() -> None:
    """
    Pump the event loop, gathering events from the input devices.
    https://wiki.libsdl.org/SDL3/SDL_PumpEvents
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PumpEvents()

def SDL_PeepEvents(_0: LP_SDL_Event, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_ulong, _4: ctypes.c_ulong) -> ctypes.c_long:
    """
    Check the event queue for messages and optionally return them.
    https://wiki.libsdl.org/SDL3/SDL_PeepEvents
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PeepEvents(_0, _1, _2, _3, _4)

def SDL_HasEvent(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Check for the existence of a certain event type in the event queue.
    https://wiki.libsdl.org/SDL3/SDL_HasEvent
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasEvent(_0)

def SDL_HasEvents(_0: ctypes.c_ulong, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Check for the existence of certain event types in the event queue.
    https://wiki.libsdl.org/SDL3/SDL_HasEvents
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasEvents(_0, _1)

def SDL_FlushEvent(_0: ctypes.c_ulong) -> None:
    """
    Clear events of a specific type from the event queue.
    https://wiki.libsdl.org/SDL3/SDL_FlushEvent
    """
    return SDL_GET_DLL(SDL_DLL).SDL_FlushEvent(_0)

def SDL_FlushEvents(_0: ctypes.c_ulong, _1: ctypes.c_ulong) -> None:
    """
    Clear events of a range of types from the event queue.
    https://wiki.libsdl.org/SDL3/SDL_FlushEvents
    """
    return SDL_GET_DLL(SDL_DLL).SDL_FlushEvents(_0, _1)

def SDL_PollEvent(_0: LP_SDL_Event) -> ctypes.c_bool:
    """
    Poll for currently pending events.
    https://wiki.libsdl.org/SDL3/SDL_PollEvent
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PollEvent(_0)

def SDL_WaitEvent(_0: LP_SDL_Event) -> ctypes.c_bool:
    """
    Wait indefinitely for the next available event.
    https://wiki.libsdl.org/SDL3/SDL_WaitEvent
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitEvent(_0)

def SDL_WaitEventTimeout(_0: LP_SDL_Event, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Wait until the specified timeout (in milliseconds) for the next available event.
    https://wiki.libsdl.org/SDL3/SDL_WaitEventTimeout
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitEventTimeout(_0, _1)

def SDL_PushEvent(_0: LP_SDL_Event) -> ctypes.c_bool:
    """
    Add an event to the event queue.
    https://wiki.libsdl.org/SDL3/SDL_PushEvent
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PushEvent(_0)

def SDL_SetEventFilter(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> None:
    """
    Set up a filter to process all events before they change internal state and are posted to the internal event queue.
    https://wiki.libsdl.org/SDL3/SDL_SetEventFilter
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetEventFilter(_0, _1)

def SDL_GetEventFilter(_0: ctypes._Pointer, _1: LP_c_void_p) -> ctypes.c_bool:
    """
    Query the current event filter.
    https://wiki.libsdl.org/SDL3/SDL_GetEventFilter
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetEventFilter(_0, _1)

def SDL_AddEventWatch(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Add a callback to be triggered when an event is added to the event queue.
    https://wiki.libsdl.org/SDL3/SDL_AddEventWatch
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AddEventWatch(_0, _1)

def SDL_RemoveEventWatch(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> None:
    """
    Remove an event watch callback added with [SDL_AddEventWatch](https://wiki.libsdl.org/SDL3/SDL_AddEventWatch)().
    https://wiki.libsdl.org/SDL3/SDL_RemoveEventWatch
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RemoveEventWatch(_0, _1)

def SDL_FilterEvents(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> None:
    """
    Run a specific filter function on the current event queue, removing any events for which the filter returns false.
    https://wiki.libsdl.org/SDL3/SDL_FilterEvents
    """
    return SDL_GET_DLL(SDL_DLL).SDL_FilterEvents(_0, _1)

def SDL_SetEventEnabled(_0: ctypes.c_ulong, _1: ctypes.c_bool) -> None:
    """
    Set the state of processing events by type.
    https://wiki.libsdl.org/SDL3/SDL_SetEventEnabled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetEventEnabled(_0, _1)

def SDL_EventEnabled(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Query the state of processing events by type.
    https://wiki.libsdl.org/SDL3/SDL_EventEnabled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EventEnabled(_0)

def SDL_RegisterEvents(_0: ctypes.c_long) -> ctypes.c_ulong:
    """
    Allocate a set of user-defined events, and return the beginning event number for that set of events.
    https://wiki.libsdl.org/SDL3/SDL_RegisterEvents
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RegisterEvents(_0)

def SDL_GetWindowFromEvent(_0: LP_SDL_Event) -> LP_SDL_Window:
    """
    Get window associated with an event.
    https://wiki.libsdl.org/SDL3/SDL_GetWindowFromEvent
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetWindowFromEvent(_0)

def SDL_GetBasePath() -> ctypes.c_char_p:
    """
    Get the directory where the application was run from.
    https://wiki.libsdl.org/SDL3/SDL_GetBasePath
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetBasePath()

def SDL_GetPrefPath(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Get the user-and-app-specific path where files can be written.
    https://wiki.libsdl.org/SDL3/SDL_GetPrefPath
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPrefPath(_0, _1)

def SDL_GetUserFolder(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Finds the most suitable user folder for a specific purpose.
    https://wiki.libsdl.org/SDL3/SDL_GetUserFolder
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetUserFolder(_0)

def SDL_CreateDirectory(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Create a directory, and any missing parent directories.
    https://wiki.libsdl.org/SDL3/SDL_CreateDirectory
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateDirectory(_0)

def SDL_EnumerateDirectory(_0: ctypes.c_char_p, _1: ctypes._Pointer, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Enumerate a directory through a callback function.
    https://wiki.libsdl.org/SDL3/SDL_EnumerateDirectory
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EnumerateDirectory(_0, _1, _2)

def SDL_RemovePath(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Remove a file or an empty directory.
    https://wiki.libsdl.org/SDL3/SDL_RemovePath
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RemovePath(_0)

def SDL_RenamePath(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Rename a file or directory.
    https://wiki.libsdl.org/SDL3/SDL_RenamePath
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenamePath(_0, _1)

def SDL_CopyFile(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Copy a file.
    https://wiki.libsdl.org/SDL3/SDL_CopyFile
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CopyFile(_0, _1)

def SDL_GetPathInfo(_0: ctypes.c_char_p, _1: LP_SDL_PathInfo) -> ctypes.c_bool:
    """
    Get information about a filesystem path.
    https://wiki.libsdl.org/SDL3/SDL_GetPathInfo
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPathInfo(_0, _1)

def SDL_GlobDirectory(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: LP_c_ulong, _3: LP_c_long) -> LP_c_char_p:
    """
    Enumerate a directory tree, filtered by pattern, and return a list.
    https://wiki.libsdl.org/SDL3/SDL_GlobDirectory
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GlobDirectory(_0, _1, _2, _3)

def SDL_GetCurrentDirectory() -> ctypes.c_char_p:
    """
    Get what the system believes is the "current working directory."
    https://wiki.libsdl.org/SDL3/SDL_GetCurrentDirectory
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCurrentDirectory()

def SDL_AddGamepadMapping(_0: ctypes.c_char_p) -> ctypes.c_long:
    """
    Add support for gamepads that SDL is unaware of or change the binding of an existing gamepad.
    https://wiki.libsdl.org/SDL3/SDL_AddGamepadMapping
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AddGamepadMapping(_0)

def SDL_AddGamepadMappingsFromIO(_0: LP_SDL_IOStream, _1: ctypes.c_bool) -> ctypes.c_long:
    """
    Load a set of gamepad mappings from an [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream).
    https://wiki.libsdl.org/SDL3/SDL_AddGamepadMappingsFromIO
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AddGamepadMappingsFromIO(_0, _1)

def SDL_AddGamepadMappingsFromFile(_0: ctypes.c_char_p) -> ctypes.c_long:
    """
    Load a set of gamepad mappings from a file.
    https://wiki.libsdl.org/SDL3/SDL_AddGamepadMappingsFromFile
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AddGamepadMappingsFromFile(_0)

def SDL_ReloadGamepadMappings() -> ctypes.c_bool:
    """
    Reinitialize the SDL mapping database to its initial state.
    https://wiki.libsdl.org/SDL3/SDL_ReloadGamepadMappings
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReloadGamepadMappings()

def SDL_GetGamepadMappings(_0: LP_c_long) -> LP_c_char_p:
    """
    Get the current gamepad mappings.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadMappings
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadMappings(_0)

def SDL_GetGamepadMappingForGUID(_0: SDL_GUID) -> ctypes.c_char_p:
    """
    Get the gamepad mapping string for a given GUID.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadMappingForGUID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadMappingForGUID(_0)

def SDL_GetGamepadMapping(_0: LP_SDL_Gamepad) -> ctypes.c_char_p:
    """
    Get the current mapping of a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadMapping
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadMapping(_0)

def SDL_SetGamepadMapping(_0: ctypes.c_ulong, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Set the current mapping of a joystick or gamepad.
    https://wiki.libsdl.org/SDL3/SDL_SetGamepadMapping
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGamepadMapping(_0, _1)

def SDL_HasGamepad() -> ctypes.c_bool:
    """
    Return whether a gamepad is currently connected.
    https://wiki.libsdl.org/SDL3/SDL_HasGamepad
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HasGamepad()

def SDL_GetGamepads(_0: LP_c_long) -> LP_c_ulong:
    """
    Get a list of currently connected gamepads.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepads
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepads(_0)

def SDL_IsGamepad(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Check if the given joystick is supported by the gamepad interface.
    https://wiki.libsdl.org/SDL3/SDL_IsGamepad
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IsGamepad(_0)

def SDL_GetGamepadNameForID(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the implementation dependent name of a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadNameForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadNameForID(_0)

def SDL_GetGamepadPathForID(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the implementation dependent path of a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadPathForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadPathForID(_0)

def SDL_GetGamepadPlayerIndexForID(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the player index of a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadPlayerIndexForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadPlayerIndexForID(_0)

def SDL_GetGamepadGUIDForID(_0: ctypes.c_ulong) -> SDL_GUID:
    """
    Get the implementation-dependent GUID of a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadGUIDForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadGUIDForID(_0)

def SDL_GetGamepadVendorForID(_0: ctypes.c_ulong) -> ctypes.c_ushort:
    """
    Get the USB vendor ID of a gamepad, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadVendorForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadVendorForID(_0)

def SDL_GetGamepadProductForID(_0: ctypes.c_ulong) -> ctypes.c_ushort:
    """
    Get the USB product ID of a gamepad, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadProductForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadProductForID(_0)

def SDL_GetGamepadProductVersionForID(_0: ctypes.c_ulong) -> ctypes.c_ushort:
    """
    Get the product version of a gamepad, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadProductVersionForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadProductVersionForID(_0)

def SDL_GetGamepadTypeForID(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the type of a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadTypeForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadTypeForID(_0)

def SDL_GetRealGamepadTypeForID(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the type of a gamepad, ignoring any mapping override.
    https://wiki.libsdl.org/SDL3/SDL_GetRealGamepadTypeForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRealGamepadTypeForID(_0)

def SDL_GetGamepadMappingForID(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the mapping of a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadMappingForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadMappingForID(_0)

def SDL_OpenGamepad(_0: ctypes.c_ulong) -> LP_SDL_Gamepad:
    """
    Open a gamepad for use.
    https://wiki.libsdl.org/SDL3/SDL_OpenGamepad
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenGamepad(_0)

def SDL_GetGamepadFromID(_0: ctypes.c_ulong) -> LP_SDL_Gamepad:
    """
    Get the [SDL_Gamepad](https://wiki.libsdl.org/SDL3/SDL_Gamepad) associated with a joystick instance ID, if it has been opened.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadFromID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadFromID(_0)

def SDL_GetGamepadFromPlayerIndex(_0: ctypes.c_long) -> LP_SDL_Gamepad:
    """
    Get the [SDL_Gamepad](https://wiki.libsdl.org/SDL3/SDL_Gamepad) associated with a player index.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadFromPlayerIndex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadFromPlayerIndex(_0)

def SDL_GetGamepadProperties(_0: LP_SDL_Gamepad) -> ctypes.c_ulong:
    """
    Get the properties associated with an opened gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadProperties(_0)

def SDL_GetGamepadID(_0: LP_SDL_Gamepad) -> ctypes.c_ulong:
    """
    Get the instance ID of an opened gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadID(_0)

def SDL_GetGamepadName(_0: LP_SDL_Gamepad) -> ctypes.c_char_p:
    """
    Get the implementation-dependent name for an opened gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadName(_0)

def SDL_GetGamepadPath(_0: LP_SDL_Gamepad) -> ctypes.c_char_p:
    """
    Get the implementation-dependent path for an opened gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadPath
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadPath(_0)

def SDL_GetGamepadType(_0: LP_SDL_Gamepad) -> ctypes.c_long:
    """
    Get the type of an opened gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadType
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadType(_0)

def SDL_GetRealGamepadType(_0: LP_SDL_Gamepad) -> ctypes.c_long:
    """
    Get the type of an opened gamepad, ignoring any mapping override.
    https://wiki.libsdl.org/SDL3/SDL_GetRealGamepadType
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRealGamepadType(_0)

def SDL_GetGamepadPlayerIndex(_0: LP_SDL_Gamepad) -> ctypes.c_long:
    """
    Get the player index of an opened gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadPlayerIndex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadPlayerIndex(_0)

def SDL_SetGamepadPlayerIndex(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the player index of an opened gamepad.
    https://wiki.libsdl.org/SDL3/SDL_SetGamepadPlayerIndex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGamepadPlayerIndex(_0, _1)

def SDL_GetGamepadVendor(_0: LP_SDL_Gamepad) -> ctypes.c_ushort:
    """
    Get the USB vendor ID of an opened gamepad, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadVendor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadVendor(_0)

def SDL_GetGamepadProduct(_0: LP_SDL_Gamepad) -> ctypes.c_ushort:
    """
    Get the USB product ID of an opened gamepad, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadProduct
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadProduct(_0)

def SDL_GetGamepadProductVersion(_0: LP_SDL_Gamepad) -> ctypes.c_ushort:
    """
    Get the product version of an opened gamepad, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadProductVersion
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadProductVersion(_0)

def SDL_GetGamepadFirmwareVersion(_0: LP_SDL_Gamepad) -> ctypes.c_ushort:
    """
    Get the firmware version of an opened gamepad, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadFirmwareVersion
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadFirmwareVersion(_0)

def SDL_GetGamepadSerial(_0: LP_SDL_Gamepad) -> ctypes.c_char_p:
    """
    Get the serial number of an opened gamepad, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadSerial
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadSerial(_0)

def SDL_GetGamepadSteamHandle(_0: LP_SDL_Gamepad) -> ctypes.c_ulonglong:
    """
    Get the Steam Input handle of an opened gamepad, if available.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadSteamHandle
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadSteamHandle(_0)

def SDL_GetGamepadConnectionState(_0: LP_SDL_Gamepad) -> ctypes.c_long:
    """
    Get the connection state of a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadConnectionState
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadConnectionState(_0)

def SDL_GetGamepadPowerInfo(_0: LP_SDL_Gamepad, _1: LP_c_long) -> ctypes.c_long:
    """
    Get the battery state of a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadPowerInfo
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadPowerInfo(_0, _1)

def SDL_GamepadConnected(_0: LP_SDL_Gamepad) -> ctypes.c_bool:
    """
    Check if a gamepad has been opened and is currently connected.
    https://wiki.libsdl.org/SDL3/SDL_GamepadConnected
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GamepadConnected(_0)

def SDL_GetGamepadJoystick(_0: LP_SDL_Gamepad) -> LP_SDL_Joystick:
    """
    Get the underlying joystick from a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadJoystick
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadJoystick(_0)

def SDL_SetGamepadEventsEnabled(_0: ctypes.c_bool) -> None:
    """
    Set the state of gamepad event processing.
    https://wiki.libsdl.org/SDL3/SDL_SetGamepadEventsEnabled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGamepadEventsEnabled(_0)

def SDL_GamepadEventsEnabled() -> ctypes.c_bool:
    """
    Query the state of gamepad event processing.
    https://wiki.libsdl.org/SDL3/SDL_GamepadEventsEnabled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GamepadEventsEnabled()

def SDL_GetGamepadBindings(_0: LP_SDL_Gamepad, _1: LP_c_long) -> LP_LP_SDL_GamepadBinding:
    """
    Get the SDL joystick layer bindings for a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadBindings
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadBindings(_0, _1)

def SDL_UpdateGamepads() -> None:
    """
    Manually pump gamepad updates if not using the loop.
    https://wiki.libsdl.org/SDL3/SDL_UpdateGamepads
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UpdateGamepads()

def SDL_GetGamepadTypeFromString(_0: ctypes.c_char_p) -> ctypes.c_long:
    """
    Convert a string into [SDL_GamepadType](https://wiki.libsdl.org/SDL3/SDL_GamepadType) enum.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadTypeFromString
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadTypeFromString(_0)

def SDL_GetGamepadStringForType(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Convert from an [SDL_GamepadType](https://wiki.libsdl.org/SDL3/SDL_GamepadType) enum to a string.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadStringForType
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadStringForType(_0)

def SDL_GetGamepadAxisFromString(_0: ctypes.c_char_p) -> ctypes.c_long:
    """
    Convert a string into [SDL_GamepadAxis](https://wiki.libsdl.org/SDL3/SDL_GamepadAxis) enum.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadAxisFromString
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadAxisFromString(_0)

def SDL_GetGamepadStringForAxis(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Convert from an [SDL_GamepadAxis](https://wiki.libsdl.org/SDL3/SDL_GamepadAxis) enum to a string.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadStringForAxis
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadStringForAxis(_0)

def SDL_GamepadHasAxis(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Query whether a gamepad has a given axis.
    https://wiki.libsdl.org/SDL3/SDL_GamepadHasAxis
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GamepadHasAxis(_0, _1)

def SDL_GetGamepadAxis(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_short:
    """
    Get the current state of an axis control on a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadAxis
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadAxis(_0, _1)

def SDL_GetGamepadButtonFromString(_0: ctypes.c_char_p) -> ctypes.c_long:
    """
    Convert a string into an [SDL_GamepadButton](https://wiki.libsdl.org/SDL3/SDL_GamepadButton) enum.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadButtonFromString
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadButtonFromString(_0)

def SDL_GetGamepadStringForButton(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Convert from an [SDL_GamepadButton](https://wiki.libsdl.org/SDL3/SDL_GamepadButton) enum to a string.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadStringForButton
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadStringForButton(_0)

def SDL_GamepadHasButton(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Query whether a gamepad has a given button.
    https://wiki.libsdl.org/SDL3/SDL_GamepadHasButton
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GamepadHasButton(_0, _1)

def SDL_GetGamepadButton(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Get the current state of a button on a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadButton
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadButton(_0, _1)

def SDL_GetGamepadButtonLabelForType(_0: ctypes.c_long, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Get the label of a button on a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadButtonLabelForType
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadButtonLabelForType(_0, _1)

def SDL_GetGamepadButtonLabel(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Get the label of a button on a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadButtonLabel
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadButtonLabel(_0, _1)

def SDL_GetNumGamepadTouchpads(_0: LP_SDL_Gamepad) -> ctypes.c_long:
    """
    Get the number of touchpads on a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetNumGamepadTouchpads
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumGamepadTouchpads(_0)

def SDL_GetNumGamepadTouchpadFingers(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Get the number of supported simultaneous fingers on a touchpad on a game gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetNumGamepadTouchpadFingers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumGamepadTouchpadFingers(_0, _1)

def SDL_GetGamepadTouchpadFinger(_0: LP_SDL_Gamepad, _1: ctypes.c_long, _2: ctypes.c_long, _3: LP_c_ubyte, _4: LP_c_float, _5: LP_c_float, _6: LP_c_float) -> ctypes.c_bool:
    """
    Get the current state of a finger on a touchpad on a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadTouchpadFinger
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadTouchpadFinger(_0, _1, _2, _3, _4, _5, _6)

def SDL_GamepadHasSensor(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Return whether a gamepad has a particular sensor.
    https://wiki.libsdl.org/SDL3/SDL_GamepadHasSensor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GamepadHasSensor(_0, _1)

def SDL_SetGamepadSensorEnabled(_0: LP_SDL_Gamepad, _1: ctypes.c_long, _2: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set whether data reporting for a gamepad sensor is enabled.
    https://wiki.libsdl.org/SDL3/SDL_SetGamepadSensorEnabled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGamepadSensorEnabled(_0, _1, _2)

def SDL_GamepadSensorEnabled(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Query whether sensor data reporting is enabled for a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_GamepadSensorEnabled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GamepadSensorEnabled(_0, _1)

def SDL_GetGamepadSensorDataRate(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_float:
    """
    Get the data rate (number of events per second) of a gamepad sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadSensorDataRate
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadSensorDataRate(_0, _1)

def SDL_GetGamepadSensorData(_0: LP_SDL_Gamepad, _1: ctypes.c_long, _2: LP_c_float, _3: ctypes.c_long) -> ctypes.c_bool:
    """
    Get the current state of a gamepad sensor.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadSensorData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadSensorData(_0, _1, _2, _3)

def SDL_RumbleGamepad(_0: LP_SDL_Gamepad, _1: ctypes.c_ushort, _2: ctypes.c_ushort, _3: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Start a rumble effect on a gamepad.
    https://wiki.libsdl.org/SDL3/SDL_RumbleGamepad
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RumbleGamepad(_0, _1, _2, _3)

def SDL_RumbleGamepadTriggers(_0: LP_SDL_Gamepad, _1: ctypes.c_ushort, _2: ctypes.c_ushort, _3: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Start a rumble effect in the gamepad's triggers.
    https://wiki.libsdl.org/SDL3/SDL_RumbleGamepadTriggers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RumbleGamepadTriggers(_0, _1, _2, _3)

def SDL_SetGamepadLED(_0: LP_SDL_Gamepad, _1: ctypes.c_ubyte, _2: ctypes.c_ubyte, _3: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Update a gamepad's LED color.
    https://wiki.libsdl.org/SDL3/SDL_SetGamepadLED
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGamepadLED(_0, _1, _2, _3)

def SDL_SendGamepadEffect(_0: LP_SDL_Gamepad, _1: ctypes.c_void_p, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Send a gamepad specific effect packet.
    https://wiki.libsdl.org/SDL3/SDL_SendGamepadEffect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SendGamepadEffect(_0, _1, _2)

def SDL_CloseGamepad(_0: LP_SDL_Gamepad) -> None:
    """
    Close a gamepad previously opened with [SDL_OpenGamepad](https://wiki.libsdl.org/SDL3/SDL_OpenGamepad)().
    https://wiki.libsdl.org/SDL3/SDL_CloseGamepad
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CloseGamepad(_0)

def SDL_GetGamepadAppleSFSymbolsNameForButton(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_char_p:
    """
    Return the sfSymbolsName for a given button on a gamepad on Apple platforms.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadAppleSFSymbolsNameForButton
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadAppleSFSymbolsNameForButton(_0, _1)

def SDL_GetGamepadAppleSFSymbolsNameForAxis(_0: LP_SDL_Gamepad, _1: ctypes.c_long) -> ctypes.c_char_p:
    """
    Return the sfSymbolsName for a given axis on a gamepad on Apple platforms.
    https://wiki.libsdl.org/SDL3/SDL_GetGamepadAppleSFSymbolsNameForAxis
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGamepadAppleSFSymbolsNameForAxis(_0, _1)

def SDL_GPUSupportsShaderFormats(_0: ctypes.c_ulong, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Checks for GPU runtime support.
    https://wiki.libsdl.org/SDL3/SDL_GPUSupportsShaderFormats
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GPUSupportsShaderFormats(_0, _1)

def SDL_GPUSupportsProperties(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Checks for GPU runtime support.
    https://wiki.libsdl.org/SDL3/SDL_GPUSupportsProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GPUSupportsProperties(_0)

def SDL_CreateGPUDevice(_0: ctypes.c_ulong, _1: ctypes.c_bool, _2: ctypes.c_char_p) -> LP_SDL_GPUDevice:
    """
    Creates a GPU context.
    https://wiki.libsdl.org/SDL3/SDL_CreateGPUDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateGPUDevice(_0, _1, _2)

def SDL_CreateGPUDeviceWithProperties(_0: ctypes.c_ulong) -> LP_SDL_GPUDevice:
    """
    Creates a GPU context.
    https://wiki.libsdl.org/SDL3/SDL_CreateGPUDeviceWithProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateGPUDeviceWithProperties(_0)

def SDL_DestroyGPUDevice(_0: LP_SDL_GPUDevice) -> None:
    """
    Destroys a GPU context previously returned by [SDL_CreateGPUDevice](https://wiki.libsdl.org/SDL3/SDL_CreateGPUDevice).
    https://wiki.libsdl.org/SDL3/SDL_DestroyGPUDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyGPUDevice(_0)

def SDL_GetNumGPUDrivers() -> ctypes.c_long:
    """
    Get the number of GPU drivers compiled into SDL.
    https://wiki.libsdl.org/SDL3/SDL_GetNumGPUDrivers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumGPUDrivers()

def SDL_GetGPUDriver(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Get the name of a built in GPU driver.
    https://wiki.libsdl.org/SDL3/SDL_GetGPUDriver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGPUDriver(_0)

def SDL_GetGPUDeviceDriver(_0: LP_SDL_GPUDevice) -> ctypes.c_char_p:
    """
    Returns the name of the backend used to create this GPU context.
    https://wiki.libsdl.org/SDL3/SDL_GetGPUDeviceDriver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGPUDeviceDriver(_0)

def SDL_GetGPUShaderFormats(_0: LP_SDL_GPUDevice) -> ctypes.c_ulong:
    """
    Returns the supported shader formats for this GPU context.
    https://wiki.libsdl.org/SDL3/SDL_GetGPUShaderFormats
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGPUShaderFormats(_0)

def SDL_CreateGPUComputePipeline(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUComputePipelineCreateInfo) -> LP_SDL_GPUComputePipeline:
    """
    Creates a pipeline object to be used in a compute workflow.
    https://wiki.libsdl.org/SDL3/SDL_CreateGPUComputePipeline
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateGPUComputePipeline(_0, _1)

def SDL_CreateGPUGraphicsPipeline(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUGraphicsPipelineCreateInfo) -> LP_SDL_GPUGraphicsPipeline:
    """
    Creates a pipeline object to be used in a graphics workflow.
    https://wiki.libsdl.org/SDL3/SDL_CreateGPUGraphicsPipeline
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateGPUGraphicsPipeline(_0, _1)

def SDL_CreateGPUSampler(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUSamplerCreateInfo) -> LP_SDL_GPUSampler:
    """
    Creates a sampler object to be used when binding textures in a graphics workflow.
    https://wiki.libsdl.org/SDL3/SDL_CreateGPUSampler
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateGPUSampler(_0, _1)

def SDL_CreateGPUShader(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUShaderCreateInfo) -> LP_SDL_GPUShader:
    """
    Creates a shader to be used when creating a graphics pipeline.
    https://wiki.libsdl.org/SDL3/SDL_CreateGPUShader
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateGPUShader(_0, _1)

def SDL_CreateGPUTexture(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUTextureCreateInfo) -> LP_SDL_GPUTexture:
    """
    Creates a texture object to be used in graphics or compute workflows.
    https://wiki.libsdl.org/SDL3/SDL_CreateGPUTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateGPUTexture(_0, _1)

def SDL_CreateGPUBuffer(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUBufferCreateInfo) -> LP_SDL_GPUBuffer:
    """
    Creates a buffer object to be used in graphics or compute workflows.
    https://wiki.libsdl.org/SDL3/SDL_CreateGPUBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateGPUBuffer(_0, _1)

def SDL_CreateGPUTransferBuffer(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUTransferBufferCreateInfo) -> LP_SDL_GPUTransferBuffer:
    """
    Creates a transfer buffer to be used when uploading to or downloading from graphics resources.
    https://wiki.libsdl.org/SDL3/SDL_CreateGPUTransferBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateGPUTransferBuffer(_0, _1)

def SDL_SetGPUBufferName(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUBuffer, _2: ctypes.c_char_p) -> None:
    """
    Sets an arbitrary string constant to label a buffer.
    https://wiki.libsdl.org/SDL3/SDL_SetGPUBufferName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGPUBufferName(_0, _1, _2)

def SDL_SetGPUTextureName(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUTexture, _2: ctypes.c_char_p) -> None:
    """
    Sets an arbitrary string constant to label a texture.
    https://wiki.libsdl.org/SDL3/SDL_SetGPUTextureName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGPUTextureName(_0, _1, _2)

def SDL_InsertGPUDebugLabel(_0: LP_SDL_GPUCommandBuffer, _1: ctypes.c_char_p) -> None:
    """
    Inserts an arbitrary string label into the command buffer callstream.
    https://wiki.libsdl.org/SDL3/SDL_InsertGPUDebugLabel
    """
    return SDL_GET_DLL(SDL_DLL).SDL_InsertGPUDebugLabel(_0, _1)

def SDL_PushGPUDebugGroup(_0: LP_SDL_GPUCommandBuffer, _1: ctypes.c_char_p) -> None:
    """
    Begins a debug group with an arbitary name.
    https://wiki.libsdl.org/SDL3/SDL_PushGPUDebugGroup
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PushGPUDebugGroup(_0, _1)

def SDL_PopGPUDebugGroup(_0: LP_SDL_GPUCommandBuffer) -> None:
    """
    Ends the most-recently pushed debug group.
    https://wiki.libsdl.org/SDL3/SDL_PopGPUDebugGroup
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PopGPUDebugGroup(_0)

def SDL_ReleaseGPUTexture(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUTexture) -> None:
    """
    Frees the given texture as soon as it is safe to do so.
    https://wiki.libsdl.org/SDL3/SDL_ReleaseGPUTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReleaseGPUTexture(_0, _1)

def SDL_ReleaseGPUSampler(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUSampler) -> None:
    """
    Frees the given sampler as soon as it is safe to do so.
    https://wiki.libsdl.org/SDL3/SDL_ReleaseGPUSampler
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReleaseGPUSampler(_0, _1)

def SDL_ReleaseGPUBuffer(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUBuffer) -> None:
    """
    Frees the given buffer as soon as it is safe to do so.
    https://wiki.libsdl.org/SDL3/SDL_ReleaseGPUBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReleaseGPUBuffer(_0, _1)

def SDL_ReleaseGPUTransferBuffer(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUTransferBuffer) -> None:
    """
    Frees the given transfer buffer as soon as it is safe to do so.
    https://wiki.libsdl.org/SDL3/SDL_ReleaseGPUTransferBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReleaseGPUTransferBuffer(_0, _1)

def SDL_ReleaseGPUComputePipeline(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUComputePipeline) -> None:
    """
    Frees the given compute pipeline as soon as it is safe to do so.
    https://wiki.libsdl.org/SDL3/SDL_ReleaseGPUComputePipeline
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReleaseGPUComputePipeline(_0, _1)

def SDL_ReleaseGPUShader(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUShader) -> None:
    """
    Frees the given shader as soon as it is safe to do so.
    https://wiki.libsdl.org/SDL3/SDL_ReleaseGPUShader
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReleaseGPUShader(_0, _1)

def SDL_ReleaseGPUGraphicsPipeline(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUGraphicsPipeline) -> None:
    """
    Frees the given graphics pipeline as soon as it is safe to do so.
    https://wiki.libsdl.org/SDL3/SDL_ReleaseGPUGraphicsPipeline
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReleaseGPUGraphicsPipeline(_0, _1)

def SDL_AcquireGPUCommandBuffer(_0: LP_SDL_GPUDevice) -> LP_SDL_GPUCommandBuffer:
    """
    Acquire a command buffer.
    https://wiki.libsdl.org/SDL3/SDL_AcquireGPUCommandBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AcquireGPUCommandBuffer(_0)

def SDL_PushGPUVertexUniformData(_0: LP_SDL_GPUCommandBuffer, _1: ctypes.c_ulong, _2: ctypes.c_void_p, _3: ctypes.c_ulong) -> None:
    """
    Pushes data to a vertex uniform slot on the command buffer.
    https://wiki.libsdl.org/SDL3/SDL_PushGPUVertexUniformData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PushGPUVertexUniformData(_0, _1, _2, _3)

def SDL_PushGPUFragmentUniformData(_0: LP_SDL_GPUCommandBuffer, _1: ctypes.c_ulong, _2: ctypes.c_void_p, _3: ctypes.c_ulong) -> None:
    """
    Pushes data to a fragment uniform slot on the command buffer.
    https://wiki.libsdl.org/SDL3/SDL_PushGPUFragmentUniformData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PushGPUFragmentUniformData(_0, _1, _2, _3)

def SDL_PushGPUComputeUniformData(_0: LP_SDL_GPUCommandBuffer, _1: ctypes.c_ulong, _2: ctypes.c_void_p, _3: ctypes.c_ulong) -> None:
    """
    Pushes data to a uniform slot on the command buffer.
    https://wiki.libsdl.org/SDL3/SDL_PushGPUComputeUniformData
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PushGPUComputeUniformData(_0, _1, _2, _3)

def SDL_BeginGPURenderPass(_0: LP_SDL_GPUCommandBuffer, _1: LP_SDL_GPUColorTargetInfo, _2: ctypes.c_ulong, _3: LP_SDL_GPUDepthStencilTargetInfo) -> LP_SDL_GPURenderPass:
    """
    Begins a render pass on a command buffer.
    https://wiki.libsdl.org/SDL3/SDL_BeginGPURenderPass
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BeginGPURenderPass(_0, _1, _2, _3)

def SDL_BindGPUGraphicsPipeline(_0: LP_SDL_GPURenderPass, _1: LP_SDL_GPUGraphicsPipeline) -> None:
    """
    Binds a graphics pipeline on a render pass to be used in rendering.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUGraphicsPipeline
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUGraphicsPipeline(_0, _1)

def SDL_SetGPUViewport(_0: LP_SDL_GPURenderPass, _1: LP_SDL_GPUViewport) -> None:
    """
    Sets the current viewport state on a command buffer.
    https://wiki.libsdl.org/SDL3/SDL_SetGPUViewport
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGPUViewport(_0, _1)

def SDL_SetGPUScissor(_0: LP_SDL_GPURenderPass, _1: LP_SDL_Rect) -> None:
    """
    Sets the current scissor state on a command buffer.
    https://wiki.libsdl.org/SDL3/SDL_SetGPUScissor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGPUScissor(_0, _1)

def SDL_SetGPUBlendConstants(_0: LP_SDL_GPURenderPass, _1: SDL_FColor) -> None:
    """
    Sets the current blend constants on a command buffer.
    https://wiki.libsdl.org/SDL3/SDL_SetGPUBlendConstants
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGPUBlendConstants(_0, _1)

def SDL_SetGPUStencilReference(_0: LP_SDL_GPURenderPass, _1: ctypes.c_ubyte) -> None:
    """
    Sets the current stencil reference value on a command buffer.
    https://wiki.libsdl.org/SDL3/SDL_SetGPUStencilReference
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGPUStencilReference(_0, _1)

def SDL_BindGPUVertexBuffers(_0: LP_SDL_GPURenderPass, _1: ctypes.c_ulong, _2: LP_SDL_GPUBufferBinding, _3: ctypes.c_ulong) -> None:
    """
    Binds vertex buffers on a command buffer for use with subsequent draw calls.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUVertexBuffers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUVertexBuffers(_0, _1, _2, _3)

def SDL_BindGPUIndexBuffer(_0: LP_SDL_GPURenderPass, _1: LP_SDL_GPUBufferBinding, _2: ctypes.c_long) -> None:
    """
    Binds an index buffer on a command buffer for use with subsequent draw calls.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUIndexBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUIndexBuffer(_0, _1, _2)

def SDL_BindGPUVertexSamplers(_0: LP_SDL_GPURenderPass, _1: ctypes.c_ulong, _2: LP_SDL_GPUTextureSamplerBinding, _3: ctypes.c_ulong) -> None:
    """
    Binds texture-sampler pairs for use on the vertex shader.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUVertexSamplers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUVertexSamplers(_0, _1, _2, _3)

def SDL_BindGPUVertexStorageTextures(_0: LP_SDL_GPURenderPass, _1: ctypes.c_ulong, _2: LP_LP_SDL_GPUTexture, _3: ctypes.c_ulong) -> None:
    """
    Binds storage textures for use on the vertex shader.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUVertexStorageTextures
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUVertexStorageTextures(_0, _1, _2, _3)

def SDL_BindGPUVertexStorageBuffers(_0: LP_SDL_GPURenderPass, _1: ctypes.c_ulong, _2: LP_SDL_GPUBufferBinding, _3: ctypes.c_ulong) -> None:
    """
    Binds storage buffers for use on the vertex shader.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUVertexStorageBuffers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUVertexStorageBuffers(_0, _1, _2, _3)

def SDL_BindGPUFragmentSamplers(_0: LP_SDL_GPURenderPass, _1: ctypes.c_ulong, _2: LP_SDL_GPUTextureSamplerBinding, _3: ctypes.c_ulong) -> None:
    """
    Binds texture-sampler pairs for use on the fragment shader.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUFragmentSamplers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUFragmentSamplers(_0, _1, _2, _3)

def SDL_BindGPUFragmentStorageTextures(_0: LP_SDL_GPURenderPass, _1: ctypes.c_ulong, _2: LP_LP_SDL_GPUTexture, _3: ctypes.c_ulong) -> None:
    """
    Binds storage textures for use on the fragment shader.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUFragmentStorageTextures
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUFragmentStorageTextures(_0, _1, _2, _3)

def SDL_BindGPUFragmentStorageBuffers(_0: LP_SDL_GPURenderPass, _1: ctypes.c_ulong, _2: LP_SDL_GPUBufferBinding, _3: ctypes.c_ulong) -> None:
    """
    Binds storage buffers for use on the fragment shader.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUFragmentStorageBuffers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUFragmentStorageBuffers(_0, _1, _2, _3)

def SDL_DrawGPUIndexedPrimitives(_0: LP_SDL_GPURenderPass, _1: ctypes.c_ulong, _2: ctypes.c_ulong, _3: ctypes.c_ulong, _4: ctypes.c_long, _5: ctypes.c_ulong) -> None:
    """
    Draws data using bound graphics state with an index buffer and instancing enabled.
    https://wiki.libsdl.org/SDL3/SDL_DrawGPUIndexedPrimitives
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DrawGPUIndexedPrimitives(_0, _1, _2, _3, _4, _5)

def SDL_DrawGPUPrimitives(_0: LP_SDL_GPURenderPass, _1: ctypes.c_ulong, _2: ctypes.c_ulong, _3: ctypes.c_ulong, _4: ctypes.c_ulong) -> None:
    """
    Draws data using bound graphics state.
    https://wiki.libsdl.org/SDL3/SDL_DrawGPUPrimitives
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DrawGPUPrimitives(_0, _1, _2, _3, _4)

def SDL_DrawGPUPrimitivesIndirect(_0: LP_SDL_GPURenderPass, _1: LP_SDL_GPUBuffer, _2: ctypes.c_ulong, _3: ctypes.c_ulong) -> None:
    """
    Draws data using bound graphics state and with draw parameters set from a buffer.
    https://wiki.libsdl.org/SDL3/SDL_DrawGPUPrimitivesIndirect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DrawGPUPrimitivesIndirect(_0, _1, _2, _3)

def SDL_DrawGPUIndexedPrimitivesIndirect(_0: LP_SDL_GPURenderPass, _1: LP_SDL_GPUBuffer, _2: ctypes.c_ulong, _3: ctypes.c_ulong) -> None:
    """
    Draws data using bound graphics state with an index buffer enabled and with draw parameters set from a buffer.
    https://wiki.libsdl.org/SDL3/SDL_DrawGPUIndexedPrimitivesIndirect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DrawGPUIndexedPrimitivesIndirect(_0, _1, _2, _3)

def SDL_EndGPURenderPass(_0: LP_SDL_GPURenderPass) -> None:
    """
    Ends the given render pass.
    https://wiki.libsdl.org/SDL3/SDL_EndGPURenderPass
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EndGPURenderPass(_0)

def SDL_BeginGPUComputePass(_0: LP_SDL_GPUCommandBuffer, _1: LP_SDL_GPUStorageTextureReadWriteBinding, _2: ctypes.c_ulong, _3: LP_SDL_GPUStorageBufferReadWriteBinding, _4: ctypes.c_ulong) -> LP_SDL_GPUComputePass:
    """
    Begins a compute pass on a command buffer.
    https://wiki.libsdl.org/SDL3/SDL_BeginGPUComputePass
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BeginGPUComputePass(_0, _1, _2, _3, _4)

def SDL_BindGPUComputePipeline(_0: LP_SDL_GPUComputePass, _1: LP_SDL_GPUComputePipeline) -> None:
    """
    Binds a compute pipeline on a command buffer for use in compute dispatch.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUComputePipeline
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUComputePipeline(_0, _1)

def SDL_BindGPUComputeSamplers(_0: LP_SDL_GPUComputePass, _1: ctypes.c_ulong, _2: LP_SDL_GPUTextureSamplerBinding, _3: ctypes.c_ulong) -> None:
    """
    Binds texture-sampler pairs for use on the compute shader.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUComputeSamplers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUComputeSamplers(_0, _1, _2, _3)

def SDL_BindGPUComputeStorageTextures(_0: LP_SDL_GPUComputePass, _1: ctypes.c_ulong, _2: LP_LP_SDL_GPUTexture, _3: ctypes.c_ulong) -> None:
    """
    Binds storage textures as readonly for use on the compute pipeline.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUComputeStorageTextures
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUComputeStorageTextures(_0, _1, _2, _3)

def SDL_BindGPUComputeStorageBuffers(_0: LP_SDL_GPUComputePass, _1: ctypes.c_ulong, _2: LP_SDL_GPUBufferBinding, _3: ctypes.c_ulong) -> None:
    """
    Binds storage buffers as readonly for use on the compute pipeline.
    https://wiki.libsdl.org/SDL3/SDL_BindGPUComputeStorageBuffers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BindGPUComputeStorageBuffers(_0, _1, _2, _3)

def SDL_DispatchGPUCompute(_0: LP_SDL_GPUComputePass, _1: ctypes.c_ulong, _2: ctypes.c_ulong, _3: ctypes.c_ulong) -> None:
    """
    Dispatches compute work.
    https://wiki.libsdl.org/SDL3/SDL_DispatchGPUCompute
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DispatchGPUCompute(_0, _1, _2, _3)

def SDL_DispatchGPUComputeIndirect(_0: LP_SDL_GPUComputePass, _1: LP_SDL_GPUBuffer, _2: ctypes.c_ulong) -> None:
    """
    Dispatches compute work with parameters set from a buffer.
    https://wiki.libsdl.org/SDL3/SDL_DispatchGPUComputeIndirect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DispatchGPUComputeIndirect(_0, _1, _2)

def SDL_EndGPUComputePass(_0: LP_SDL_GPUComputePass) -> None:
    """
    Ends the current compute pass.
    https://wiki.libsdl.org/SDL3/SDL_EndGPUComputePass
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EndGPUComputePass(_0)

def SDL_MapGPUTransferBuffer(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUTransferBuffer, _2: ctypes.c_bool) -> ctypes.c_void_p:
    """
    Maps a transfer buffer into application address space.
    https://wiki.libsdl.org/SDL3/SDL_MapGPUTransferBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_MapGPUTransferBuffer(_0, _1, _2)

def SDL_UnmapGPUTransferBuffer(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUTransferBuffer) -> None:
    """
    Unmaps a previously mapped transfer buffer.
    https://wiki.libsdl.org/SDL3/SDL_UnmapGPUTransferBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnmapGPUTransferBuffer(_0, _1)

def SDL_BeginGPUCopyPass(_0: LP_SDL_GPUCommandBuffer) -> LP_SDL_GPUCopyPass:
    """
    Begins a copy pass on a command buffer.
    https://wiki.libsdl.org/SDL3/SDL_BeginGPUCopyPass
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BeginGPUCopyPass(_0)

def SDL_UploadToGPUTexture(_0: LP_SDL_GPUCopyPass, _1: LP_SDL_GPUTextureTransferInfo, _2: LP_SDL_GPUTextureRegion, _3: ctypes.c_bool) -> None:
    """
    Uploads data from a transfer buffer to a texture.
    https://wiki.libsdl.org/SDL3/SDL_UploadToGPUTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UploadToGPUTexture(_0, _1, _2, _3)

def SDL_UploadToGPUBuffer(_0: LP_SDL_GPUCopyPass, _1: LP_SDL_GPUTransferBufferLocation, _2: LP_SDL_GPUBufferRegion, _3: ctypes.c_bool) -> None:
    """
    Uploads data from a transfer buffer to a buffer.
    https://wiki.libsdl.org/SDL3/SDL_UploadToGPUBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UploadToGPUBuffer(_0, _1, _2, _3)

def SDL_CopyGPUTextureToTexture(_0: LP_SDL_GPUCopyPass, _1: LP_SDL_GPUTextureLocation, _2: LP_SDL_GPUTextureLocation, _3: ctypes.c_ulong, _4: ctypes.c_ulong, _5: ctypes.c_ulong, _6: ctypes.c_bool) -> None:
    """
    Performs a texture-to-texture copy.
    https://wiki.libsdl.org/SDL3/SDL_CopyGPUTextureToTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CopyGPUTextureToTexture(_0, _1, _2, _3, _4, _5, _6)

def SDL_CopyGPUBufferToBuffer(_0: LP_SDL_GPUCopyPass, _1: LP_SDL_GPUBufferLocation, _2: LP_SDL_GPUBufferLocation, _3: ctypes.c_ulong, _4: ctypes.c_bool) -> None:
    """
    Performs a buffer-to-buffer copy.
    https://wiki.libsdl.org/SDL3/SDL_CopyGPUBufferToBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CopyGPUBufferToBuffer(_0, _1, _2, _3, _4)

def SDL_DownloadFromGPUTexture(_0: LP_SDL_GPUCopyPass, _1: LP_SDL_GPUTextureRegion, _2: LP_SDL_GPUTextureTransferInfo) -> None:
    """
    Copies data from a texture to a transfer buffer on the GPU timeline.
    https://wiki.libsdl.org/SDL3/SDL_DownloadFromGPUTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DownloadFromGPUTexture(_0, _1, _2)

def SDL_DownloadFromGPUBuffer(_0: LP_SDL_GPUCopyPass, _1: LP_SDL_GPUBufferRegion, _2: LP_SDL_GPUTransferBufferLocation) -> None:
    """
    Copies data from a buffer to a transfer buffer on the GPU timeline.
    https://wiki.libsdl.org/SDL3/SDL_DownloadFromGPUBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DownloadFromGPUBuffer(_0, _1, _2)

def SDL_EndGPUCopyPass(_0: LP_SDL_GPUCopyPass) -> None:
    """
    Ends the current copy pass.
    https://wiki.libsdl.org/SDL3/SDL_EndGPUCopyPass
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EndGPUCopyPass(_0)

def SDL_GenerateMipmapsForGPUTexture(_0: LP_SDL_GPUCommandBuffer, _1: LP_SDL_GPUTexture) -> None:
    """
    Generates mipmaps for the given texture.
    https://wiki.libsdl.org/SDL3/SDL_GenerateMipmapsForGPUTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GenerateMipmapsForGPUTexture(_0, _1)

def SDL_BlitGPUTexture(_0: LP_SDL_GPUCommandBuffer, _1: LP_SDL_GPUBlitInfo) -> None:
    """
    Blits from a source texture region to a destination texture region.
    https://wiki.libsdl.org/SDL3/SDL_BlitGPUTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BlitGPUTexture(_0, _1)

def SDL_WindowSupportsGPUSwapchainComposition(_0: LP_SDL_GPUDevice, _1: LP_SDL_Window, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Determines whether a swapchain composition is supported by the window.
    https://wiki.libsdl.org/SDL3/SDL_WindowSupportsGPUSwapchainComposition
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WindowSupportsGPUSwapchainComposition(_0, _1, _2)

def SDL_WindowSupportsGPUPresentMode(_0: LP_SDL_GPUDevice, _1: LP_SDL_Window, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Determines whether a presentation mode is supported by the window.
    https://wiki.libsdl.org/SDL3/SDL_WindowSupportsGPUPresentMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WindowSupportsGPUPresentMode(_0, _1, _2)

def SDL_ClaimWindowForGPUDevice(_0: LP_SDL_GPUDevice, _1: LP_SDL_Window) -> ctypes.c_bool:
    """
    Claims a window, creating a swapchain structure for it.
    https://wiki.libsdl.org/SDL3/SDL_ClaimWindowForGPUDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ClaimWindowForGPUDevice(_0, _1)

def SDL_ReleaseWindowFromGPUDevice(_0: LP_SDL_GPUDevice, _1: LP_SDL_Window) -> None:
    """
    Unclaims a window, destroying its swapchain structure.
    https://wiki.libsdl.org/SDL3/SDL_ReleaseWindowFromGPUDevice
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReleaseWindowFromGPUDevice(_0, _1)

def SDL_SetGPUSwapchainParameters(_0: LP_SDL_GPUDevice, _1: LP_SDL_Window, _2: ctypes.c_long, _3: ctypes.c_long) -> ctypes.c_bool:
    """
    Changes the swapchain parameters for the given claimed window.
    https://wiki.libsdl.org/SDL3/SDL_SetGPUSwapchainParameters
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGPUSwapchainParameters(_0, _1, _2, _3)

def SDL_SetGPUAllowedFramesInFlight(_0: LP_SDL_GPUDevice, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Configures the maximum allowed number of frames in flight.
    https://wiki.libsdl.org/SDL3/SDL_SetGPUAllowedFramesInFlight
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetGPUAllowedFramesInFlight(_0, _1)

def SDL_GetGPUSwapchainTextureFormat(_0: LP_SDL_GPUDevice, _1: LP_SDL_Window) -> ctypes.c_long:
    """
    Obtains the texture format of the swapchain for the given window.
    https://wiki.libsdl.org/SDL3/SDL_GetGPUSwapchainTextureFormat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetGPUSwapchainTextureFormat(_0, _1)

def SDL_AcquireGPUSwapchainTexture(_0: LP_SDL_GPUCommandBuffer, _1: LP_SDL_Window, _2: LP_LP_SDL_GPUTexture, _3: LP_c_ulong, _4: LP_c_ulong) -> ctypes.c_bool:
    """
    Acquire a texture to use in presentation.
    https://wiki.libsdl.org/SDL3/SDL_AcquireGPUSwapchainTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AcquireGPUSwapchainTexture(_0, _1, _2, _3, _4)

def SDL_WaitForGPUSwapchain(_0: LP_SDL_GPUDevice, _1: LP_SDL_Window) -> ctypes.c_bool:
    """
    Blocks the thread until a swapchain texture is available to be acquired.
    https://wiki.libsdl.org/SDL3/SDL_WaitForGPUSwapchain
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitForGPUSwapchain(_0, _1)

def SDL_WaitAndAcquireGPUSwapchainTexture(_0: LP_SDL_GPUCommandBuffer, _1: LP_SDL_Window, _2: LP_LP_SDL_GPUTexture, _3: LP_c_ulong, _4: LP_c_ulong) -> ctypes.c_bool:
    """
    Blocks the thread until a swapchain texture is available to be acquired, and then acquires it.
    https://wiki.libsdl.org/SDL3/SDL_WaitAndAcquireGPUSwapchainTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitAndAcquireGPUSwapchainTexture(_0, _1, _2, _3, _4)

def SDL_SubmitGPUCommandBuffer(_0: LP_SDL_GPUCommandBuffer) -> ctypes.c_bool:
    """
    Submits a command buffer so its commands can be processed on the GPU.
    https://wiki.libsdl.org/SDL3/SDL_SubmitGPUCommandBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SubmitGPUCommandBuffer(_0)

def SDL_SubmitGPUCommandBufferAndAcquireFence(_0: LP_SDL_GPUCommandBuffer) -> LP_SDL_GPUFence:
    """
    Submits a command buffer so its commands can be processed on the GPU, and acquires a fence associated with the command buffer.
    https://wiki.libsdl.org/SDL3/SDL_SubmitGPUCommandBufferAndAcquireFence
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SubmitGPUCommandBufferAndAcquireFence(_0)

def SDL_CancelGPUCommandBuffer(_0: LP_SDL_GPUCommandBuffer) -> ctypes.c_bool:
    """
    Cancels a command buffer.
    https://wiki.libsdl.org/SDL3/SDL_CancelGPUCommandBuffer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CancelGPUCommandBuffer(_0)

def SDL_WaitForGPUIdle(_0: LP_SDL_GPUDevice) -> ctypes.c_bool:
    """
    Blocks the thread until the GPU is completely idle.
    https://wiki.libsdl.org/SDL3/SDL_WaitForGPUIdle
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitForGPUIdle(_0)

def SDL_WaitForGPUFences(_0: LP_SDL_GPUDevice, _1: ctypes.c_bool, _2: LP_LP_SDL_GPUFence, _3: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Blocks the thread until the given fences are signaled.
    https://wiki.libsdl.org/SDL3/SDL_WaitForGPUFences
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitForGPUFences(_0, _1, _2, _3)

def SDL_QueryGPUFence(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUFence) -> ctypes.c_bool:
    """
    Checks the status of a fence.
    https://wiki.libsdl.org/SDL3/SDL_QueryGPUFence
    """
    return SDL_GET_DLL(SDL_DLL).SDL_QueryGPUFence(_0, _1)

def SDL_ReleaseGPUFence(_0: LP_SDL_GPUDevice, _1: LP_SDL_GPUFence) -> None:
    """
    Releases a fence obtained from [SDL_SubmitGPUCommandBufferAndAcquireFence](https://wiki.libsdl.org/SDL3/SDL_SubmitGPUCommandBufferAndAcquireFence).
    https://wiki.libsdl.org/SDL3/SDL_ReleaseGPUFence
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReleaseGPUFence(_0, _1)

def SDL_GPUTextureFormatTexelBlockSize(_0: ctypes.c_long) -> ctypes.c_ulong:
    """
    Obtains the texel block size for a texture format.
    https://wiki.libsdl.org/SDL3/SDL_GPUTextureFormatTexelBlockSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GPUTextureFormatTexelBlockSize(_0)

def SDL_GPUTextureSupportsFormat(_0: LP_SDL_GPUDevice, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Determines whether a texture format is supported for a given type and usage.
    https://wiki.libsdl.org/SDL3/SDL_GPUTextureSupportsFormat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GPUTextureSupportsFormat(_0, _1, _2, _3)

def SDL_GPUTextureSupportsSampleCount(_0: LP_SDL_GPUDevice, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Determines if a sample count for a texture format is supported.
    https://wiki.libsdl.org/SDL3/SDL_GPUTextureSupportsSampleCount
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GPUTextureSupportsSampleCount(_0, _1, _2)

def SDL_CalculateGPUTextureFormatSize(_0: ctypes.c_long, _1: ctypes.c_ulong, _2: ctypes.c_ulong, _3: ctypes.c_ulong) -> ctypes.c_ulong:
    """
    Calculate the size in bytes of a texture format with dimensions.
    https://wiki.libsdl.org/SDL3/SDL_CalculateGPUTextureFormatSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CalculateGPUTextureFormatSize(_0, _1, _2, _3)

def SDL_GetHaptics(_0: LP_c_long) -> LP_c_ulong:
    """
    Get a list of currently connected haptic devices.
    https://wiki.libsdl.org/SDL3/SDL_GetHaptics
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetHaptics(_0)

def SDL_GetHapticNameForID(_0: ctypes.c_ulong) -> ctypes.c_char_p:
    """
    Get the implementation dependent name of a haptic device.
    https://wiki.libsdl.org/SDL3/SDL_GetHapticNameForID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetHapticNameForID(_0)

def SDL_OpenHaptic(_0: ctypes.c_ulong) -> LP_SDL_Haptic:
    """
    Open a haptic device for use.
    https://wiki.libsdl.org/SDL3/SDL_OpenHaptic
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenHaptic(_0)

def SDL_GetHapticFromID(_0: ctypes.c_ulong) -> LP_SDL_Haptic:
    """
    Get the [SDL_Haptic](https://wiki.libsdl.org/SDL3/SDL_Haptic) associated with an instance ID, if it has been opened.
    https://wiki.libsdl.org/SDL3/SDL_GetHapticFromID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetHapticFromID(_0)

def SDL_GetHapticID(_0: LP_SDL_Haptic) -> ctypes.c_ulong:
    """
    Get the instance ID of an opened haptic device.
    https://wiki.libsdl.org/SDL3/SDL_GetHapticID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetHapticID(_0)

def SDL_GetHapticName(_0: LP_SDL_Haptic) -> ctypes.c_char_p:
    """
    Get the implementation dependent name of a haptic device.
    https://wiki.libsdl.org/SDL3/SDL_GetHapticName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetHapticName(_0)

def SDL_IsMouseHaptic() -> ctypes.c_bool:
    """
    Query whether or not the current mouse has haptic capabilities.
    https://wiki.libsdl.org/SDL3/SDL_IsMouseHaptic
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IsMouseHaptic()

def SDL_OpenHapticFromMouse() -> LP_SDL_Haptic:
    """
    Try to open a haptic device from the current mouse.
    https://wiki.libsdl.org/SDL3/SDL_OpenHapticFromMouse
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenHapticFromMouse()

def SDL_IsJoystickHaptic(_0: LP_SDL_Joystick) -> ctypes.c_bool:
    """
    Query if a joystick has haptic features.
    https://wiki.libsdl.org/SDL3/SDL_IsJoystickHaptic
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IsJoystickHaptic(_0)

def SDL_OpenHapticFromJoystick(_0: LP_SDL_Joystick) -> LP_SDL_Haptic:
    """
    Open a haptic device for use from a joystick device.
    https://wiki.libsdl.org/SDL3/SDL_OpenHapticFromJoystick
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenHapticFromJoystick(_0)

def SDL_CloseHaptic(_0: LP_SDL_Haptic) -> None:
    """
    Close a haptic device previously opened with [SDL_OpenHaptic](https://wiki.libsdl.org/SDL3/SDL_OpenHaptic)().
    https://wiki.libsdl.org/SDL3/SDL_CloseHaptic
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CloseHaptic(_0)

def SDL_GetMaxHapticEffects(_0: LP_SDL_Haptic) -> ctypes.c_long:
    """
    Get the number of effects a haptic device can store.
    https://wiki.libsdl.org/SDL3/SDL_GetMaxHapticEffects
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetMaxHapticEffects(_0)

def SDL_GetMaxHapticEffectsPlaying(_0: LP_SDL_Haptic) -> ctypes.c_long:
    """
    Get the number of effects a haptic device can play at the same time.
    https://wiki.libsdl.org/SDL3/SDL_GetMaxHapticEffectsPlaying
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetMaxHapticEffectsPlaying(_0)

def SDL_GetHapticFeatures(_0: LP_SDL_Haptic) -> ctypes.c_ulong:
    """
    Get the haptic device's supported features in bitwise manner.
    https://wiki.libsdl.org/SDL3/SDL_GetHapticFeatures
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetHapticFeatures(_0)

def SDL_GetNumHapticAxes(_0: LP_SDL_Haptic) -> ctypes.c_long:
    """
    Get the number of haptic axes the device has.
    https://wiki.libsdl.org/SDL3/SDL_GetNumHapticAxes
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumHapticAxes(_0)

def SDL_HapticEffectSupported(_0: LP_SDL_Haptic, _1: LP_SDL_HapticEffect) -> ctypes.c_bool:
    """
    Check to see if an effect is supported by a haptic device.
    https://wiki.libsdl.org/SDL3/SDL_HapticEffectSupported
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HapticEffectSupported(_0, _1)

def SDL_CreateHapticEffect(_0: LP_SDL_Haptic, _1: LP_SDL_HapticEffect) -> ctypes.c_long:
    """
    Create a new haptic effect on a specified device.
    https://wiki.libsdl.org/SDL3/SDL_CreateHapticEffect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateHapticEffect(_0, _1)

def SDL_UpdateHapticEffect(_0: LP_SDL_Haptic, _1: ctypes.c_long, _2: LP_SDL_HapticEffect) -> ctypes.c_bool:
    """
    Update the properties of an effect.
    https://wiki.libsdl.org/SDL3/SDL_UpdateHapticEffect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UpdateHapticEffect(_0, _1, _2)

def SDL_RunHapticEffect(_0: LP_SDL_Haptic, _1: ctypes.c_long, _2: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Run the haptic effect on its associated haptic device.
    https://wiki.libsdl.org/SDL3/SDL_RunHapticEffect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RunHapticEffect(_0, _1, _2)

def SDL_StopHapticEffect(_0: LP_SDL_Haptic, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Stop the haptic effect on its associated haptic device.
    https://wiki.libsdl.org/SDL3/SDL_StopHapticEffect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_StopHapticEffect(_0, _1)

def SDL_DestroyHapticEffect(_0: LP_SDL_Haptic, _1: ctypes.c_long) -> None:
    """
    Destroy a haptic effect on the device.
    https://wiki.libsdl.org/SDL3/SDL_DestroyHapticEffect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyHapticEffect(_0, _1)

def SDL_GetHapticEffectStatus(_0: LP_SDL_Haptic, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Get the status of the current effect on the specified haptic device.
    https://wiki.libsdl.org/SDL3/SDL_GetHapticEffectStatus
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetHapticEffectStatus(_0, _1)

def SDL_SetHapticGain(_0: LP_SDL_Haptic, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the global gain of the specified haptic device.
    https://wiki.libsdl.org/SDL3/SDL_SetHapticGain
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetHapticGain(_0, _1)

def SDL_SetHapticAutocenter(_0: LP_SDL_Haptic, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the global autocenter of the device.
    https://wiki.libsdl.org/SDL3/SDL_SetHapticAutocenter
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetHapticAutocenter(_0, _1)

def SDL_PauseHaptic(_0: LP_SDL_Haptic) -> ctypes.c_bool:
    """
    Pause a haptic device.
    https://wiki.libsdl.org/SDL3/SDL_PauseHaptic
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PauseHaptic(_0)

def SDL_ResumeHaptic(_0: LP_SDL_Haptic) -> ctypes.c_bool:
    """
    Resume a haptic device.
    https://wiki.libsdl.org/SDL3/SDL_ResumeHaptic
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ResumeHaptic(_0)

def SDL_StopHapticEffects(_0: LP_SDL_Haptic) -> ctypes.c_bool:
    """
    Stop all the currently playing effects on a haptic device.
    https://wiki.libsdl.org/SDL3/SDL_StopHapticEffects
    """
    return SDL_GET_DLL(SDL_DLL).SDL_StopHapticEffects(_0)

def SDL_HapticRumbleSupported(_0: LP_SDL_Haptic) -> ctypes.c_bool:
    """
    Check whether rumble is supported on a haptic device.
    https://wiki.libsdl.org/SDL3/SDL_HapticRumbleSupported
    """
    return SDL_GET_DLL(SDL_DLL).SDL_HapticRumbleSupported(_0)

def SDL_InitHapticRumble(_0: LP_SDL_Haptic) -> ctypes.c_bool:
    """
    Initialize a haptic device for simple rumble playback.
    https://wiki.libsdl.org/SDL3/SDL_InitHapticRumble
    """
    return SDL_GET_DLL(SDL_DLL).SDL_InitHapticRumble(_0)

def SDL_PlayHapticRumble(_0: LP_SDL_Haptic, _1: ctypes.c_float, _2: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Run a simple rumble effect on a haptic device.
    https://wiki.libsdl.org/SDL3/SDL_PlayHapticRumble
    """
    return SDL_GET_DLL(SDL_DLL).SDL_PlayHapticRumble(_0, _1, _2)

def SDL_StopHapticRumble(_0: LP_SDL_Haptic) -> ctypes.c_bool:
    """
    Stop the simple rumble on a haptic device.
    https://wiki.libsdl.org/SDL3/SDL_StopHapticRumble
    """
    return SDL_GET_DLL(SDL_DLL).SDL_StopHapticRumble(_0)

def SDL_hid_init() -> ctypes.c_long:
    """
    Initialize the HIDAPI library.
    https://wiki.libsdl.org/SDL3/SDL_hid_init
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_init()

def SDL_hid_exit() -> ctypes.c_long:
    """
    Finalize the HIDAPI library.
    https://wiki.libsdl.org/SDL3/SDL_hid_exit
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_exit()

def SDL_hid_device_change_count() -> ctypes.c_ulong:
    """
    Check to see if devices may have been added or removed.
    https://wiki.libsdl.org/SDL3/SDL_hid_device_change_count
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_device_change_count()

def SDL_hid_enumerate(_0: ctypes.c_ushort, _1: ctypes.c_ushort) -> LP_SDL_hid_device_info:
    """
    Enumerate the HID Devices.
    https://wiki.libsdl.org/SDL3/SDL_hid_enumerate
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_enumerate(_0, _1)

def SDL_hid_free_enumeration(_0: LP_SDL_hid_device_info) -> None:
    """
    Free an enumeration linked list.
    https://wiki.libsdl.org/SDL3/SDL_hid_free_enumeration
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_free_enumeration(_0)

def SDL_hid_open(_0: ctypes.c_ushort, _1: ctypes.c_ushort, _2: ctypes.c_wchar_p) -> LP_SDL_hid_device:
    """
    Open a HID device using a Vendor ID (VID), Product ID (PID) and optionally a serial number.
    https://wiki.libsdl.org/SDL3/SDL_hid_open
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_open(_0, _1, _2)

def SDL_hid_open_path(_0: ctypes.c_char_p) -> LP_SDL_hid_device:
    """
    Open a HID device by its path name.
    https://wiki.libsdl.org/SDL3/SDL_hid_open_path
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_open_path(_0)

def SDL_hid_write(_0: LP_SDL_hid_device, _1: LP_c_ubyte, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Write an Output report to a HID device.
    https://wiki.libsdl.org/SDL3/SDL_hid_write
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_write(_0, _1, _2)

def SDL_hid_read_timeout(_0: LP_SDL_hid_device, _1: LP_c_ubyte, _2: ctypes.c_ulonglong, _3: ctypes.c_long) -> ctypes.c_long:
    """
    Read an Input report from a HID device with timeout.
    https://wiki.libsdl.org/SDL3/SDL_hid_read_timeout
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_read_timeout(_0, _1, _2, _3)

def SDL_hid_read(_0: LP_SDL_hid_device, _1: LP_c_ubyte, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Read an Input report from a HID device.
    https://wiki.libsdl.org/SDL3/SDL_hid_read
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_read(_0, _1, _2)

def SDL_hid_set_nonblocking(_0: LP_SDL_hid_device, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Set the device handle to be non-blocking.
    https://wiki.libsdl.org/SDL3/SDL_hid_set_nonblocking
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_set_nonblocking(_0, _1)

def SDL_hid_send_feature_report(_0: LP_SDL_hid_device, _1: LP_c_ubyte, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Send a Feature report to the device.
    https://wiki.libsdl.org/SDL3/SDL_hid_send_feature_report
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_send_feature_report(_0, _1, _2)

def SDL_hid_get_feature_report(_0: LP_SDL_hid_device, _1: LP_c_ubyte, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Get a feature report from a HID device.
    https://wiki.libsdl.org/SDL3/SDL_hid_get_feature_report
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_get_feature_report(_0, _1, _2)

def SDL_hid_get_input_report(_0: LP_SDL_hid_device, _1: LP_c_ubyte, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Get an input report from a HID device.
    https://wiki.libsdl.org/SDL3/SDL_hid_get_input_report
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_get_input_report(_0, _1, _2)

def SDL_hid_close(_0: LP_SDL_hid_device) -> ctypes.c_long:
    """
    Close a HID device.
    https://wiki.libsdl.org/SDL3/SDL_hid_close
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_close(_0)

def SDL_hid_get_manufacturer_string(_0: LP_SDL_hid_device, _1: ctypes.c_wchar_p, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Get The Manufacturer String from a HID device.
    https://wiki.libsdl.org/SDL3/SDL_hid_get_manufacturer_string
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_get_manufacturer_string(_0, _1, _2)

def SDL_hid_get_product_string(_0: LP_SDL_hid_device, _1: ctypes.c_wchar_p, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Get The Product String from a HID device.
    https://wiki.libsdl.org/SDL3/SDL_hid_get_product_string
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_get_product_string(_0, _1, _2)

def SDL_hid_get_serial_number_string(_0: LP_SDL_hid_device, _1: ctypes.c_wchar_p, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Get The Serial Number String from a HID device.
    https://wiki.libsdl.org/SDL3/SDL_hid_get_serial_number_string
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_get_serial_number_string(_0, _1, _2)

def SDL_hid_get_indexed_string(_0: LP_SDL_hid_device, _1: ctypes.c_long, _2: ctypes.c_wchar_p, _3: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Get a string from a HID device, based on its string index.
    https://wiki.libsdl.org/SDL3/SDL_hid_get_indexed_string
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_get_indexed_string(_0, _1, _2, _3)

def SDL_hid_get_device_info(_0: LP_SDL_hid_device) -> LP_SDL_hid_device_info:
    """
    Get the device info from a HID device.
    https://wiki.libsdl.org/SDL3/SDL_hid_get_device_info
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_get_device_info(_0)

def SDL_hid_get_report_descriptor(_0: LP_SDL_hid_device, _1: LP_c_ubyte, _2: ctypes.c_ulonglong) -> ctypes.c_long:
    """
    Get a report descriptor from a HID device.
    https://wiki.libsdl.org/SDL3/SDL_hid_get_report_descriptor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_get_report_descriptor(_0, _1, _2)

def SDL_hid_ble_scan(_0: ctypes.c_bool) -> None:
    """
    Start or stop a BLE scan on iOS and tvOS to pair Steam Controllers.
    https://wiki.libsdl.org/SDL3/SDL_hid_ble_scan
    """
    return SDL_GET_DLL(SDL_DLL).SDL_hid_ble_scan(_0)

def SDL_SetHintWithPriority(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Set a hint with a specific priority.
    https://wiki.libsdl.org/SDL3/SDL_SetHintWithPriority
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetHintWithPriority(_0, _1, _2)

def SDL_SetHint(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Set a hint with normal priority.
    https://wiki.libsdl.org/SDL3/SDL_SetHint
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetHint(_0, _1)

def SDL_ResetHint(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Reset a hint to the default value.
    https://wiki.libsdl.org/SDL3/SDL_ResetHint
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ResetHint(_0)

def SDL_ResetHints() -> None:
    """
    Reset all hints to the default values.
    https://wiki.libsdl.org/SDL3/SDL_ResetHints
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ResetHints()

def SDL_GetHint(_0: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Get the value of a hint.
    https://wiki.libsdl.org/SDL3/SDL_GetHint
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetHint(_0)

def SDL_GetHintBoolean(_0: ctypes.c_char_p, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Get the boolean value of a hint variable.
    https://wiki.libsdl.org/SDL3/SDL_GetHintBoolean
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetHintBoolean(_0, _1)

def SDL_AddHintCallback(_0: ctypes.c_char_p, _1: ctypes._Pointer, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Add a function to watch a particular hint.
    https://wiki.libsdl.org/SDL3/SDL_AddHintCallback
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AddHintCallback(_0, _1, _2)

def SDL_RemoveHintCallback(_0: ctypes.c_char_p, _1: ctypes._Pointer, _2: ctypes.c_void_p) -> None:
    """
    Remove a function watching a particular hint.
    https://wiki.libsdl.org/SDL3/SDL_RemoveHintCallback
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RemoveHintCallback(_0, _1, _2)

def SDL_GetNumRenderDrivers() -> ctypes.c_long:
    """
    Get the number of 2D rendering drivers available for the current display.
    https://wiki.libsdl.org/SDL3/SDL_GetNumRenderDrivers
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetNumRenderDrivers()

def SDL_GetRenderDriver(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Use this function to get the name of a built in 2D rendering driver.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderDriver
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderDriver(_0)

def SDL_CreateWindowAndRenderer(_0: ctypes.c_char_p, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_ulonglong, _4: LP_LP_SDL_Window, _5: LP_LP_SDL_Renderer) -> ctypes.c_bool:
    """
    Create a window and default renderer.
    https://wiki.libsdl.org/SDL3/SDL_CreateWindowAndRenderer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateWindowAndRenderer(_0, _1, _2, _3, _4, _5)

def SDL_CreateRenderer(_0: LP_SDL_Window, _1: ctypes.c_char_p) -> LP_SDL_Renderer:
    """
    Create a 2D rendering context for a window.
    https://wiki.libsdl.org/SDL3/SDL_CreateRenderer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateRenderer(_0, _1)

def SDL_CreateRendererWithProperties(_0: ctypes.c_ulong) -> LP_SDL_Renderer:
    """
    Create a 2D rendering context for a window, with the specified properties.
    https://wiki.libsdl.org/SDL3/SDL_CreateRendererWithProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateRendererWithProperties(_0)

def SDL_CreateSoftwareRenderer(_0: LP_SDL_Surface) -> LP_SDL_Renderer:
    """
    Create a 2D software rendering context for a surface.
    https://wiki.libsdl.org/SDL3/SDL_CreateSoftwareRenderer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateSoftwareRenderer(_0)

def SDL_GetRenderer(_0: LP_SDL_Window) -> LP_SDL_Renderer:
    """
    Get the renderer associated with a window.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderer(_0)

def SDL_GetRenderWindow(_0: LP_SDL_Renderer) -> LP_SDL_Window:
    """
    Get the window associated with a renderer.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderWindow(_0)

def SDL_GetRendererName(_0: LP_SDL_Renderer) -> ctypes.c_char_p:
    """
    Get the name of a renderer.
    https://wiki.libsdl.org/SDL3/SDL_GetRendererName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRendererName(_0)

def SDL_GetRendererProperties(_0: LP_SDL_Renderer) -> ctypes.c_ulong:
    """
    Get the properties associated with a renderer.
    https://wiki.libsdl.org/SDL3/SDL_GetRendererProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRendererProperties(_0)

def SDL_GetRenderOutputSize(_0: LP_SDL_Renderer, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the output size in pixels of a rendering context.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderOutputSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderOutputSize(_0, _1, _2)

def SDL_GetCurrentRenderOutputSize(_0: LP_SDL_Renderer, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the current output size in pixels of a rendering context.
    https://wiki.libsdl.org/SDL3/SDL_GetCurrentRenderOutputSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCurrentRenderOutputSize(_0, _1, _2)

def SDL_CreateTexture(_0: LP_SDL_Renderer, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_long, _4: ctypes.c_long) -> LP_SDL_Texture:
    """
    Create a texture for a rendering context.
    https://wiki.libsdl.org/SDL3/SDL_CreateTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateTexture(_0, _1, _2, _3, _4)

def SDL_CreateTextureFromSurface(_0: LP_SDL_Renderer, _1: LP_SDL_Surface) -> LP_SDL_Texture:
    """
    Create a texture from an existing surface.
    https://wiki.libsdl.org/SDL3/SDL_CreateTextureFromSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateTextureFromSurface(_0, _1)

def SDL_CreateTextureWithProperties(_0: LP_SDL_Renderer, _1: ctypes.c_ulong) -> LP_SDL_Texture:
    """
    Create a texture for a rendering context with the specified properties.
    https://wiki.libsdl.org/SDL3/SDL_CreateTextureWithProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateTextureWithProperties(_0, _1)

def SDL_GetTextureProperties(_0: LP_SDL_Texture) -> ctypes.c_ulong:
    """
    Get the properties associated with a texture.
    https://wiki.libsdl.org/SDL3/SDL_GetTextureProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTextureProperties(_0)

def SDL_GetRendererFromTexture(_0: LP_SDL_Texture) -> LP_SDL_Renderer:
    """
    Get the renderer that created an [SDL_Texture](https://wiki.libsdl.org/SDL3/SDL_Texture).
    https://wiki.libsdl.org/SDL3/SDL_GetRendererFromTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRendererFromTexture(_0)

def SDL_GetTextureSize(_0: LP_SDL_Texture, _1: LP_c_float, _2: LP_c_float) -> ctypes.c_bool:
    """
    Get the size of a texture, as floating point values.
    https://wiki.libsdl.org/SDL3/SDL_GetTextureSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTextureSize(_0, _1, _2)

def SDL_SetTextureColorMod(_0: LP_SDL_Texture, _1: ctypes.c_ubyte, _2: ctypes.c_ubyte, _3: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set an additional color value multiplied into render copy operations.
    https://wiki.libsdl.org/SDL3/SDL_SetTextureColorMod
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetTextureColorMod(_0, _1, _2, _3)

def SDL_SetTextureColorModFloat(_0: LP_SDL_Texture, _1: ctypes.c_float, _2: ctypes.c_float, _3: ctypes.c_float) -> ctypes.c_bool:
    """
    Set an additional color value multiplied into render copy operations.
    https://wiki.libsdl.org/SDL3/SDL_SetTextureColorModFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetTextureColorModFloat(_0, _1, _2, _3)

def SDL_GetTextureColorMod(_0: LP_SDL_Texture, _1: LP_c_ubyte, _2: LP_c_ubyte, _3: LP_c_ubyte) -> ctypes.c_bool:
    """
    Get the additional color value multiplied into render copy operations.
    https://wiki.libsdl.org/SDL3/SDL_GetTextureColorMod
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTextureColorMod(_0, _1, _2, _3)

def SDL_GetTextureColorModFloat(_0: LP_SDL_Texture, _1: LP_c_float, _2: LP_c_float, _3: LP_c_float) -> ctypes.c_bool:
    """
    Get the additional color value multiplied into render copy operations.
    https://wiki.libsdl.org/SDL3/SDL_GetTextureColorModFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTextureColorModFloat(_0, _1, _2, _3)

def SDL_SetTextureAlphaMod(_0: LP_SDL_Texture, _1: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set an additional alpha value multiplied into render copy operations.
    https://wiki.libsdl.org/SDL3/SDL_SetTextureAlphaMod
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetTextureAlphaMod(_0, _1)

def SDL_SetTextureAlphaModFloat(_0: LP_SDL_Texture, _1: ctypes.c_float) -> ctypes.c_bool:
    """
    Set an additional alpha value multiplied into render copy operations.
    https://wiki.libsdl.org/SDL3/SDL_SetTextureAlphaModFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetTextureAlphaModFloat(_0, _1)

def SDL_GetTextureAlphaMod(_0: LP_SDL_Texture, _1: LP_c_ubyte) -> ctypes.c_bool:
    """
    Get the additional alpha value multiplied into render copy operations.
    https://wiki.libsdl.org/SDL3/SDL_GetTextureAlphaMod
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTextureAlphaMod(_0, _1)

def SDL_GetTextureAlphaModFloat(_0: LP_SDL_Texture, _1: LP_c_float) -> ctypes.c_bool:
    """
    Get the additional alpha value multiplied into render copy operations.
    https://wiki.libsdl.org/SDL3/SDL_GetTextureAlphaModFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTextureAlphaModFloat(_0, _1)

def SDL_SetTextureBlendMode(_0: LP_SDL_Texture, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Set the blend mode for a texture, used by [SDL_RenderTexture](https://wiki.libsdl.org/SDL3/SDL_RenderTexture)().
    https://wiki.libsdl.org/SDL3/SDL_SetTextureBlendMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetTextureBlendMode(_0, _1)

def SDL_GetTextureBlendMode(_0: LP_SDL_Texture, _1: LP_c_ulong) -> ctypes.c_bool:
    """
    Get the blend mode used for texture copy operations.
    https://wiki.libsdl.org/SDL3/SDL_GetTextureBlendMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTextureBlendMode(_0, _1)

def SDL_SetTextureScaleMode(_0: LP_SDL_Texture, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Set the scale mode used for texture scale operations.
    https://wiki.libsdl.org/SDL3/SDL_SetTextureScaleMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetTextureScaleMode(_0, _1)

def SDL_GetTextureScaleMode(_0: LP_SDL_Texture, _1: LP_c_ulong) -> ctypes.c_bool:
    """
    Get the scale mode used for texture scale operations.
    https://wiki.libsdl.org/SDL3/SDL_GetTextureScaleMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTextureScaleMode(_0, _1)

def SDL_UpdateTexture(_0: LP_SDL_Texture, _1: LP_SDL_Rect, _2: ctypes.c_void_p, _3: ctypes.c_long) -> ctypes.c_bool:
    """
    Update the given texture rectangle with new pixel data.
    https://wiki.libsdl.org/SDL3/SDL_UpdateTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UpdateTexture(_0, _1, _2, _3)

def SDL_UpdateYUVTexture(_0: LP_SDL_Texture, _1: LP_SDL_Rect, _2: ctypes.c_void_p, _3: ctypes.c_long, _4: ctypes.c_void_p, _5: ctypes.c_long, _6: ctypes.c_void_p, _7: ctypes.c_long) -> ctypes.c_bool:
    """
    Update a rectangle within a planar YV12 or IYUV texture with new pixel data.
    https://wiki.libsdl.org/SDL3/SDL_UpdateYUVTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UpdateYUVTexture(_0, _1, _2, _3, _4, _5, _6, _7)

def SDL_UpdateNVTexture(_0: LP_SDL_Texture, _1: LP_SDL_Rect, _2: ctypes.c_void_p, _3: ctypes.c_long, _4: ctypes.c_void_p, _5: ctypes.c_long) -> ctypes.c_bool:
    """
    Update a rectangle within a planar NV12 or NV21 texture with new pixels.
    https://wiki.libsdl.org/SDL3/SDL_UpdateNVTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UpdateNVTexture(_0, _1, _2, _3, _4, _5)

def SDL_LockTexture(_0: LP_SDL_Texture, _1: LP_SDL_Rect, _2: LP_c_void_p, _3: LP_c_long) -> ctypes.c_bool:
    """
    Lock a portion of the texture for write-only pixel access.
    https://wiki.libsdl.org/SDL3/SDL_LockTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LockTexture(_0, _1, _2, _3)

def SDL_LockTextureToSurface(_0: LP_SDL_Texture, _1: LP_SDL_Rect, _2: LP_LP_SDL_Surface) -> ctypes.c_bool:
    """
    Lock a portion of the texture for write-only pixel access, and expose it as a SDL surface.
    https://wiki.libsdl.org/SDL3/SDL_LockTextureToSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LockTextureToSurface(_0, _1, _2)

def SDL_UnlockTexture(_0: LP_SDL_Texture) -> None:
    """
    Unlock a texture, uploading the changes to video memory, if needed.
    https://wiki.libsdl.org/SDL3/SDL_UnlockTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnlockTexture(_0)

def SDL_SetRenderTarget(_0: LP_SDL_Renderer, _1: LP_SDL_Texture) -> ctypes.c_bool:
    """
    Set a texture as the current rendering target.
    https://wiki.libsdl.org/SDL3/SDL_SetRenderTarget
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetRenderTarget(_0, _1)

def SDL_GetRenderTarget(_0: LP_SDL_Renderer) -> LP_SDL_Texture:
    """
    Get the current render target.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderTarget
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderTarget(_0)

def SDL_SetRenderLogicalPresentation(_0: LP_SDL_Renderer, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_long, _4: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Set a device independent resolution and presentation mode for rendering.
    https://wiki.libsdl.org/SDL3/SDL_SetRenderLogicalPresentation
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetRenderLogicalPresentation(_0, _1, _2, _3, _4)

def SDL_GetRenderLogicalPresentation(_0: LP_SDL_Renderer, _1: LP_c_long, _2: LP_c_long, _3: LP_c_long, _4: LP_c_ulong) -> ctypes.c_bool:
    """
    Get device independent resolution and presentation mode for rendering.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderLogicalPresentation
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderLogicalPresentation(_0, _1, _2, _3, _4)

def SDL_GetRenderLogicalPresentationRect(_0: LP_SDL_Renderer, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Get the final presentation rectangle for rendering.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderLogicalPresentationRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderLogicalPresentationRect(_0, _1)

def SDL_RenderCoordinatesFromWindow(_0: LP_SDL_Renderer, _1: ctypes.c_float, _2: ctypes.c_float, _3: LP_c_float, _4: LP_c_float) -> ctypes.c_bool:
    """
    Get a point in render coordinates when given a point in window coordinates.
    https://wiki.libsdl.org/SDL3/SDL_RenderCoordinatesFromWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderCoordinatesFromWindow(_0, _1, _2, _3, _4)

def SDL_RenderCoordinatesToWindow(_0: LP_SDL_Renderer, _1: ctypes.c_float, _2: ctypes.c_float, _3: LP_c_float, _4: LP_c_float) -> ctypes.c_bool:
    """
    Get a point in window coordinates when given a point in render coordinates.
    https://wiki.libsdl.org/SDL3/SDL_RenderCoordinatesToWindow
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderCoordinatesToWindow(_0, _1, _2, _3, _4)

def SDL_ConvertEventToRenderCoordinates(_0: LP_SDL_Renderer, _1: LP_SDL_Event) -> ctypes.c_bool:
    """
    Convert the coordinates in an event to render coordinates.
    https://wiki.libsdl.org/SDL3/SDL_ConvertEventToRenderCoordinates
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ConvertEventToRenderCoordinates(_0, _1)

def SDL_SetRenderViewport(_0: LP_SDL_Renderer, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Set the drawing area for rendering on the current target.
    https://wiki.libsdl.org/SDL3/SDL_SetRenderViewport
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetRenderViewport(_0, _1)

def SDL_GetRenderViewport(_0: LP_SDL_Renderer, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Get the drawing area for the current target.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderViewport
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderViewport(_0, _1)

def SDL_RenderViewportSet(_0: LP_SDL_Renderer) -> ctypes.c_bool:
    """
    Return whether an explicit rectangle was set as the viewport.
    https://wiki.libsdl.org/SDL3/SDL_RenderViewportSet
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderViewportSet(_0)

def SDL_GetRenderSafeArea(_0: LP_SDL_Renderer, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Get the safe area for rendering within the current viewport.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderSafeArea
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderSafeArea(_0, _1)

def SDL_SetRenderClipRect(_0: LP_SDL_Renderer, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Set the clip rectangle for rendering on the specified target.
    https://wiki.libsdl.org/SDL3/SDL_SetRenderClipRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetRenderClipRect(_0, _1)

def SDL_GetRenderClipRect(_0: LP_SDL_Renderer, _1: LP_SDL_Rect) -> ctypes.c_bool:
    """
    Get the clip rectangle for the current target.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderClipRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderClipRect(_0, _1)

def SDL_RenderClipEnabled(_0: LP_SDL_Renderer) -> ctypes.c_bool:
    """
    Get whether clipping is enabled on the given renderer.
    https://wiki.libsdl.org/SDL3/SDL_RenderClipEnabled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderClipEnabled(_0)

def SDL_SetRenderScale(_0: LP_SDL_Renderer, _1: ctypes.c_float, _2: ctypes.c_float) -> ctypes.c_bool:
    """
    Set the drawing scale for rendering on the current target.
    https://wiki.libsdl.org/SDL3/SDL_SetRenderScale
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetRenderScale(_0, _1, _2)

def SDL_GetRenderScale(_0: LP_SDL_Renderer, _1: LP_c_float, _2: LP_c_float) -> ctypes.c_bool:
    """
    Get the drawing scale for the current target.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderScale
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderScale(_0, _1, _2)

def SDL_SetRenderDrawColor(_0: LP_SDL_Renderer, _1: ctypes.c_ubyte, _2: ctypes.c_ubyte, _3: ctypes.c_ubyte, _4: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set the color used for drawing operations.
    https://wiki.libsdl.org/SDL3/SDL_SetRenderDrawColor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetRenderDrawColor(_0, _1, _2, _3, _4)

def SDL_SetRenderDrawColorFloat(_0: LP_SDL_Renderer, _1: ctypes.c_float, _2: ctypes.c_float, _3: ctypes.c_float, _4: ctypes.c_float) -> ctypes.c_bool:
    """
    Set the color used for drawing operations (Rect, Line and Clear).
    https://wiki.libsdl.org/SDL3/SDL_SetRenderDrawColorFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetRenderDrawColorFloat(_0, _1, _2, _3, _4)

def SDL_GetRenderDrawColor(_0: LP_SDL_Renderer, _1: LP_c_ubyte, _2: LP_c_ubyte, _3: LP_c_ubyte, _4: LP_c_ubyte) -> ctypes.c_bool:
    """
    Get the color used for drawing operations (Rect, Line and Clear).
    https://wiki.libsdl.org/SDL3/SDL_GetRenderDrawColor
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderDrawColor(_0, _1, _2, _3, _4)

def SDL_GetRenderDrawColorFloat(_0: LP_SDL_Renderer, _1: LP_c_float, _2: LP_c_float, _3: LP_c_float, _4: LP_c_float) -> ctypes.c_bool:
    """
    Get the color used for drawing operations (Rect, Line and Clear).
    https://wiki.libsdl.org/SDL3/SDL_GetRenderDrawColorFloat
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderDrawColorFloat(_0, _1, _2, _3, _4)

def SDL_SetRenderColorScale(_0: LP_SDL_Renderer, _1: ctypes.c_float) -> ctypes.c_bool:
    """
    Set the color scale used for render operations.
    https://wiki.libsdl.org/SDL3/SDL_SetRenderColorScale
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetRenderColorScale(_0, _1)

def SDL_GetRenderColorScale(_0: LP_SDL_Renderer, _1: LP_c_float) -> ctypes.c_bool:
    """
    Get the color scale used for render operations.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderColorScale
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderColorScale(_0, _1)

def SDL_SetRenderDrawBlendMode(_0: LP_SDL_Renderer, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Set the blend mode used for drawing operations (Fill and Line).
    https://wiki.libsdl.org/SDL3/SDL_SetRenderDrawBlendMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetRenderDrawBlendMode(_0, _1)

def SDL_GetRenderDrawBlendMode(_0: LP_SDL_Renderer, _1: LP_c_ulong) -> ctypes.c_bool:
    """
    Get the blend mode used for drawing operations.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderDrawBlendMode
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderDrawBlendMode(_0, _1)

def SDL_RenderClear(_0: LP_SDL_Renderer) -> ctypes.c_bool:
    """
    Clear the current rendering target with the drawing color.
    https://wiki.libsdl.org/SDL3/SDL_RenderClear
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderClear(_0)

def SDL_RenderPoint(_0: LP_SDL_Renderer, _1: ctypes.c_float, _2: ctypes.c_float) -> ctypes.c_bool:
    """
    Draw a point on the current rendering target at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderPoint
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderPoint(_0, _1, _2)

def SDL_RenderPoints(_0: LP_SDL_Renderer, _1: LP_SDL_FPoint, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Draw multiple points on the current rendering target at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderPoints
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderPoints(_0, _1, _2)

def SDL_RenderLine(_0: LP_SDL_Renderer, _1: ctypes.c_float, _2: ctypes.c_float, _3: ctypes.c_float, _4: ctypes.c_float) -> ctypes.c_bool:
    """
    Draw a line on the current rendering target at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderLine
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderLine(_0, _1, _2, _3, _4)

def SDL_RenderLines(_0: LP_SDL_Renderer, _1: LP_SDL_FPoint, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Draw a series of connected lines on the current rendering target at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderLines
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderLines(_0, _1, _2)

def SDL_RenderRect(_0: LP_SDL_Renderer, _1: LP_SDL_FRect) -> ctypes.c_bool:
    """
    Draw a rectangle on the current rendering target at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderRect(_0, _1)

def SDL_RenderRects(_0: LP_SDL_Renderer, _1: LP_SDL_FRect, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Draw some number of rectangles on the current rendering target at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderRects
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderRects(_0, _1, _2)

def SDL_RenderFillRect(_0: LP_SDL_Renderer, _1: LP_SDL_FRect) -> ctypes.c_bool:
    """
    Fill a rectangle on the current rendering target with the drawing color at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderFillRect
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderFillRect(_0, _1)

def SDL_RenderFillRects(_0: LP_SDL_Renderer, _1: LP_SDL_FRect, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Fill some number of rectangles on the current rendering target with the drawing color at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderFillRects
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderFillRects(_0, _1, _2)

def SDL_RenderTexture(_0: LP_SDL_Renderer, _1: LP_SDL_Texture, _2: LP_SDL_FRect, _3: LP_SDL_FRect) -> ctypes.c_bool:
    """
    Copy a portion of the texture to the current rendering target at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderTexture(_0, _1, _2, _3)

def SDL_RenderTextureRotated(_0: LP_SDL_Renderer, _1: LP_SDL_Texture, _2: LP_SDL_FRect, _3: LP_SDL_FRect, _4: ctypes.c_double, _5: LP_SDL_FPoint, _6: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Copy a portion of the source texture to the current rendering target, with rotation and flipping, at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderTextureRotated
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderTextureRotated(_0, _1, _2, _3, _4, _5, _6)

def SDL_RenderTextureAffine(_0: LP_SDL_Renderer, _1: LP_SDL_Texture, _2: LP_SDL_FRect, _3: LP_SDL_FPoint, _4: LP_SDL_FPoint, _5: LP_SDL_FPoint) -> ctypes.c_bool:
    """
    Copy a portion of the source texture to the current rendering target, with affine transform, at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderTextureAffine
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderTextureAffine(_0, _1, _2, _3, _4, _5)

def SDL_RenderTextureTiled(_0: LP_SDL_Renderer, _1: LP_SDL_Texture, _2: LP_SDL_FRect, _3: ctypes.c_float, _4: LP_SDL_FRect) -> ctypes.c_bool:
    """
    Tile a portion of the texture to the current rendering target at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderTextureTiled
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderTextureTiled(_0, _1, _2, _3, _4)

def SDL_RenderTexture9Grid(_0: LP_SDL_Renderer, _1: LP_SDL_Texture, _2: LP_SDL_FRect, _3: ctypes.c_float, _4: ctypes.c_float, _5: ctypes.c_float, _6: ctypes.c_float, _7: ctypes.c_float, _8: LP_SDL_FRect) -> ctypes.c_bool:
    """
    Perform a scaled copy using the 9-grid algorithm to the current rendering target at subpixel precision.
    https://wiki.libsdl.org/SDL3/SDL_RenderTexture9Grid
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderTexture9Grid(_0, _1, _2, _3, _4, _5, _6, _7, _8)

def SDL_RenderGeometry(_0: LP_SDL_Renderer, _1: LP_SDL_Texture, _2: LP_SDL_Vertex, _3: ctypes.c_long, _4: LP_c_long, _5: ctypes.c_long) -> ctypes.c_bool:
    """
    Render a list of triangles, optionally using a texture and indices into the vertex array Color and alpha modulation is done per vertex ([SDL_SetTextureColorMod](https://wiki.libsdl.org/SDL3/SDL_SetTextureColorMod) and [SDL_SetTextureAlphaMod](https://wiki.libsdl.org/SDL3/SDL_SetTextureAlphaMod) are ignored).
    https://wiki.libsdl.org/SDL3/SDL_RenderGeometry
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderGeometry(_0, _1, _2, _3, _4, _5)

def SDL_RenderGeometryRaw(_0: LP_SDL_Renderer, _1: LP_SDL_Texture, _2: LP_c_float, _3: ctypes.c_long, _4: LP_SDL_FColor, _5: ctypes.c_long, _6: LP_c_float, _7: ctypes.c_long, _8: ctypes.c_long, _9: ctypes.c_void_p, _10: ctypes.c_long, _11: ctypes.c_long) -> ctypes.c_bool:
    """
    Render a list of triangles, optionally using a texture and indices into the vertex arrays Color and alpha modulation is done per vertex ([SDL_SetTextureColorMod](https://wiki.libsdl.org/SDL3/SDL_SetTextureColorMod) and [SDL_SetTextureAlphaMod](https://wiki.libsdl.org/SDL3/SDL_SetTextureAlphaMod) are ignored).
    https://wiki.libsdl.org/SDL3/SDL_RenderGeometryRaw
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderGeometryRaw(_0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11)

def SDL_RenderReadPixels(_0: LP_SDL_Renderer, _1: LP_SDL_Rect) -> LP_SDL_Surface:
    """
    Read pixels from the current rendering target.
    https://wiki.libsdl.org/SDL3/SDL_RenderReadPixels
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderReadPixels(_0, _1)

def SDL_RenderPresent(_0: LP_SDL_Renderer) -> ctypes.c_bool:
    """
    Update the screen with any rendering performed since the previous call.
    https://wiki.libsdl.org/SDL3/SDL_RenderPresent
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderPresent(_0)

def SDL_DestroyTexture(_0: LP_SDL_Texture) -> None:
    """
    Destroy the specified texture.
    https://wiki.libsdl.org/SDL3/SDL_DestroyTexture
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyTexture(_0)

def SDL_DestroyRenderer(_0: LP_SDL_Renderer) -> None:
    """
    Destroy the rendering context for a window and free all associated textures.
    https://wiki.libsdl.org/SDL3/SDL_DestroyRenderer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyRenderer(_0)

def SDL_FlushRenderer(_0: LP_SDL_Renderer) -> ctypes.c_bool:
    """
    Force the rendering context to flush any pending commands and state.
    https://wiki.libsdl.org/SDL3/SDL_FlushRenderer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_FlushRenderer(_0)

def SDL_GetRenderMetalLayer(_0: LP_SDL_Renderer) -> ctypes.c_void_p:
    """
    Get the CAMetalLayer associated with the given Metal renderer.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderMetalLayer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderMetalLayer(_0)

def SDL_GetRenderMetalCommandEncoder(_0: LP_SDL_Renderer) -> ctypes.c_void_p:
    """
    Get the Metal command encoder for the current frame.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderMetalCommandEncoder
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderMetalCommandEncoder(_0)

def SDL_AddVulkanRenderSemaphores(_0: LP_SDL_Renderer, _1: ctypes.c_ulong, _2: ctypes.c_longlong, _3: ctypes.c_longlong) -> ctypes.c_bool:
    """
    Add a set of synchronization semaphores for the current frame.
    https://wiki.libsdl.org/SDL3/SDL_AddVulkanRenderSemaphores
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AddVulkanRenderSemaphores(_0, _1, _2, _3)

def SDL_SetRenderVSync(_0: LP_SDL_Renderer, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Toggle VSync of the given renderer.
    https://wiki.libsdl.org/SDL3/SDL_SetRenderVSync
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetRenderVSync(_0, _1)

def SDL_GetRenderVSync(_0: LP_SDL_Renderer, _1: LP_c_long) -> ctypes.c_bool:
    """
    Get VSync of the given renderer.
    https://wiki.libsdl.org/SDL3/SDL_GetRenderVSync
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRenderVSync(_0, _1)

def SDL_RenderDebugText(_0: LP_SDL_Renderer, _1: ctypes.c_float, _2: ctypes.c_float, _3: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Draw debug text to an [SDL_Renderer](https://wiki.libsdl.org/SDL3/SDL_Renderer).
    https://wiki.libsdl.org/SDL3/SDL_RenderDebugText
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenderDebugText(_0, _1, _2, _3)

def SDL_GetVersion() -> ctypes.c_long:
    """
    Get the version of SDL that is linked against your program.
    https://wiki.libsdl.org/SDL3/SDL_GetVersion
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetVersion()

def SDL_GetRevision() -> ctypes.c_char_p:
    """
    Get the code revision of SDL that is linked against your program.
    https://wiki.libsdl.org/SDL3/SDL_GetRevision
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetRevision()

def SDL_Init(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Initialize the SDL library.
    https://wiki.libsdl.org/SDL3/SDL_Init
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Init(_0)

def SDL_InitSubSystem(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Compatibility function to initialize the SDL library.
    https://wiki.libsdl.org/SDL3/SDL_InitSubSystem
    """
    return SDL_GET_DLL(SDL_DLL).SDL_InitSubSystem(_0)

def SDL_QuitSubSystem(_0: ctypes.c_ulong) -> None:
    """
    Shut down specific SDL subsystems.
    https://wiki.libsdl.org/SDL3/SDL_QuitSubSystem
    """
    return SDL_GET_DLL(SDL_DLL).SDL_QuitSubSystem(_0)

def SDL_WasInit(_0: ctypes.c_ulong) -> ctypes.c_ulong:
    """
    Get a mask of the specified subsystems which are currently initialized.
    https://wiki.libsdl.org/SDL3/SDL_WasInit
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WasInit(_0)

def SDL_Quit() -> None:
    """
    Clean up all initialized subsystems.
    https://wiki.libsdl.org/SDL3/SDL_Quit
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Quit()

def SDL_IsMainThread() -> ctypes.c_bool:
    """
    Return whether this is the main thread.
    https://wiki.libsdl.org/SDL3/SDL_IsMainThread
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IsMainThread()

def SDL_RunOnMainThread(_0: ctypes._Pointer, _1: ctypes.c_void_p, _2: ctypes.c_bool) -> ctypes.c_bool:
    """
    Call a function on the main thread during event processing.
    https://wiki.libsdl.org/SDL3/SDL_RunOnMainThread
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RunOnMainThread(_0, _1, _2)

def SDL_SetAppMetadata(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Specify basic metadata about your app.
    https://wiki.libsdl.org/SDL3/SDL_SetAppMetadata
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAppMetadata(_0, _1, _2)

def SDL_SetAppMetadataProperty(_0: ctypes.c_char_p, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Specify metadata about your app through a set of properties.
    https://wiki.libsdl.org/SDL3/SDL_SetAppMetadataProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetAppMetadataProperty(_0, _1)

def SDL_GetAppMetadataProperty(_0: ctypes.c_char_p) -> ctypes.c_char_p:
    """
    Get metadata about your app.
    https://wiki.libsdl.org/SDL3/SDL_GetAppMetadataProperty
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetAppMetadataProperty(_0)

def SDL_LoadObject(_0: ctypes.c_char_p) -> LP_SDL_SharedObject:
    """
    Dynamically load a shared object.
    https://wiki.libsdl.org/SDL3/SDL_LoadObject
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LoadObject(_0)

def SDL_LoadFunction(_0: LP_SDL_SharedObject, _1: ctypes.c_char_p) -> ctypes._Pointer:
    """
    Look up the address of the named function in a shared object.
    https://wiki.libsdl.org/SDL3/SDL_LoadFunction
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LoadFunction(_0, _1)

def SDL_UnloadObject(_0: LP_SDL_SharedObject) -> None:
    """
    Unload a shared object from memory.
    https://wiki.libsdl.org/SDL3/SDL_UnloadObject
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnloadObject(_0)

def SDL_GetPreferredLocales(_0: LP_c_long) -> LP_LP_SDL_Locale:
    """
    Report the user's preferred locale.
    https://wiki.libsdl.org/SDL3/SDL_GetPreferredLocales
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPreferredLocales(_0)

def SDL_SetLogPriorities(_0: ctypes.c_long) -> None:
    """
    Set the priority of all log categories.
    https://wiki.libsdl.org/SDL3/SDL_SetLogPriorities
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetLogPriorities(_0)

def SDL_SetLogPriority(_0: ctypes.c_long, _1: ctypes.c_long) -> None:
    """
    Set the priority of a particular log category.
    https://wiki.libsdl.org/SDL3/SDL_SetLogPriority
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetLogPriority(_0, _1)

def SDL_GetLogPriority(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Get the priority of a particular log category.
    https://wiki.libsdl.org/SDL3/SDL_GetLogPriority
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetLogPriority(_0)

def SDL_ResetLogPriorities() -> None:
    """
    Reset all priorities to default.
    https://wiki.libsdl.org/SDL3/SDL_ResetLogPriorities
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ResetLogPriorities()

def SDL_SetLogPriorityPrefix(_0: ctypes.c_long, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Set the text prepended to log messages of a given priority.
    https://wiki.libsdl.org/SDL3/SDL_SetLogPriorityPrefix
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetLogPriorityPrefix(_0, _1)

def SDL_Log(_0: ctypes.c_char_p) -> None:
    """
    Log a message with [SDL_LOG_CATEGORY_APPLICATION](https://wiki.libsdl.org/SDL3/SDL_LOG_CATEGORY_APPLICATION) and [SDL_LOG_PRIORITY_INFO](https://wiki.libsdl.org/SDL3/SDL_LOG_PRIORITY_INFO).
    https://wiki.libsdl.org/SDL3/SDL_Log
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Log(_0)

def SDL_LogTrace(_0: ctypes.c_long, _1: ctypes.c_char_p) -> None:
    """
    Log a message with [SDL_LOG_PRIORITY_TRACE](https://wiki.libsdl.org/SDL3/SDL_LOG_PRIORITY_TRACE).
    https://wiki.libsdl.org/SDL3/SDL_LogTrace
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LogTrace(_0, _1)

def SDL_LogVerbose(_0: ctypes.c_long, _1: ctypes.c_char_p) -> None:
    """
    Log a message with [SDL_LOG_PRIORITY_VERBOSE](https://wiki.libsdl.org/SDL3/SDL_LOG_PRIORITY_VERBOSE).
    https://wiki.libsdl.org/SDL3/SDL_LogVerbose
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LogVerbose(_0, _1)

def SDL_LogDebug(_0: ctypes.c_long, _1: ctypes.c_char_p) -> None:
    """
    Log a message with [SDL_LOG_PRIORITY_DEBUG](https://wiki.libsdl.org/SDL3/SDL_LOG_PRIORITY_DEBUG).
    https://wiki.libsdl.org/SDL3/SDL_LogDebug
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LogDebug(_0, _1)

def SDL_LogInfo(_0: ctypes.c_long, _1: ctypes.c_char_p) -> None:
    """
    Log a message with [SDL_LOG_PRIORITY_INFO](https://wiki.libsdl.org/SDL3/SDL_LOG_PRIORITY_INFO).
    https://wiki.libsdl.org/SDL3/SDL_LogInfo
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LogInfo(_0, _1)

def SDL_LogWarn(_0: ctypes.c_long, _1: ctypes.c_char_p) -> None:
    """
    Log a message with [SDL_LOG_PRIORITY_WARN](https://wiki.libsdl.org/SDL3/SDL_LOG_PRIORITY_WARN).
    https://wiki.libsdl.org/SDL3/SDL_LogWarn
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LogWarn(_0, _1)

def SDL_LogError(_0: ctypes.c_long, _1: ctypes.c_char_p) -> None:
    """
    Log a message with [SDL_LOG_PRIORITY_ERROR](https://wiki.libsdl.org/SDL3/SDL_LOG_PRIORITY_ERROR).
    https://wiki.libsdl.org/SDL3/SDL_LogError
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LogError(_0, _1)

def SDL_LogCritical(_0: ctypes.c_long, _1: ctypes.c_char_p) -> None:
    """
    Log a message with [SDL_LOG_PRIORITY_CRITICAL](https://wiki.libsdl.org/SDL3/SDL_LOG_PRIORITY_CRITICAL).
    https://wiki.libsdl.org/SDL3/SDL_LogCritical
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LogCritical(_0, _1)

def SDL_LogMessage(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_char_p) -> None:
    """
    Log a message with the specified category and priority.
    https://wiki.libsdl.org/SDL3/SDL_LogMessage
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LogMessage(_0, _1, _2)

def SDL_LogMessageV(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_char_p, _3: ctypes.c_char_p) -> None:
    """
    Log a message with the specified category and priority.
    https://wiki.libsdl.org/SDL3/SDL_LogMessageV
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LogMessageV(_0, _1, _2, _3)

def SDL_GetDefaultLogOutputFunction() -> ctypes._Pointer:
    """
    Get the default log output function.
    https://wiki.libsdl.org/SDL3/SDL_GetDefaultLogOutputFunction
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDefaultLogOutputFunction()

def SDL_GetLogOutputFunction(_0: ctypes._Pointer, _1: LP_c_void_p) -> None:
    """
    Get the current log output function.
    https://wiki.libsdl.org/SDL3/SDL_GetLogOutputFunction
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetLogOutputFunction(_0, _1)

def SDL_SetLogOutputFunction(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> None:
    """
    Replace the default log output function with one of your own.
    https://wiki.libsdl.org/SDL3/SDL_SetLogOutputFunction
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetLogOutputFunction(_0, _1)

def SDL_SetMainReady() -> None:
    """
    Circumvent failure of [SDL_Init](https://wiki.libsdl.org/SDL3/SDL_Init)() when not using [SDL_main](https://wiki.libsdl.org/SDL3/SDL_main)() as an entry point.
    https://wiki.libsdl.org/SDL3/SDL_SetMainReady
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetMainReady()

def SDL_RunApp(_0: ctypes.c_long, _1: LP_c_char_p, _2: ctypes._Pointer, _3: ctypes.c_void_p) -> ctypes.c_long:
    """
    Initializes and launches an SDL application, by doing platform-specific initialization before calling your mainFunction and cleanups after it returns, if that is needed for a specific platform, otherwise it just calls mainFunction.
    https://wiki.libsdl.org/SDL3/SDL_RunApp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RunApp(_0, _1, _2, _3)

def SDL_EnterAppMainCallbacks(_0: ctypes.c_long, _1: LP_c_char_p, _2: ctypes._Pointer, _3: ctypes._Pointer, _4: ctypes._Pointer, _5: ctypes._Pointer) -> ctypes.c_long:
    """
    An entry point for SDL's use in [SDL_MAIN_USE_CALLBACKS](https://wiki.libsdl.org/SDL3/SDL_MAIN_USE_CALLBACKS).
    https://wiki.libsdl.org/SDL3/SDL_EnterAppMainCallbacks
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EnterAppMainCallbacks(_0, _1, _2, _3, _4, _5)

def SDL_RegisterApp(_0: ctypes.c_char_p, _1: ctypes.c_ulong, _2: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Register a win32 window class for SDL's use.
    https://wiki.libsdl.org/SDL3/SDL_RegisterApp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RegisterApp(_0, _1, _2)

def SDL_UnregisterApp() -> None:
    """
    Deregister the win32 window class from an [SDL_RegisterApp](https://wiki.libsdl.org/SDL3/SDL_RegisterApp) call.
    https://wiki.libsdl.org/SDL3/SDL_UnregisterApp
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnregisterApp()

def SDL_ShowMessageBox(_0: LP_SDL_MessageBoxData, _1: LP_c_long) -> ctypes.c_bool:
    """
    Create a modal message box.
    https://wiki.libsdl.org/SDL3/SDL_ShowMessageBox
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShowMessageBox(_0, _1)

def SDL_ShowSimpleMessageBox(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_char_p, _3: LP_SDL_Window) -> ctypes.c_bool:
    """
    Display a simple modal message box.
    https://wiki.libsdl.org/SDL3/SDL_ShowSimpleMessageBox
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShowSimpleMessageBox(_0, _1, _2, _3)

def SDL_Metal_CreateView(_0: LP_SDL_Window) -> ctypes.c_void_p:
    """
    Create a CAMetalLayer-backed NSView/UIView and attach it to the specified window.
    https://wiki.libsdl.org/SDL3/SDL_Metal_CreateView
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Metal_CreateView(_0)

def SDL_Metal_DestroyView(_0: ctypes.c_void_p) -> None:
    """
    Destroy an existing [SDL_MetalView](https://wiki.libsdl.org/SDL3/SDL_MetalView) object.
    https://wiki.libsdl.org/SDL3/SDL_Metal_DestroyView
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Metal_DestroyView(_0)

def SDL_Metal_GetLayer(_0: ctypes.c_void_p) -> ctypes.c_void_p:
    """
    Get a pointer to the backing CAMetalLayer for the given view.
    https://wiki.libsdl.org/SDL3/SDL_Metal_GetLayer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Metal_GetLayer(_0)

def SDL_OpenURL(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Open a URL/URI in the browser or other appropriate external application.
    https://wiki.libsdl.org/SDL3/SDL_OpenURL
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenURL(_0)

def SDL_CreateThreadRuntime(_0: ctypes._Pointer, _1: ctypes.c_char_p, _2: ctypes.c_void_p, _3: ctypes._Pointer, _4: ctypes._Pointer) -> LP_SDL_Thread:
    """
    https://wiki.libsdl.org/SDL3/SDL_CreateThreadRuntime
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateThreadRuntime(_0, _1, _2, _3, _4)

def SDL_CreateThreadWithPropertiesRuntime(_0: ctypes.c_ulong, _1: ctypes._Pointer, _2: ctypes._Pointer) -> LP_SDL_Thread:
    """
    https://wiki.libsdl.org/SDL3/SDL_CreateThreadWithPropertiesRuntime
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateThreadWithPropertiesRuntime(_0, _1, _2)

def SDL_GetThreadName(_0: LP_SDL_Thread) -> ctypes.c_char_p:
    """
    Get the thread name as it was specified in [SDL_CreateThread](https://wiki.libsdl.org/SDL3/SDL_CreateThread)().
    https://wiki.libsdl.org/SDL3/SDL_GetThreadName
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetThreadName(_0)

def SDL_GetCurrentThreadID() -> ctypes.c_ulonglong:
    """
    Get the thread identifier for the current thread.
    https://wiki.libsdl.org/SDL3/SDL_GetCurrentThreadID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCurrentThreadID()

def SDL_GetThreadID(_0: LP_SDL_Thread) -> ctypes.c_ulonglong:
    """
    Get the thread identifier for the specified thread.
    https://wiki.libsdl.org/SDL3/SDL_GetThreadID
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetThreadID(_0)

def SDL_SetCurrentThreadPriority(_0: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the priority for the current thread.
    https://wiki.libsdl.org/SDL3/SDL_SetCurrentThreadPriority
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetCurrentThreadPriority(_0)

def SDL_WaitThread(_0: LP_SDL_Thread, _1: LP_c_long) -> None:
    """
    Wait for a thread to finish.
    https://wiki.libsdl.org/SDL3/SDL_WaitThread
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitThread(_0, _1)

def SDL_DetachThread(_0: LP_SDL_Thread) -> None:
    """
    Let a thread clean up on exit without intervention.
    https://wiki.libsdl.org/SDL3/SDL_DetachThread
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DetachThread(_0)

def SDL_GetTLS(_0: LP_SDL_AtomicInt) -> ctypes.c_void_p:
    """
    Get the current thread's value associated with a thread local storage ID.
    https://wiki.libsdl.org/SDL3/SDL_GetTLS
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTLS(_0)

def SDL_SetTLS(_0: LP_SDL_AtomicInt, _1: ctypes.c_void_p, _2: ctypes._Pointer) -> ctypes.c_bool:
    """
    Set the current thread's value associated with a thread local storage ID.
    https://wiki.libsdl.org/SDL3/SDL_SetTLS
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetTLS(_0, _1, _2)

def SDL_CleanupTLS() -> None:
    """
    Cleanup all TLS data for this thread.
    https://wiki.libsdl.org/SDL3/SDL_CleanupTLS
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CleanupTLS()

def SDL_CreateMutex() -> LP_SDL_Mutex:
    """
    Create a new mutex.
    https://wiki.libsdl.org/SDL3/SDL_CreateMutex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateMutex()

def SDL_LockMutex(_0: LP_SDL_Mutex) -> None:
    """
    Lock the mutex.
    https://wiki.libsdl.org/SDL3/SDL_LockMutex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LockMutex(_0)

def SDL_TryLockMutex(_0: LP_SDL_Mutex) -> ctypes.c_bool:
    """
    Try to lock a mutex without blocking.
    https://wiki.libsdl.org/SDL3/SDL_TryLockMutex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_TryLockMutex(_0)

def SDL_UnlockMutex(_0: LP_SDL_Mutex) -> None:
    """
    Unlock the mutex.
    https://wiki.libsdl.org/SDL3/SDL_UnlockMutex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnlockMutex(_0)

def SDL_DestroyMutex(_0: LP_SDL_Mutex) -> None:
    """
    Destroy a mutex created with [SDL_CreateMutex](https://wiki.libsdl.org/SDL3/SDL_CreateMutex)().
    https://wiki.libsdl.org/SDL3/SDL_DestroyMutex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyMutex(_0)

def SDL_CreateRWLock() -> LP_SDL_RWLock:
    """
    Create a new read/write lock.
    https://wiki.libsdl.org/SDL3/SDL_CreateRWLock
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateRWLock()

def SDL_LockRWLockForReading(_0: LP_SDL_RWLock) -> None:
    """
    Lock the read/write lock for read only operations.
    https://wiki.libsdl.org/SDL3/SDL_LockRWLockForReading
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LockRWLockForReading(_0)

def SDL_LockRWLockForWriting(_0: LP_SDL_RWLock) -> None:
    """
    Lock the read/write lock for write operations.
    https://wiki.libsdl.org/SDL3/SDL_LockRWLockForWriting
    """
    return SDL_GET_DLL(SDL_DLL).SDL_LockRWLockForWriting(_0)

def SDL_TryLockRWLockForReading(_0: LP_SDL_RWLock) -> ctypes.c_bool:
    """
    Try to lock a read/write lock for reading without blocking.
    https://wiki.libsdl.org/SDL3/SDL_TryLockRWLockForReading
    """
    return SDL_GET_DLL(SDL_DLL).SDL_TryLockRWLockForReading(_0)

def SDL_TryLockRWLockForWriting(_0: LP_SDL_RWLock) -> ctypes.c_bool:
    """
    Try to lock a read/write lock for writing without blocking.
    https://wiki.libsdl.org/SDL3/SDL_TryLockRWLockForWriting
    """
    return SDL_GET_DLL(SDL_DLL).SDL_TryLockRWLockForWriting(_0)

def SDL_UnlockRWLock(_0: LP_SDL_RWLock) -> None:
    """
    Unlock the read/write lock.
    https://wiki.libsdl.org/SDL3/SDL_UnlockRWLock
    """
    return SDL_GET_DLL(SDL_DLL).SDL_UnlockRWLock(_0)

def SDL_DestroyRWLock(_0: LP_SDL_RWLock) -> None:
    """
    Destroy a read/write lock created with [SDL_CreateRWLock](https://wiki.libsdl.org/SDL3/SDL_CreateRWLock)().
    https://wiki.libsdl.org/SDL3/SDL_DestroyRWLock
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyRWLock(_0)

def SDL_CreateSemaphore(_0: ctypes.c_ulong) -> LP_SDL_Semaphore:
    """
    Create a semaphore.
    https://wiki.libsdl.org/SDL3/SDL_CreateSemaphore
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateSemaphore(_0)

def SDL_DestroySemaphore(_0: LP_SDL_Semaphore) -> None:
    """
    Destroy a semaphore.
    https://wiki.libsdl.org/SDL3/SDL_DestroySemaphore
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroySemaphore(_0)

def SDL_WaitSemaphore(_0: LP_SDL_Semaphore) -> None:
    """
    Wait until a semaphore has a positive value and then decrements it.
    https://wiki.libsdl.org/SDL3/SDL_WaitSemaphore
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitSemaphore(_0)

def SDL_TryWaitSemaphore(_0: LP_SDL_Semaphore) -> ctypes.c_bool:
    """
    See if a semaphore has a positive value and decrement it if it does.
    https://wiki.libsdl.org/SDL3/SDL_TryWaitSemaphore
    """
    return SDL_GET_DLL(SDL_DLL).SDL_TryWaitSemaphore(_0)

def SDL_WaitSemaphoreTimeout(_0: LP_SDL_Semaphore, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Wait until a semaphore has a positive value and then decrements it.
    https://wiki.libsdl.org/SDL3/SDL_WaitSemaphoreTimeout
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitSemaphoreTimeout(_0, _1)

def SDL_SignalSemaphore(_0: LP_SDL_Semaphore) -> None:
    """
    Atomically increment a semaphore's value and wake waiting threads.
    https://wiki.libsdl.org/SDL3/SDL_SignalSemaphore
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SignalSemaphore(_0)

def SDL_GetSemaphoreValue(_0: LP_SDL_Semaphore) -> ctypes.c_ulong:
    """
    Get the current value of a semaphore.
    https://wiki.libsdl.org/SDL3/SDL_GetSemaphoreValue
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSemaphoreValue(_0)

def SDL_CreateCondition() -> LP_SDL_Condition:
    """
    Create a condition variable.
    https://wiki.libsdl.org/SDL3/SDL_CreateCondition
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateCondition()

def SDL_DestroyCondition(_0: LP_SDL_Condition) -> None:
    """
    Destroy a condition variable.
    https://wiki.libsdl.org/SDL3/SDL_DestroyCondition
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyCondition(_0)

def SDL_SignalCondition(_0: LP_SDL_Condition) -> None:
    """
    Restart one of the threads that are waiting on the condition variable.
    https://wiki.libsdl.org/SDL3/SDL_SignalCondition
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SignalCondition(_0)

def SDL_BroadcastCondition(_0: LP_SDL_Condition) -> None:
    """
    Restart all threads that are waiting on the condition variable.
    https://wiki.libsdl.org/SDL3/SDL_BroadcastCondition
    """
    return SDL_GET_DLL(SDL_DLL).SDL_BroadcastCondition(_0)

def SDL_WaitCondition(_0: LP_SDL_Condition, _1: LP_SDL_Mutex) -> None:
    """
    Wait until a condition variable is signaled.
    https://wiki.libsdl.org/SDL3/SDL_WaitCondition
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitCondition(_0, _1)

def SDL_WaitConditionTimeout(_0: LP_SDL_Condition, _1: LP_SDL_Mutex, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Wait until a condition variable is signaled or a certain time has passed.
    https://wiki.libsdl.org/SDL3/SDL_WaitConditionTimeout
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitConditionTimeout(_0, _1, _2)

def SDL_ShouldInit(_0: LP_SDL_InitState) -> ctypes.c_bool:
    """
    Return whether initialization should be done.
    https://wiki.libsdl.org/SDL3/SDL_ShouldInit
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShouldInit(_0)

def SDL_ShouldQuit(_0: LP_SDL_InitState) -> ctypes.c_bool:
    """
    Return whether cleanup should be done.
    https://wiki.libsdl.org/SDL3/SDL_ShouldQuit
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ShouldQuit(_0)

def SDL_SetInitialized(_0: LP_SDL_InitState, _1: ctypes.c_bool) -> None:
    """
    Finish an initialization state transition.
    https://wiki.libsdl.org/SDL3/SDL_SetInitialized
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetInitialized(_0, _1)

def SDL_GetPlatform() -> ctypes.c_char_p:
    """
    Get the name of the platform.
    https://wiki.libsdl.org/SDL3/SDL_GetPlatform
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPlatform()

def SDL_CreateProcess(_0: LP_c_char_p, _1: ctypes.c_bool) -> LP_SDL_Process:
    """
    Create a new process.
    https://wiki.libsdl.org/SDL3/SDL_CreateProcess
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateProcess(_0, _1)

def SDL_CreateProcessWithProperties(_0: ctypes.c_ulong) -> LP_SDL_Process:
    """
    Create a new process with the specified properties.
    https://wiki.libsdl.org/SDL3/SDL_CreateProcessWithProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateProcessWithProperties(_0)

def SDL_GetProcessProperties(_0: LP_SDL_Process) -> ctypes.c_ulong:
    """
    Get the properties associated with a process.
    https://wiki.libsdl.org/SDL3/SDL_GetProcessProperties
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetProcessProperties(_0)

def SDL_ReadProcess(_0: LP_SDL_Process, _1: LP_c_ulonglong, _2: LP_c_long) -> ctypes.c_void_p:
    """
    Read all the output from a process.
    https://wiki.libsdl.org/SDL3/SDL_ReadProcess
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadProcess(_0, _1, _2)

def SDL_GetProcessInput(_0: LP_SDL_Process) -> LP_SDL_IOStream:
    """
    Get the [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) associated with process standard input.
    https://wiki.libsdl.org/SDL3/SDL_GetProcessInput
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetProcessInput(_0)

def SDL_GetProcessOutput(_0: LP_SDL_Process) -> LP_SDL_IOStream:
    """
    Get the [SDL_IOStream](https://wiki.libsdl.org/SDL3/SDL_IOStream) associated with process standard output.
    https://wiki.libsdl.org/SDL3/SDL_GetProcessOutput
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetProcessOutput(_0)

def SDL_KillProcess(_0: LP_SDL_Process, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Stop a process.
    https://wiki.libsdl.org/SDL3/SDL_KillProcess
    """
    return SDL_GET_DLL(SDL_DLL).SDL_KillProcess(_0, _1)

def SDL_WaitProcess(_0: LP_SDL_Process, _1: ctypes.c_bool, _2: LP_c_long) -> ctypes.c_bool:
    """
    Wait for a process to finish.
    https://wiki.libsdl.org/SDL3/SDL_WaitProcess
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WaitProcess(_0, _1, _2)

def SDL_DestroyProcess(_0: LP_SDL_Process) -> None:
    """
    Destroy a previously created process object.
    https://wiki.libsdl.org/SDL3/SDL_DestroyProcess
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DestroyProcess(_0)

def SDL_OpenTitleStorage(_0: ctypes.c_char_p, _1: ctypes.c_ulong) -> LP_SDL_Storage:
    """
    Opens up a read-only container for the application's filesystem.
    https://wiki.libsdl.org/SDL3/SDL_OpenTitleStorage
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenTitleStorage(_0, _1)

def SDL_OpenUserStorage(_0: ctypes.c_char_p, _1: ctypes.c_char_p, _2: ctypes.c_ulong) -> LP_SDL_Storage:
    """
    Opens up a container for a user's unique read/write filesystem.
    https://wiki.libsdl.org/SDL3/SDL_OpenUserStorage
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenUserStorage(_0, _1, _2)

def SDL_OpenFileStorage(_0: ctypes.c_char_p, _1: ctypes.c_ulong) -> LP_SDL_Storage:
    """
    Opens up a container for local filesystem storage.
    https://wiki.libsdl.org/SDL3/SDL_OpenFileStorage
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenFileStorage(_0, _1)

def SDL_OpenStorage(_0: LP_SDL_StorageInterface, _1: ctypes.c_void_p) -> LP_SDL_Storage:
    """
    Opens up a container using a client-provided storage interface.
    https://wiki.libsdl.org/SDL3/SDL_OpenStorage
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OpenStorage(_0, _1)

def SDL_CloseStorage(_0: LP_SDL_Storage) -> ctypes.c_bool:
    """
    Closes and frees a storage container.
    https://wiki.libsdl.org/SDL3/SDL_CloseStorage
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CloseStorage(_0)

def SDL_StorageReady(_0: LP_SDL_Storage) -> ctypes.c_bool:
    """
    Checks if the storage container is ready to use.
    https://wiki.libsdl.org/SDL3/SDL_StorageReady
    """
    return SDL_GET_DLL(SDL_DLL).SDL_StorageReady(_0)

def SDL_GetStorageFileSize(_0: LP_SDL_Storage, _1: ctypes.c_char_p, _2: LP_c_ulonglong) -> ctypes.c_bool:
    """
    Query the size of a file within a storage container.
    https://wiki.libsdl.org/SDL3/SDL_GetStorageFileSize
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetStorageFileSize(_0, _1, _2)

def SDL_ReadStorageFile(_0: LP_SDL_Storage, _1: ctypes.c_char_p, _2: ctypes.c_void_p, _3: ctypes.c_ulonglong) -> ctypes.c_bool:
    """
    Synchronously read a file from a storage container into a client-provided buffer.
    https://wiki.libsdl.org/SDL3/SDL_ReadStorageFile
    """
    return SDL_GET_DLL(SDL_DLL).SDL_ReadStorageFile(_0, _1, _2, _3)

def SDL_WriteStorageFile(_0: LP_SDL_Storage, _1: ctypes.c_char_p, _2: ctypes.c_void_p, _3: ctypes.c_ulonglong) -> ctypes.c_bool:
    """
    Synchronously write a file from client memory into a storage container.
    https://wiki.libsdl.org/SDL3/SDL_WriteStorageFile
    """
    return SDL_GET_DLL(SDL_DLL).SDL_WriteStorageFile(_0, _1, _2, _3)

def SDL_CreateStorageDirectory(_0: LP_SDL_Storage, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Create a directory in a writable storage container.
    https://wiki.libsdl.org/SDL3/SDL_CreateStorageDirectory
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CreateStorageDirectory(_0, _1)

def SDL_EnumerateStorageDirectory(_0: LP_SDL_Storage, _1: ctypes.c_char_p, _2: ctypes._Pointer, _3: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Enumerate a directory in a storage container through a callback function.
    https://wiki.libsdl.org/SDL3/SDL_EnumerateStorageDirectory
    """
    return SDL_GET_DLL(SDL_DLL).SDL_EnumerateStorageDirectory(_0, _1, _2, _3)

def SDL_RemoveStoragePath(_0: LP_SDL_Storage, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Remove a file or an empty directory in a writable storage container.
    https://wiki.libsdl.org/SDL3/SDL_RemoveStoragePath
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RemoveStoragePath(_0, _1)

def SDL_RenameStoragePath(_0: LP_SDL_Storage, _1: ctypes.c_char_p, _2: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Rename a file or directory in a writable storage container.
    https://wiki.libsdl.org/SDL3/SDL_RenameStoragePath
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RenameStoragePath(_0, _1, _2)

def SDL_CopyStorageFile(_0: LP_SDL_Storage, _1: ctypes.c_char_p, _2: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Copy a file in a writable storage container.
    https://wiki.libsdl.org/SDL3/SDL_CopyStorageFile
    """
    return SDL_GET_DLL(SDL_DLL).SDL_CopyStorageFile(_0, _1, _2)

def SDL_GetStoragePathInfo(_0: LP_SDL_Storage, _1: ctypes.c_char_p, _2: LP_SDL_PathInfo) -> ctypes.c_bool:
    """
    Get information about a filesystem path in a storage container.
    https://wiki.libsdl.org/SDL3/SDL_GetStoragePathInfo
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetStoragePathInfo(_0, _1, _2)

def SDL_GetStorageSpaceRemaining(_0: LP_SDL_Storage) -> ctypes.c_ulonglong:
    """
    Queries the remaining space in a storage container.
    https://wiki.libsdl.org/SDL3/SDL_GetStorageSpaceRemaining
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetStorageSpaceRemaining(_0)

def SDL_GlobStorageDirectory(_0: LP_SDL_Storage, _1: ctypes.c_char_p, _2: ctypes.c_char_p, _3: ctypes.c_ulong, _4: LP_c_long) -> LP_c_char_p:
    """
    Enumerate a directory tree, filtered by pattern, and return a list.
    https://wiki.libsdl.org/SDL3/SDL_GlobStorageDirectory
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GlobStorageDirectory(_0, _1, _2, _3, _4)

def SDL_SetWindowsMessageHook(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> None:
    """
    Set a callback for every Windows message, run before TranslateMessage().
    https://wiki.libsdl.org/SDL3/SDL_SetWindowsMessageHook
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetWindowsMessageHook(_0, _1)

def SDL_GetDirect3D9AdapterIndex(_0: ctypes.c_ulong) -> ctypes.c_long:
    """
    Get the D3D9 adapter index that matches the specified display.
    https://wiki.libsdl.org/SDL3/SDL_GetDirect3D9AdapterIndex
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDirect3D9AdapterIndex(_0)

def SDL_GetDXGIOutputInfo(_0: ctypes.c_ulong, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the DXGI Adapter and Output indices for the specified display.
    https://wiki.libsdl.org/SDL3/SDL_GetDXGIOutputInfo
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDXGIOutputInfo(_0, _1, _2)

def SDL_SetX11EventHook(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> None:
    """
    Set a callback for every X11 event.
    https://wiki.libsdl.org/SDL3/SDL_SetX11EventHook
    """
    return SDL_GET_DLL(SDL_DLL).SDL_SetX11EventHook(_0, _1)

def SDL_IsTablet() -> ctypes.c_bool:
    """
    Query if the current device is a tablet.
    https://wiki.libsdl.org/SDL3/SDL_IsTablet
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IsTablet()

def SDL_IsTV() -> ctypes.c_bool:
    """
    Query if the current device is a TV.
    https://wiki.libsdl.org/SDL3/SDL_IsTV
    """
    return SDL_GET_DLL(SDL_DLL).SDL_IsTV()

def SDL_GetSandbox() -> ctypes.c_long:
    """
    Get the application sandbox environment, if any.
    https://wiki.libsdl.org/SDL3/SDL_GetSandbox
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetSandbox()

def SDL_OnApplicationWillTerminate() -> None:
    """
    Let iOS apps with external event handling report onApplicationWillTerminate.
    https://wiki.libsdl.org/SDL3/SDL_OnApplicationWillTerminate
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OnApplicationWillTerminate()

def SDL_OnApplicationDidReceiveMemoryWarning() -> None:
    """
    Let iOS apps with external event handling report onApplicationDidReceiveMemoryWarning.
    https://wiki.libsdl.org/SDL3/SDL_OnApplicationDidReceiveMemoryWarning
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OnApplicationDidReceiveMemoryWarning()

def SDL_OnApplicationWillEnterBackground() -> None:
    """
    Let iOS apps with external event handling report onApplicationWillResignActive.
    https://wiki.libsdl.org/SDL3/SDL_OnApplicationWillEnterBackground
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OnApplicationWillEnterBackground()

def SDL_OnApplicationDidEnterBackground() -> None:
    """
    Let iOS apps with external event handling report onApplicationDidEnterBackground.
    https://wiki.libsdl.org/SDL3/SDL_OnApplicationDidEnterBackground
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OnApplicationDidEnterBackground()

def SDL_OnApplicationWillEnterForeground() -> None:
    """
    Let iOS apps with external event handling report onApplicationWillEnterForeground.
    https://wiki.libsdl.org/SDL3/SDL_OnApplicationWillEnterForeground
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OnApplicationWillEnterForeground()

def SDL_OnApplicationDidEnterForeground() -> None:
    """
    Let iOS apps with external event handling report onApplicationDidBecomeActive.
    https://wiki.libsdl.org/SDL3/SDL_OnApplicationDidEnterForeground
    """
    return SDL_GET_DLL(SDL_DLL).SDL_OnApplicationDidEnterForeground()

def SDL_GetDateTimeLocalePreferences(_0: LP_c_long, _1: LP_c_long) -> ctypes.c_bool:
    """
    Gets the current preferred date and time format for the system locale.
    https://wiki.libsdl.org/SDL3/SDL_GetDateTimeLocalePreferences
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDateTimeLocalePreferences(_0, _1)

def SDL_GetCurrentTime(_0: LP_c_longlong) -> ctypes.c_bool:
    """
    Gets the current value of the system realtime clock in nanoseconds since Jan 1, 1970 in Universal Coordinated Time (UTC).
    https://wiki.libsdl.org/SDL3/SDL_GetCurrentTime
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetCurrentTime(_0)

def SDL_TimeToDateTime(_0: ctypes.c_longlong, _1: LP_SDL_DateTime, _2: ctypes.c_bool) -> ctypes.c_bool:
    """
    Converts an [SDL_Time](https://wiki.libsdl.org/SDL3/SDL_Time) in nanoseconds since the epoch to a calendar time in the [SDL_DateTime](https://wiki.libsdl.org/SDL3/SDL_DateTime) format.
    https://wiki.libsdl.org/SDL3/SDL_TimeToDateTime
    """
    return SDL_GET_DLL(SDL_DLL).SDL_TimeToDateTime(_0, _1, _2)

def SDL_DateTimeToTime(_0: LP_SDL_DateTime, _1: LP_c_longlong) -> ctypes.c_bool:
    """
    Converts a calendar time to an [SDL_Time](https://wiki.libsdl.org/SDL3/SDL_Time) in nanoseconds since the epoch.
    https://wiki.libsdl.org/SDL3/SDL_DateTimeToTime
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DateTimeToTime(_0, _1)

def SDL_TimeToWindows(_0: ctypes.c_longlong, _1: LP_c_ulong, _2: LP_c_ulong) -> None:
    """
    Converts an SDL time into a Windows FILETIME (100-nanosecond intervals since January 1, 1601).
    https://wiki.libsdl.org/SDL3/SDL_TimeToWindows
    """
    return SDL_GET_DLL(SDL_DLL).SDL_TimeToWindows(_0, _1, _2)

def SDL_TimeFromWindows(_0: ctypes.c_ulong, _1: ctypes.c_ulong) -> ctypes.c_longlong:
    """
    Converts a Windows FILETIME (100-nanosecond intervals since January 1, 1601) to an SDL time.
    https://wiki.libsdl.org/SDL3/SDL_TimeFromWindows
    """
    return SDL_GET_DLL(SDL_DLL).SDL_TimeFromWindows(_0, _1)

def SDL_GetDaysInMonth(_0: ctypes.c_long, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Get the number of days in a month for a given year.
    https://wiki.libsdl.org/SDL3/SDL_GetDaysInMonth
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDaysInMonth(_0, _1)

def SDL_GetDayOfYear(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_long:
    """
    Get the day of year for a calendar date.
    https://wiki.libsdl.org/SDL3/SDL_GetDayOfYear
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDayOfYear(_0, _1, _2)

def SDL_GetDayOfWeek(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_long:
    """
    Get the day of week for a calendar date.
    https://wiki.libsdl.org/SDL3/SDL_GetDayOfWeek
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetDayOfWeek(_0, _1, _2)

def SDL_GetTicks() -> ctypes.c_ulonglong:
    """
    Get the number of milliseconds since SDL library initialization.
    https://wiki.libsdl.org/SDL3/SDL_GetTicks
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTicks()

def SDL_GetTicksNS() -> ctypes.c_ulonglong:
    """
    Get the number of nanoseconds since SDL library initialization.
    https://wiki.libsdl.org/SDL3/SDL_GetTicksNS
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetTicksNS()

def SDL_GetPerformanceCounter() -> ctypes.c_ulonglong:
    """
    Get the current value of the high resolution counter.
    https://wiki.libsdl.org/SDL3/SDL_GetPerformanceCounter
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPerformanceCounter()

def SDL_GetPerformanceFrequency() -> ctypes.c_ulonglong:
    """
    Get the count per second of the high resolution counter.
    https://wiki.libsdl.org/SDL3/SDL_GetPerformanceFrequency
    """
    return SDL_GET_DLL(SDL_DLL).SDL_GetPerformanceFrequency()

def SDL_Delay(_0: ctypes.c_ulong) -> None:
    """
    Wait a specified number of milliseconds before returning.
    https://wiki.libsdl.org/SDL3/SDL_Delay
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Delay(_0)

def SDL_DelayNS(_0: ctypes.c_ulonglong) -> None:
    """
    Wait a specified number of nanoseconds before returning.
    https://wiki.libsdl.org/SDL3/SDL_DelayNS
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DelayNS(_0)

def SDL_DelayPrecise(_0: ctypes.c_ulonglong) -> None:
    """
    Wait a specified number of nanoseconds before returning.
    https://wiki.libsdl.org/SDL3/SDL_DelayPrecise
    """
    return SDL_GET_DLL(SDL_DLL).SDL_DelayPrecise(_0)

def SDL_AddTimer(_0: ctypes.c_ulong, _1: ctypes._Pointer, _2: ctypes.c_void_p) -> ctypes.c_ulong:
    """
    Call a callback function at a future time.
    https://wiki.libsdl.org/SDL3/SDL_AddTimer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AddTimer(_0, _1, _2)

def SDL_AddTimerNS(_0: ctypes.c_ulonglong, _1: ctypes._Pointer, _2: ctypes.c_void_p) -> ctypes.c_ulong:
    """
    Call a callback function at a future time.
    https://wiki.libsdl.org/SDL3/SDL_AddTimerNS
    """
    return SDL_GET_DLL(SDL_DLL).SDL_AddTimerNS(_0, _1, _2)

def SDL_RemoveTimer(_0: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Remove a timer created with [SDL_AddTimer](https://wiki.libsdl.org/SDL3/SDL_AddTimer)().
    https://wiki.libsdl.org/SDL3/SDL_RemoveTimer
    """
    return SDL_GET_DLL(SDL_DLL).SDL_RemoveTimer(_0)

def SDL_Vulkan_LoadLibrary(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Dynamically load the Vulkan loader library.
    https://wiki.libsdl.org/SDL3/SDL_Vulkan_LoadLibrary
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Vulkan_LoadLibrary(_0)

def SDL_Vulkan_GetVkGetInstanceProcAddr() -> ctypes._Pointer:
    """
    Get the address of the `vkGetInstanceProcAddr` function.
    https://wiki.libsdl.org/SDL3/SDL_Vulkan_GetVkGetInstanceProcAddr
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Vulkan_GetVkGetInstanceProcAddr()

def SDL_Vulkan_UnloadLibrary() -> None:
    """
    Unload the Vulkan library previously loaded by [SDL_Vulkan_LoadLibrary](https://wiki.libsdl.org/SDL3/SDL_Vulkan_LoadLibrary)().
    https://wiki.libsdl.org/SDL3/SDL_Vulkan_UnloadLibrary
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Vulkan_UnloadLibrary()

def SDL_Vulkan_GetInstanceExtensions(_0: LP_c_ulong) -> LP_c_char_p:
    """
    Get the Vulkan instance extensions needed for vkCreateInstance.
    https://wiki.libsdl.org/SDL3/SDL_Vulkan_GetInstanceExtensions
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Vulkan_GetInstanceExtensions(_0)

def SDL_Vulkan_CreateSurface(_0: LP_SDL_Window, _1: VkInstance, _2: LP_VkAllocationCallbacks, _3: LP_c_ulonglong) -> ctypes.c_bool:
    """
    Create a Vulkan rendering surface for a window.
    https://wiki.libsdl.org/SDL3/SDL_Vulkan_CreateSurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Vulkan_CreateSurface(_0, _1, _2, _3)

def SDL_Vulkan_DestroySurface(_0: VkInstance, _1: ctypes.c_ulonglong, _2: LP_VkAllocationCallbacks) -> None:
    """
    Destroy the Vulkan rendering surface of a window.
    https://wiki.libsdl.org/SDL3/SDL_Vulkan_DestroySurface
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Vulkan_DestroySurface(_0, _1, _2)

def SDL_Vulkan_GetPresentationSupport(_0: VkInstance, _1: VkPhysicalDevice, _2: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Query support for presentation via a given physical device and queue family.
    https://wiki.libsdl.org/SDL3/SDL_Vulkan_GetPresentationSupport
    """
    return SDL_GET_DLL(SDL_DLL).SDL_Vulkan_GetPresentationSupport(_0, _1, _2)

# SDL3_image.dll implementation.

def IMG_Version() -> ctypes.c_long:
    """
    This function gets the version of the dynamically linked SDL_image library.
    https://wiki.libsdl.org/SDL3_image/IMG_Version
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_Version()

def IMG_LoadTyped_IO(_0: LP_SDL_IOStream, _1: ctypes.c_bool, _2: ctypes.c_char_p) -> LP_SDL_Surface:
    """
    Load an image from an SDL data source into a software surface.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadTyped_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadTyped_IO(_0, _1, _2)

def IMG_Load(_0: ctypes.c_char_p) -> LP_SDL_Surface:
    """
    Load an image from a filesystem path into a software surface.
    https://wiki.libsdl.org/SDL3_image/IMG_Load
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_Load(_0)

def IMG_Load_IO(_0: LP_SDL_IOStream, _1: ctypes.c_bool) -> LP_SDL_Surface:
    """
    Load an image from an SDL data source into a software surface.
    https://wiki.libsdl.org/SDL3_image/IMG_Load_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_Load_IO(_0, _1)

def IMG_LoadTexture(_0: LP_SDL_Renderer, _1: ctypes.c_char_p) -> LP_SDL_Texture:
    """
    Load an image from a filesystem path into a GPU texture.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadTexture
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadTexture(_0, _1)

def IMG_LoadTexture_IO(_0: LP_SDL_Renderer, _1: LP_SDL_IOStream, _2: ctypes.c_bool) -> LP_SDL_Texture:
    """
    Load an image from an SDL data source into a GPU texture.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadTexture_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadTexture_IO(_0, _1, _2)

def IMG_LoadTextureTyped_IO(_0: LP_SDL_Renderer, _1: LP_SDL_IOStream, _2: ctypes.c_bool, _3: ctypes.c_char_p) -> LP_SDL_Texture:
    """
    Load an image from an SDL data source into a GPU texture.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadTextureTyped_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadTextureTyped_IO(_0, _1, _2, _3)

def IMG_isAVIF(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect AVIF image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isAVIF
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isAVIF(_0)

def IMG_isICO(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect ICO image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isICO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isICO(_0)

def IMG_isCUR(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect CUR image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isCUR
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isCUR(_0)

def IMG_isBMP(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect BMP image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isBMP
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isBMP(_0)

def IMG_isGIF(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect GIF image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isGIF
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isGIF(_0)

def IMG_isJPG(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect JPG image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isJPG
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isJPG(_0)

def IMG_isJXL(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect JXL image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isJXL
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isJXL(_0)

def IMG_isLBM(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect LBM image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isLBM
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isLBM(_0)

def IMG_isPCX(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect PCX image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isPCX
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isPCX(_0)

def IMG_isPNG(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect PNG image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isPNG
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isPNG(_0)

def IMG_isPNM(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect PNM image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isPNM
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isPNM(_0)

def IMG_isSVG(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect SVG image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isSVG
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isSVG(_0)

def IMG_isQOI(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect QOI image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isQOI
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isQOI(_0)

def IMG_isTIF(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect TIFF image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isTIF
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isTIF(_0)

def IMG_isXCF(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect XCF image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isXCF
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isXCF(_0)

def IMG_isXPM(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect XPM image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isXPM
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isXPM(_0)

def IMG_isXV(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect XV image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isXV
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isXV(_0)

def IMG_isWEBP(_0: LP_SDL_IOStream) -> ctypes.c_bool:
    """
    Detect WEBP image data on a readable/seekable SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_isWEBP
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_isWEBP(_0)

def IMG_LoadAVIF_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a AVIF image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadAVIF_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadAVIF_IO(_0)

def IMG_LoadICO_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a ICO image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadICO_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadICO_IO(_0)

def IMG_LoadCUR_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a CUR image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadCUR_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadCUR_IO(_0)

def IMG_LoadBMP_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a BMP image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadBMP_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadBMP_IO(_0)

def IMG_LoadGIF_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a GIF image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadGIF_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadGIF_IO(_0)

def IMG_LoadJPG_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a JPG image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadJPG_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadJPG_IO(_0)

def IMG_LoadJXL_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a JXL image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadJXL_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadJXL_IO(_0)

def IMG_LoadLBM_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a LBM image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadLBM_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadLBM_IO(_0)

def IMG_LoadPCX_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a PCX image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadPCX_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadPCX_IO(_0)

def IMG_LoadPNG_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a PNG image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadPNG_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadPNG_IO(_0)

def IMG_LoadPNM_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a PNM image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadPNM_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadPNM_IO(_0)

def IMG_LoadSVG_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a SVG image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadSVG_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadSVG_IO(_0)

def IMG_LoadQOI_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a QOI image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadQOI_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadQOI_IO(_0)

def IMG_LoadTGA_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a TGA image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadTGA_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadTGA_IO(_0)

def IMG_LoadTIF_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a TIFF image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadTIF_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadTIF_IO(_0)

def IMG_LoadXCF_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a XCF image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadXCF_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadXCF_IO(_0)

def IMG_LoadXPM_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a XPM image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadXPM_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadXPM_IO(_0)

def IMG_LoadXV_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a XV image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadXV_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadXV_IO(_0)

def IMG_LoadWEBP_IO(_0: LP_SDL_IOStream) -> LP_SDL_Surface:
    """
    Load a WEBP image directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadWEBP_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadWEBP_IO(_0)

def IMG_LoadSizedSVG_IO(_0: LP_SDL_IOStream, _1: ctypes.c_long, _2: ctypes.c_long) -> LP_SDL_Surface:
    """
    Load an SVG image, scaled to a specific size.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadSizedSVG_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadSizedSVG_IO(_0, _1, _2)

def IMG_ReadXPMFromArray(_0: LP_c_char_p) -> LP_SDL_Surface:
    """
    Load an XPM image from a memory array.
    https://wiki.libsdl.org/SDL3_image/IMG_ReadXPMFromArray
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_ReadXPMFromArray(_0)

def IMG_ReadXPMFromArrayToRGB888(_0: LP_c_char_p) -> LP_SDL_Surface:
    """
    Load an XPM image from a memory array.
    https://wiki.libsdl.org/SDL3_image/IMG_ReadXPMFromArrayToRGB888
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_ReadXPMFromArrayToRGB888(_0)

def IMG_SaveAVIF(_0: LP_SDL_Surface, _1: ctypes.c_char_p, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Save an SDL_Surface into a AVIF image file.
    https://wiki.libsdl.org/SDL3_image/IMG_SaveAVIF
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_SaveAVIF(_0, _1, _2)

def IMG_SaveAVIF_IO(_0: LP_SDL_Surface, _1: LP_SDL_IOStream, _2: ctypes.c_bool, _3: ctypes.c_long) -> ctypes.c_bool:
    """
    Save an SDL_Surface into AVIF image data, via an SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_SaveAVIF_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_SaveAVIF_IO(_0, _1, _2, _3)

def IMG_SavePNG(_0: LP_SDL_Surface, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Save an SDL_Surface into a PNG image file.
    https://wiki.libsdl.org/SDL3_image/IMG_SavePNG
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_SavePNG(_0, _1)

def IMG_SavePNG_IO(_0: LP_SDL_Surface, _1: LP_SDL_IOStream, _2: ctypes.c_bool) -> ctypes.c_bool:
    """
    Save an SDL_Surface into PNG image data, via an SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_SavePNG_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_SavePNG_IO(_0, _1, _2)

def IMG_SaveJPG(_0: LP_SDL_Surface, _1: ctypes.c_char_p, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Save an SDL_Surface into a JPEG image file.
    https://wiki.libsdl.org/SDL3_image/IMG_SaveJPG
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_SaveJPG(_0, _1, _2)

def IMG_SaveJPG_IO(_0: LP_SDL_Surface, _1: LP_SDL_IOStream, _2: ctypes.c_bool, _3: ctypes.c_long) -> ctypes.c_bool:
    """
    Save an SDL_Surface into JPEG image data, via an SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_SaveJPG_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_SaveJPG_IO(_0, _1, _2, _3)

def IMG_LoadAnimation(_0: ctypes.c_char_p) -> LP_IMG_Animation:
    """
    Load an animation from a file.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadAnimation
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadAnimation(_0)

def IMG_LoadAnimation_IO(_0: LP_SDL_IOStream, _1: ctypes.c_bool) -> LP_IMG_Animation:
    """
    Load an animation from an SDL_IOStream.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadAnimation_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadAnimation_IO(_0, _1)

def IMG_LoadAnimationTyped_IO(_0: LP_SDL_IOStream, _1: ctypes.c_bool, _2: ctypes.c_char_p) -> LP_IMG_Animation:
    """
    Load an animation from an SDL datasource
    https://wiki.libsdl.org/SDL3_image/IMG_LoadAnimationTyped_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadAnimationTyped_IO(_0, _1, _2)

def IMG_FreeAnimation(_0: LP_IMG_Animation) -> None:
    """
    Dispose of an [IMG_Animation](https://wiki.libsdl.org/SDL3_image/IMG_Animation) and free its resources.
    https://wiki.libsdl.org/SDL3_image/IMG_FreeAnimation
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_FreeAnimation(_0)

def IMG_LoadGIFAnimation_IO(_0: LP_SDL_IOStream) -> LP_IMG_Animation:
    """
    Load a GIF animation directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadGIFAnimation_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadGIFAnimation_IO(_0)

def IMG_LoadWEBPAnimation_IO(_0: LP_SDL_IOStream) -> LP_IMG_Animation:
    """
    Load a WEBP animation directly.
    https://wiki.libsdl.org/SDL3_image/IMG_LoadWEBPAnimation_IO
    """
    return SDL_GET_DLL(SDL_IMAGE_DLL).IMG_LoadWEBPAnimation_IO(_0)

# SDL3_mixer.dll implementation.

def Mix_Version() -> ctypes.c_long:
    """
    This function gets the version of the dynamically linked SDL_mixer library.
    https://wiki.libsdl.org/SDL3_mixer/Mix_Version
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_Version()

def Mix_Init(_0: ctypes.c_ulong) -> ctypes.c_ulong:
    """
    Initialize SDL_mixer.
    https://wiki.libsdl.org/SDL3_mixer/Mix_Init
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_Init(_0)

def Mix_Quit() -> None:
    """
    Deinitialize SDL_mixer.
    https://wiki.libsdl.org/SDL3_mixer/Mix_Quit
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_Quit()

def Mix_OpenAudio(_0: ctypes.c_ulong, _1: LP_SDL_AudioSpec) -> ctypes.c_bool:
    """
    Open an audio device for playback.
    https://wiki.libsdl.org/SDL3_mixer/Mix_OpenAudio
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_OpenAudio(_0, _1)

def Mix_PauseAudio(_0: ctypes.c_long) -> None:
    """
    Suspend or resume the whole audio output.
    https://wiki.libsdl.org/SDL3_mixer/Mix_PauseAudio
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_PauseAudio(_0)

def Mix_QuerySpec(_0: LP_c_long, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Find out what the actual audio device parameters are.
    https://wiki.libsdl.org/SDL3_mixer/Mix_QuerySpec
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_QuerySpec(_0, _1, _2)

def Mix_AllocateChannels(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Dynamically change the number of channels managed by the mixer.
    https://wiki.libsdl.org/SDL3_mixer/Mix_AllocateChannels
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_AllocateChannels(_0)

def Mix_LoadWAV_IO(_0: LP_SDL_IOStream, _1: ctypes.c_bool) -> LP_Mix_Chunk:
    """
    Load a supported audio format into a chunk.
    https://wiki.libsdl.org/SDL3_mixer/Mix_LoadWAV_IO
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_LoadWAV_IO(_0, _1)

def Mix_LoadWAV(_0: ctypes.c_char_p) -> LP_Mix_Chunk:
    """
    Load a supported audio format into a chunk.
    https://wiki.libsdl.org/SDL3_mixer/Mix_LoadWAV
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_LoadWAV(_0)

def Mix_LoadMUS(_0: ctypes.c_char_p) -> LP_Mix_Music:
    """
    Load a supported audio format into a music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_LoadMUS
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_LoadMUS(_0)

def Mix_LoadMUS_IO(_0: LP_SDL_IOStream, _1: ctypes.c_bool) -> LP_Mix_Music:
    """
    Load a supported audio format into a music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_LoadMUS_IO
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_LoadMUS_IO(_0, _1)

def Mix_LoadMUSType_IO(_0: LP_SDL_IOStream, _1: ctypes.c_long, _2: ctypes.c_bool) -> LP_Mix_Music:
    """
    Load an audio format into a music object, assuming a specific format.
    https://wiki.libsdl.org/SDL3_mixer/Mix_LoadMUSType_IO
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_LoadMUSType_IO(_0, _1, _2)

def Mix_QuickLoad_WAV(_0: LP_c_ubyte) -> LP_Mix_Chunk:
    """
    Load a WAV file from memory as quickly as possible.
    https://wiki.libsdl.org/SDL3_mixer/Mix_QuickLoad_WAV
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_QuickLoad_WAV(_0)

def Mix_QuickLoad_RAW(_0: LP_c_ubyte, _1: ctypes.c_ulong) -> LP_Mix_Chunk:
    """
    Load a raw audio data from memory as quickly as possible.
    https://wiki.libsdl.org/SDL3_mixer/Mix_QuickLoad_RAW
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_QuickLoad_RAW(_0, _1)

def Mix_FreeChunk(_0: LP_Mix_Chunk) -> None:
    """
    Free an audio chunk.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FreeChunk
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FreeChunk(_0)

def Mix_FreeMusic(_0: LP_Mix_Music) -> None:
    """
    Free a music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FreeMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FreeMusic(_0)

def Mix_GetNumChunkDecoders() -> ctypes.c_long:
    """
    Get a list of chunk decoders that this build of SDL_mixer provides.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetNumChunkDecoders
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetNumChunkDecoders()

def Mix_GetChunkDecoder(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Get a chunk decoder's name.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetChunkDecoder
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetChunkDecoder(_0)

def Mix_HasChunkDecoder(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Check if a chunk decoder is available by name.
    https://wiki.libsdl.org/SDL3_mixer/Mix_HasChunkDecoder
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_HasChunkDecoder(_0)

def Mix_GetNumMusicDecoders() -> ctypes.c_long:
    """
    Get a list of music decoders that this build of SDL_mixer provides.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetNumMusicDecoders
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetNumMusicDecoders()

def Mix_GetMusicDecoder(_0: ctypes.c_long) -> ctypes.c_char_p:
    """
    Get a music decoder's name.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicDecoder
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicDecoder(_0)

def Mix_HasMusicDecoder(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Check if a music decoder is available by name.
    https://wiki.libsdl.org/SDL3_mixer/Mix_HasMusicDecoder
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_HasMusicDecoder(_0)

def Mix_GetMusicType(_0: LP_Mix_Music) -> ctypes.c_long:
    """
    Find out the format of a mixer music.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicType
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicType(_0)

def Mix_GetMusicTitle(_0: LP_Mix_Music) -> ctypes.c_char_p:
    """
    Get the title for a music object, or its filename.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicTitle
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicTitle(_0)

def Mix_GetMusicTitleTag(_0: LP_Mix_Music) -> ctypes.c_char_p:
    """
    Get the title for a music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicTitleTag
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicTitleTag(_0)

def Mix_GetMusicArtistTag(_0: LP_Mix_Music) -> ctypes.c_char_p:
    """
    Get the artist name for a music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicArtistTag
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicArtistTag(_0)

def Mix_GetMusicAlbumTag(_0: LP_Mix_Music) -> ctypes.c_char_p:
    """
    Get the album name for a music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicAlbumTag
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicAlbumTag(_0)

def Mix_GetMusicCopyrightTag(_0: LP_Mix_Music) -> ctypes.c_char_p:
    """
    Get the copyright text for a music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicCopyrightTag
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicCopyrightTag(_0)

def Mix_SetPostMix(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> None:
    """
    Set a function that is called after all mixing is performed.
    https://wiki.libsdl.org/SDL3_mixer/Mix_SetPostMix
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_SetPostMix(_0, _1)

def Mix_HookMusic(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> None:
    """
    Add your own music player or additional mixer function.
    https://wiki.libsdl.org/SDL3_mixer/Mix_HookMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_HookMusic(_0, _1)

def Mix_HookMusicFinished(_0: ctypes._Pointer) -> None:
    """
    Set a callback that runs when a music object has stopped playing.
    https://wiki.libsdl.org/SDL3_mixer/Mix_HookMusicFinished
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_HookMusicFinished(_0)

def Mix_GetMusicHookData() -> ctypes.c_void_p:
    """
    Get a pointer to the user data for the current music hook.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicHookData
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicHookData()

def Mix_ChannelFinished(_0: ctypes._Pointer) -> None:
    """
    Set a callback that runs when a channel has finished playing.
    https://wiki.libsdl.org/SDL3_mixer/Mix_ChannelFinished
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_ChannelFinished(_0)

def Mix_RegisterEffect(_0: ctypes.c_long, _1: ctypes._Pointer, _2: ctypes._Pointer, _3: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Register a special effect function.
    https://wiki.libsdl.org/SDL3_mixer/Mix_RegisterEffect
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_RegisterEffect(_0, _1, _2, _3)

def Mix_UnregisterEffect(_0: ctypes.c_long, _1: ctypes._Pointer) -> ctypes.c_bool:
    """
    Explicitly unregister a special effect function.
    https://wiki.libsdl.org/SDL3_mixer/Mix_UnregisterEffect
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_UnregisterEffect(_0, _1)

def Mix_UnregisterAllEffects(_0: ctypes.c_long) -> ctypes.c_bool:
    """
    Explicitly unregister all special effect functions.
    https://wiki.libsdl.org/SDL3_mixer/Mix_UnregisterAllEffects
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_UnregisterAllEffects(_0)

def Mix_SetPanning(_0: ctypes.c_long, _1: ctypes.c_ubyte, _2: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set the panning of a channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_SetPanning
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_SetPanning(_0, _1, _2)

def Mix_SetPosition(_0: ctypes.c_long, _1: ctypes.c_short, _2: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set the position of a channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_SetPosition
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_SetPosition(_0, _1, _2)

def Mix_SetDistance(_0: ctypes.c_long, _1: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set the "distance" of a channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_SetDistance
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_SetDistance(_0, _1)

def Mix_SetReverseStereo(_0: ctypes.c_long, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Cause a channel to reverse its stereo.
    https://wiki.libsdl.org/SDL3_mixer/Mix_SetReverseStereo
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_SetReverseStereo(_0, _1)

def Mix_ReserveChannels(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Reserve the first channels for the application.
    https://wiki.libsdl.org/SDL3_mixer/Mix_ReserveChannels
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_ReserveChannels(_0)

def Mix_GroupChannel(_0: ctypes.c_long, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Assign a tag to a channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GroupChannel
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GroupChannel(_0, _1)

def Mix_GroupChannels(_0: ctypes.c_long, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Assign several consecutive channels to the same tag.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GroupChannels
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GroupChannels(_0, _1, _2)

def Mix_GroupAvailable(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Finds the first available channel in a group of channels.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GroupAvailable
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GroupAvailable(_0)

def Mix_GroupCount(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Returns the number of channels in a group.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GroupCount
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GroupCount(_0)

def Mix_GroupOldest(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Find the "oldest" sample playing in a group of channels.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GroupOldest
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GroupOldest(_0)

def Mix_GroupNewer(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Find the "most recent" sample playing in a group of channels.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GroupNewer
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GroupNewer(_0)

def Mix_PlayChannel(_0: ctypes.c_long, _1: LP_Mix_Chunk, _2: ctypes.c_long) -> ctypes.c_long:
    """
    Play an audio chunk on a specific channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_PlayChannel
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_PlayChannel(_0, _1, _2)

def Mix_PlayChannelTimed(_0: ctypes.c_long, _1: LP_Mix_Chunk, _2: ctypes.c_long, _3: ctypes.c_long) -> ctypes.c_long:
    """
    Play an audio chunk on a specific channel for a maximum time.
    https://wiki.libsdl.org/SDL3_mixer/Mix_PlayChannelTimed
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_PlayChannelTimed(_0, _1, _2, _3)

def Mix_PlayMusic(_0: LP_Mix_Music, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Play a new music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_PlayMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_PlayMusic(_0, _1)

def Mix_FadeInMusic(_0: LP_Mix_Music, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Play a new music object, fading in the audio.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FadeInMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FadeInMusic(_0, _1, _2)

def Mix_FadeInMusicPos(_0: LP_Mix_Music, _1: ctypes.c_long, _2: ctypes.c_long, _3: ctypes.c_double) -> ctypes.c_bool:
    """
    Play a new music object, fading in the audio, from a starting position.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FadeInMusicPos
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FadeInMusicPos(_0, _1, _2, _3)

def Mix_FadeInChannel(_0: ctypes.c_long, _1: LP_Mix_Chunk, _2: ctypes.c_long, _3: ctypes.c_long) -> ctypes.c_long:
    """
    Play an audio chunk on a specific channel, fading in the audio.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FadeInChannel
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FadeInChannel(_0, _1, _2, _3)

def Mix_FadeInChannelTimed(_0: ctypes.c_long, _1: LP_Mix_Chunk, _2: ctypes.c_long, _3: ctypes.c_long, _4: ctypes.c_long) -> ctypes.c_long:
    """
    Play an audio chunk on a specific channel, fading in the audio, for a maximum time.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FadeInChannelTimed
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FadeInChannelTimed(_0, _1, _2, _3, _4)

def Mix_Volume(_0: ctypes.c_long, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Set the volume for a specific channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_Volume
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_Volume(_0, _1)

def Mix_VolumeChunk(_0: LP_Mix_Chunk, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Set the volume for a specific chunk.
    https://wiki.libsdl.org/SDL3_mixer/Mix_VolumeChunk
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_VolumeChunk(_0, _1)

def Mix_VolumeMusic(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Set the volume for the music channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_VolumeMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_VolumeMusic(_0)

def Mix_GetMusicVolume(_0: LP_Mix_Music) -> ctypes.c_long:
    """
    Query the current volume value for a music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicVolume
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicVolume(_0)

def Mix_MasterVolume(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Set the master volume for all channels.
    https://wiki.libsdl.org/SDL3_mixer/Mix_MasterVolume
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_MasterVolume(_0)

def Mix_HaltChannel(_0: ctypes.c_long) -> None:
    """
    Halt playing of a particular channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_HaltChannel
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_HaltChannel(_0)

def Mix_HaltGroup(_0: ctypes.c_long) -> None:
    """
    Halt playing of a group of channels by arbitrary tag.
    https://wiki.libsdl.org/SDL3_mixer/Mix_HaltGroup
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_HaltGroup(_0)

def Mix_HaltMusic() -> None:
    """
    Halt playing of the music stream.
    https://wiki.libsdl.org/SDL3_mixer/Mix_HaltMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_HaltMusic()

def Mix_ExpireChannel(_0: ctypes.c_long, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Change the expiration delay for a particular channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_ExpireChannel
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_ExpireChannel(_0, _1)

def Mix_FadeOutChannel(_0: ctypes.c_long, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Halt a channel after fading it out for a specified time.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FadeOutChannel
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FadeOutChannel(_0, _1)

def Mix_FadeOutGroup(_0: ctypes.c_long, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Halt a playing group of channels by arbitrary tag, after fading them out for a specified time.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FadeOutGroup
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FadeOutGroup(_0, _1)

def Mix_FadeOutMusic(_0: ctypes.c_long) -> ctypes.c_bool:
    """
    Halt the music stream after fading it out for a specified time.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FadeOutMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FadeOutMusic(_0)

def Mix_FadingMusic() -> ctypes.c_long:
    """
    Query the fading status of the music stream.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FadingMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FadingMusic()

def Mix_FadingChannel(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Query the fading status of a channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_FadingChannel
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_FadingChannel(_0)

def Mix_Pause(_0: ctypes.c_long) -> None:
    """
    Pause a particular channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_Pause
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_Pause(_0)

def Mix_PauseGroup(_0: ctypes.c_long) -> None:
    """
    Pause playing of a group of channels by arbitrary tag.
    https://wiki.libsdl.org/SDL3_mixer/Mix_PauseGroup
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_PauseGroup(_0)

def Mix_Resume(_0: ctypes.c_long) -> None:
    """
    Resume a particular channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_Resume
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_Resume(_0)

def Mix_ResumeGroup(_0: ctypes.c_long) -> None:
    """
    Resume playing of a group of channels by arbitrary tag.
    https://wiki.libsdl.org/SDL3_mixer/Mix_ResumeGroup
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_ResumeGroup(_0)

def Mix_Paused(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Query whether a particular channel is paused.
    https://wiki.libsdl.org/SDL3_mixer/Mix_Paused
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_Paused(_0)

def Mix_PauseMusic() -> None:
    """
    Pause the music stream.
    https://wiki.libsdl.org/SDL3_mixer/Mix_PauseMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_PauseMusic()

def Mix_ResumeMusic() -> None:
    """
    Resume the music stream.
    https://wiki.libsdl.org/SDL3_mixer/Mix_ResumeMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_ResumeMusic()

def Mix_RewindMusic() -> None:
    """
    Rewind the music stream.
    https://wiki.libsdl.org/SDL3_mixer/Mix_RewindMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_RewindMusic()

def Mix_PausedMusic() -> ctypes.c_bool:
    """
    Query whether the music stream is paused.
    https://wiki.libsdl.org/SDL3_mixer/Mix_PausedMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_PausedMusic()

def Mix_ModMusicJumpToOrder(_0: ctypes.c_long) -> ctypes.c_bool:
    """
    Jump to a given order in mod music.
    https://wiki.libsdl.org/SDL3_mixer/Mix_ModMusicJumpToOrder
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_ModMusicJumpToOrder(_0)

def Mix_StartTrack(_0: LP_Mix_Music, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Start a track in music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_StartTrack
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_StartTrack(_0, _1)

def Mix_GetNumTracks(_0: LP_Mix_Music) -> ctypes.c_long:
    """
    Get number of tracks in music object.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetNumTracks
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetNumTracks(_0)

def Mix_SetMusicPosition(_0: ctypes.c_double) -> ctypes.c_bool:
    """
    Set the current position in the music stream, in seconds.
    https://wiki.libsdl.org/SDL3_mixer/Mix_SetMusicPosition
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_SetMusicPosition(_0)

def Mix_GetMusicPosition(_0: LP_Mix_Music) -> ctypes.c_double:
    """
    Get the time current position of music stream, in seconds.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicPosition
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicPosition(_0)

def Mix_MusicDuration(_0: LP_Mix_Music) -> ctypes.c_double:
    """
    Get a music object's duration, in seconds.
    https://wiki.libsdl.org/SDL3_mixer/Mix_MusicDuration
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_MusicDuration(_0)

def Mix_GetMusicLoopStartTime(_0: LP_Mix_Music) -> ctypes.c_double:
    """
    Get the loop start time position of music stream, in seconds.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicLoopStartTime
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicLoopStartTime(_0)

def Mix_GetMusicLoopEndTime(_0: LP_Mix_Music) -> ctypes.c_double:
    """
    Get the loop end time position of music stream, in seconds.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicLoopEndTime
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicLoopEndTime(_0)

def Mix_GetMusicLoopLengthTime(_0: LP_Mix_Music) -> ctypes.c_double:
    """
    Get the loop time length of music stream, in seconds.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetMusicLoopLengthTime
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetMusicLoopLengthTime(_0)

def Mix_Playing(_0: ctypes.c_long) -> ctypes.c_long:
    """
    Check the playing status of a specific channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_Playing
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_Playing(_0)

def Mix_PlayingMusic() -> ctypes.c_bool:
    """
    Check the playing status of the music stream.
    https://wiki.libsdl.org/SDL3_mixer/Mix_PlayingMusic
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_PlayingMusic()

def Mix_SetSoundFonts(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Set SoundFonts paths to use by supported MIDI backends.
    https://wiki.libsdl.org/SDL3_mixer/Mix_SetSoundFonts
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_SetSoundFonts(_0)

def Mix_GetSoundFonts() -> ctypes.c_char_p:
    """
    Get SoundFonts paths to use by supported MIDI backends.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetSoundFonts
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetSoundFonts()

def Mix_EachSoundFont(_0: ctypes._Pointer, _1: ctypes.c_void_p) -> ctypes.c_bool:
    """
    Iterate SoundFonts paths to use by supported MIDI backends.
    https://wiki.libsdl.org/SDL3_mixer/Mix_EachSoundFont
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_EachSoundFont(_0, _1)

def Mix_SetTimidityCfg(_0: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Set full path of the Timidity config file.
    https://wiki.libsdl.org/SDL3_mixer/Mix_SetTimidityCfg
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_SetTimidityCfg(_0)

def Mix_GetTimidityCfg() -> ctypes.c_char_p:
    """
    Get full path of a previously-specified Timidity config file.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetTimidityCfg
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetTimidityCfg()

def Mix_GetChunk(_0: ctypes.c_long) -> LP_Mix_Chunk:
    """
    Get the [Mix_Chunk](https://wiki.libsdl.org/SDL3_mixer/Mix_Chunk) currently associated with a mixer channel.
    https://wiki.libsdl.org/SDL3_mixer/Mix_GetChunk
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_GetChunk(_0)

def Mix_CloseAudio() -> None:
    """
    Close the mixer, halting all playing audio.
    https://wiki.libsdl.org/SDL3_mixer/Mix_CloseAudio
    """
    return SDL_GET_DLL(SDL_MIXER_DLL).Mix_CloseAudio()

# SDL3_net.dll implementation.

def SDLNet_Version() -> ctypes.c_long:
    """
    This function gets the version of the dynamically linked SDL_net library.
    https://wiki.libsdl.org/SDL3_net/SDLNet_Version
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_Version()

def SDLNet_Init() -> ctypes.c_bool:
    """
    Initialize the SDL_net library.
    https://wiki.libsdl.org/SDL3_net/SDLNet_Init
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_Init()

def SDLNet_Quit() -> None:
    """
    Deinitialize the SDL_net library.
    https://wiki.libsdl.org/SDL3_net/SDLNet_Quit
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_Quit()

def SDLNet_ResolveHostname(_0: ctypes.c_char_p) -> LP_SDLNet_Address:
    """
    Resolve a human-readable hostname.
    https://wiki.libsdl.org/SDL3_net/SDLNet_ResolveHostname
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_ResolveHostname(_0)

def SDLNet_WaitUntilResolved(_0: LP_SDLNet_Address, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Block until an address is resolved.
    https://wiki.libsdl.org/SDL3_net/SDLNet_WaitUntilResolved
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_WaitUntilResolved(_0, _1)

def SDLNet_GetAddressStatus(_0: LP_SDLNet_Address) -> ctypes.c_long:
    """
    Check if an address is resolved, without blocking.
    https://wiki.libsdl.org/SDL3_net/SDLNet_GetAddressStatus
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_GetAddressStatus(_0)

def SDLNet_GetAddressString(_0: LP_SDLNet_Address) -> ctypes.c_char_p:
    """
    Get a human-readable string from a resolved address.
    https://wiki.libsdl.org/SDL3_net/SDLNet_GetAddressString
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_GetAddressString(_0)

def SDLNet_RefAddress(_0: LP_SDLNet_Address) -> LP_SDLNet_Address:
    """
    Add a reference to an [SDLNet_Address](https://wiki.libsdl.org/SDL3_net/SDLNet_Address).
    https://wiki.libsdl.org/SDL3_net/SDLNet_RefAddress
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_RefAddress(_0)

def SDLNet_UnrefAddress(_0: LP_SDLNet_Address) -> None:
    """
    Drop a reference to an [SDLNet_Address](https://wiki.libsdl.org/SDL3_net/SDLNet_Address).
    https://wiki.libsdl.org/SDL3_net/SDLNet_UnrefAddress
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_UnrefAddress(_0)

def SDLNet_SimulateAddressResolutionLoss(_0: ctypes.c_long) -> None:
    """
    Enable simulated address resolution failures.
    https://wiki.libsdl.org/SDL3_net/SDLNet_SimulateAddressResolutionLoss
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_SimulateAddressResolutionLoss(_0)

def SDLNet_CompareAddresses(_0: LP_SDLNet_Address, _1: LP_SDLNet_Address) -> ctypes.c_long:
    """
    Compare two [SDLNet_Address](https://wiki.libsdl.org/SDL3_net/SDLNet_Address) objects.
    https://wiki.libsdl.org/SDL3_net/SDLNet_CompareAddresses
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_CompareAddresses(_0, _1)

def SDLNet_GetLocalAddresses(_0: LP_c_long) -> LP_LP_SDLNet_Address:
    """
    Obtain a list of local addresses on the system.
    https://wiki.libsdl.org/SDL3_net/SDLNet_GetLocalAddresses
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_GetLocalAddresses(_0)

def SDLNet_FreeLocalAddresses(_0: LP_LP_SDLNet_Address) -> None:
    """
    Free the results from [SDLNet_GetLocalAddresses](https://wiki.libsdl.org/SDL3_net/SDLNet_GetLocalAddresses).
    https://wiki.libsdl.org/SDL3_net/SDLNet_FreeLocalAddresses
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_FreeLocalAddresses(_0)

def SDLNet_CreateClient(_0: LP_SDLNet_Address, _1: ctypes.c_ushort) -> LP_SDLNet_StreamSocket:
    """
    Begin connecting a socket as a client to a remote server.
    https://wiki.libsdl.org/SDL3_net/SDLNet_CreateClient
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_CreateClient(_0, _1)

def SDLNet_WaitUntilConnected(_0: LP_SDLNet_StreamSocket, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Block until a stream socket has connected to a server.
    https://wiki.libsdl.org/SDL3_net/SDLNet_WaitUntilConnected
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_WaitUntilConnected(_0, _1)

def SDLNet_CreateServer(_0: LP_SDLNet_Address, _1: ctypes.c_ushort) -> LP_SDLNet_Server:
    """
    Create a server, which listens for connections to accept.
    https://wiki.libsdl.org/SDL3_net/SDLNet_CreateServer
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_CreateServer(_0, _1)

def SDLNet_AcceptClient(_0: LP_SDLNet_Server, _1: LP_LP_SDLNet_StreamSocket) -> ctypes.c_bool:
    """
    Create a stream socket for the next pending client connection.
    https://wiki.libsdl.org/SDL3_net/SDLNet_AcceptClient
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_AcceptClient(_0, _1)

def SDLNet_DestroyServer(_0: LP_SDLNet_Server) -> None:
    """
    Dispose of a previously-created server.
    https://wiki.libsdl.org/SDL3_net/SDLNet_DestroyServer
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_DestroyServer(_0)

def SDLNet_GetStreamSocketAddress(_0: LP_SDLNet_StreamSocket) -> LP_SDLNet_Address:
    """
    Get the remote address of a stream socket.
    https://wiki.libsdl.org/SDL3_net/SDLNet_GetStreamSocketAddress
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_GetStreamSocketAddress(_0)

def SDLNet_GetConnectionStatus(_0: LP_SDLNet_StreamSocket) -> ctypes.c_long:
    """
    Check if a stream socket is connected, without blocking.
    https://wiki.libsdl.org/SDL3_net/SDLNet_GetConnectionStatus
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_GetConnectionStatus(_0)

def SDLNet_WriteToStreamSocket(_0: LP_SDLNet_StreamSocket, _1: ctypes.c_void_p, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Send bytes over a stream socket to a remote system.
    https://wiki.libsdl.org/SDL3_net/SDLNet_WriteToStreamSocket
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_WriteToStreamSocket(_0, _1, _2)

def SDLNet_GetStreamSocketPendingWrites(_0: LP_SDLNet_StreamSocket) -> ctypes.c_long:
    """
    Query bytes still pending transmission on a stream socket.
    https://wiki.libsdl.org/SDL3_net/SDLNet_GetStreamSocketPendingWrites
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_GetStreamSocketPendingWrites(_0)

def SDLNet_WaitUntilStreamSocketDrained(_0: LP_SDLNet_StreamSocket, _1: ctypes.c_long) -> ctypes.c_long:
    """
    Block until all of a stream socket's pending data is sent.
    https://wiki.libsdl.org/SDL3_net/SDLNet_WaitUntilStreamSocketDrained
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_WaitUntilStreamSocketDrained(_0, _1)

def SDLNet_ReadFromStreamSocket(_0: LP_SDLNet_StreamSocket, _1: ctypes.c_void_p, _2: ctypes.c_long) -> ctypes.c_long:
    """
    Receive bytes that a remote system sent to a stream socket.
    https://wiki.libsdl.org/SDL3_net/SDLNet_ReadFromStreamSocket
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_ReadFromStreamSocket(_0, _1, _2)

def SDLNet_SimulateStreamPacketLoss(_0: LP_SDLNet_StreamSocket, _1: ctypes.c_long) -> None:
    """
    Enable simulated stream socket failures.
    https://wiki.libsdl.org/SDL3_net/SDLNet_SimulateStreamPacketLoss
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_SimulateStreamPacketLoss(_0, _1)

def SDLNet_DestroyStreamSocket(_0: LP_SDLNet_StreamSocket) -> None:
    """
    Dispose of a previously-created stream socket.
    https://wiki.libsdl.org/SDL3_net/SDLNet_DestroyStreamSocket
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_DestroyStreamSocket(_0)

def SDLNet_CreateDatagramSocket(_0: LP_SDLNet_Address, _1: ctypes.c_ushort) -> LP_SDLNet_DatagramSocket:
    """
    Create and bind a new datagram socket.
    https://wiki.libsdl.org/SDL3_net/SDLNet_CreateDatagramSocket
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_CreateDatagramSocket(_0, _1)

def SDLNet_SendDatagram(_0: LP_SDLNet_DatagramSocket, _1: LP_SDLNet_Address, _2: ctypes.c_ushort, _3: ctypes.c_void_p, _4: ctypes.c_long) -> ctypes.c_bool:
    """
    Send a new packet over a datagram socket to a remote system.
    https://wiki.libsdl.org/SDL3_net/SDLNet_SendDatagram
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_SendDatagram(_0, _1, _2, _3, _4)

def SDLNet_ReceiveDatagram(_0: LP_SDLNet_DatagramSocket, _1: LP_LP_SDLNet_Datagram) -> ctypes.c_bool:
    """
    Receive a new packet that a remote system sent to a datagram socket.
    https://wiki.libsdl.org/SDL3_net/SDLNet_ReceiveDatagram
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_ReceiveDatagram(_0, _1)

def SDLNet_DestroyDatagram(_0: LP_SDLNet_Datagram) -> None:
    """
    Dispose of a datagram packet previously received.
    https://wiki.libsdl.org/SDL3_net/SDLNet_DestroyDatagram
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_DestroyDatagram(_0)

def SDLNet_SimulateDatagramPacketLoss(_0: LP_SDLNet_DatagramSocket, _1: ctypes.c_long) -> None:
    """
    Enable simulated datagram socket failures.
    https://wiki.libsdl.org/SDL3_net/SDLNet_SimulateDatagramPacketLoss
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_SimulateDatagramPacketLoss(_0, _1)

def SDLNet_DestroyDatagramSocket(_0: LP_SDLNet_DatagramSocket) -> None:
    """
    Dispose of a previously-created datagram socket.
    https://wiki.libsdl.org/SDL3_net/SDLNet_DestroyDatagramSocket
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_DestroyDatagramSocket(_0)

def SDLNet_WaitUntilInputAvailable(_0: LP_c_void_p, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_long:
    """
    Block on multiple sockets until at least one has data available.
    https://wiki.libsdl.org/SDL3_net/SDLNet_WaitUntilInputAvailable
    """
    return SDL_GET_DLL(SDL_NET_DLL).SDLNet_WaitUntilInputAvailable(_0, _1, _2)

# SDL3_rtf.dll implementation.

def RTF_Version() -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3_rtf/RTF_Version
    """
    return SDL_GET_DLL(SDL_RTF_DLL).RTF_Version()

def RTF_CreateContext(_0: LP_SDL_Renderer, _1: LP_RTF_FontEngine) -> LP_RTF_Context:
    """
    https://wiki.libsdl.org/SDL3_rtf/RTF_CreateContext
    """
    return SDL_GET_DLL(SDL_RTF_DLL).RTF_CreateContext(_0, _1)

def RTF_Load(_0: LP_RTF_Context, _1: ctypes.c_char_p) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3_rtf/RTF_Load
    """
    return SDL_GET_DLL(SDL_RTF_DLL).RTF_Load(_0, _1)

def RTF_Load_IO(_0: LP_RTF_Context, _1: LP_SDL_IOStream, _2: ctypes.c_long) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3_rtf/RTF_Load_IO
    """
    return SDL_GET_DLL(SDL_RTF_DLL).RTF_Load_IO(_0, _1, _2)

def RTF_GetTitle(_0: LP_RTF_Context) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3_rtf/RTF_GetTitle
    """
    return SDL_GET_DLL(SDL_RTF_DLL).RTF_GetTitle(_0)

def RTF_GetSubject(_0: LP_RTF_Context) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3_rtf/RTF_GetSubject
    """
    return SDL_GET_DLL(SDL_RTF_DLL).RTF_GetSubject(_0)

def RTF_GetAuthor(_0: LP_RTF_Context) -> ctypes.c_char_p:
    """
    https://wiki.libsdl.org/SDL3_rtf/RTF_GetAuthor
    """
    return SDL_GET_DLL(SDL_RTF_DLL).RTF_GetAuthor(_0)

def RTF_GetHeight(_0: LP_RTF_Context, _1: ctypes.c_long) -> ctypes.c_long:
    """
    https://wiki.libsdl.org/SDL3_rtf/RTF_GetHeight
    """
    return SDL_GET_DLL(SDL_RTF_DLL).RTF_GetHeight(_0, _1)

def RTF_Render(_0: LP_RTF_Context, _1: LP_SDL_Rect, _2: ctypes.c_long) -> None:
    """
    https://wiki.libsdl.org/SDL3_rtf/RTF_Render
    """
    return SDL_GET_DLL(SDL_RTF_DLL).RTF_Render(_0, _1, _2)

def RTF_FreeContext(_0: LP_RTF_Context) -> None:
    """
    https://wiki.libsdl.org/SDL3_rtf/RTF_FreeContext
    """
    return SDL_GET_DLL(SDL_RTF_DLL).RTF_FreeContext(_0)

# SDL3_ttf.dll implementation.

def TTF_Version() -> ctypes.c_long:
    """
    This function gets the version of the dynamically linked SDL_ttf library.
    https://wiki.libsdl.org/SDL3_ttf/TTF_Version
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_Version()

def TTF_GetFreeTypeVersion(_0: LP_c_long, _1: LP_c_long, _2: LP_c_long) -> None:
    """
    Query the version of the FreeType library in use.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFreeTypeVersion
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFreeTypeVersion(_0, _1, _2)

def TTF_GetHarfBuzzVersion(_0: LP_c_long, _1: LP_c_long, _2: LP_c_long) -> None:
    """
    Query the version of the HarfBuzz library in use.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetHarfBuzzVersion
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetHarfBuzzVersion(_0, _1, _2)

def TTF_Init() -> ctypes.c_long:
    """
    Initialize SDL_ttf.
    https://wiki.libsdl.org/SDL3_ttf/TTF_Init
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_Init()

def TTF_OpenFont(_0: ctypes.c_char_p, _1: ctypes.c_float) -> LP_TTF_Font:
    """
    Create a font from a file, using a specified point size.
    https://wiki.libsdl.org/SDL3_ttf/TTF_OpenFont
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_OpenFont(_0, _1)

def TTF_OpenFontIO(_0: LP_SDL_IOStream, _1: ctypes.c_bool, _2: ctypes.c_float) -> LP_TTF_Font:
    """
    Create a font from an SDL_IOStream, using a specified point size.
    https://wiki.libsdl.org/SDL3_ttf/TTF_OpenFontIO
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_OpenFontIO(_0, _1, _2)

def TTF_OpenFontWithProperties(_0: ctypes.c_ulong) -> LP_TTF_Font:
    """
    Create a font with the specified properties.
    https://wiki.libsdl.org/SDL3_ttf/TTF_OpenFontWithProperties
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_OpenFontWithProperties(_0)

def TTF_GetFontProperties(_0: LP_TTF_Font) -> ctypes.c_ulong:
    """
    Get the properties associated with a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontProperties
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontProperties(_0)

def TTF_GetFontGeneration(_0: LP_TTF_Font) -> ctypes.c_ulong:
    """
    Get the font generation.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontGeneration
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontGeneration(_0)

def TTF_SetFontSize(_0: LP_TTF_Font, _1: ctypes.c_float) -> ctypes.c_bool:
    """
    Set a font's size dynamically.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontSize
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontSize(_0, _1)

def TTF_SetFontSizeDPI(_0: LP_TTF_Font, _1: ctypes.c_float, _2: ctypes.c_long, _3: ctypes.c_long) -> ctypes.c_bool:
    """
    Set font size dynamically with target resolutions, in dots per inch.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontSizeDPI
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontSizeDPI(_0, _1, _2, _3)

def TTF_GetFontSize(_0: LP_TTF_Font) -> ctypes.c_float:
    """
    Get the size of a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontSize
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontSize(_0)

def TTF_GetFontDPI(_0: LP_TTF_Font, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get font target resolutions, in dots per inch.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontDPI
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontDPI(_0, _1, _2)

def TTF_SetFontStyle(_0: LP_TTF_Font, _1: ctypes.c_long) -> None:
    """
    Set a font's current style.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontStyle
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontStyle(_0, _1)

def TTF_GetFontStyle(_0: LP_TTF_Font) -> ctypes.c_long:
    """
    Query a font's current style.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontStyle
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontStyle(_0)

def TTF_SetFontOutline(_0: LP_TTF_Font, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Set a font's current outline.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontOutline
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontOutline(_0, _1)

def TTF_GetFontOutline(_0: LP_TTF_Font) -> ctypes.c_long:
    """
    Query a font's current outline.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontOutline
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontOutline(_0)

def TTF_SetFontHinting(_0: LP_TTF_Font, _1: ctypes.c_long) -> None:
    """
    Set a font's current hinter setting.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontHinting
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontHinting(_0, _1)

def TTF_GetFontHinting(_0: LP_TTF_Font) -> ctypes.c_long:
    """
    Query a font's current FreeType hinter setting.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontHinting
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontHinting(_0)

def TTF_SetFontSDF(_0: LP_TTF_Font, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontSDF
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontSDF(_0, _1)

def TTF_GetFontSDF(_0: LP_TTF_Font) -> ctypes.c_bool:
    """
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontSDF
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontSDF(_0)

def TTF_SetFontWrapAlignment(_0: LP_TTF_Font, _1: ctypes.c_long) -> None:
    """
    Set a font's current wrap alignment option.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontWrapAlignment
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontWrapAlignment(_0, _1)

def TTF_GetFontWrapAlignment(_0: LP_TTF_Font) -> ctypes.c_long:
    """
    Query a font's current wrap alignment option.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontWrapAlignment
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontWrapAlignment(_0)

def TTF_GetFontHeight(_0: LP_TTF_Font) -> ctypes.c_long:
    """
    Query the total height of a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontHeight
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontHeight(_0)

def TTF_GetFontAscent(_0: LP_TTF_Font) -> ctypes.c_long:
    """
    Query the offset from the baseline to the top of a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontAscent
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontAscent(_0)

def TTF_GetFontDescent(_0: LP_TTF_Font) -> ctypes.c_long:
    """
    Query the offset from the baseline to the bottom of a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontDescent
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontDescent(_0)

def TTF_SetFontLineSkip(_0: LP_TTF_Font, _1: ctypes.c_long) -> None:
    """
    Set the spacing between lines of text for a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontLineSkip
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontLineSkip(_0, _1)

def TTF_GetFontLineSkip(_0: LP_TTF_Font) -> ctypes.c_long:
    """
    Query the spacing between lines of text for a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontLineSkip
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontLineSkip(_0)

def TTF_SetFontKerning(_0: LP_TTF_Font, _1: ctypes.c_bool) -> None:
    """
    Set if kerning is enabled for a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontKerning
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontKerning(_0, _1)

def TTF_GetFontKerning(_0: LP_TTF_Font) -> ctypes.c_bool:
    """
    Query whether or not kerning is enabled for a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontKerning
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontKerning(_0)

def TTF_FontIsFixedWidth(_0: LP_TTF_Font) -> ctypes.c_bool:
    """
    Query whether a font is fixed-width.
    https://wiki.libsdl.org/SDL3_ttf/TTF_FontIsFixedWidth
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_FontIsFixedWidth(_0)

def TTF_FontIsScalable(_0: LP_TTF_Font) -> ctypes.c_bool:
    """
    https://wiki.libsdl.org/SDL3_ttf/TTF_FontIsScalable
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_FontIsScalable(_0)

def TTF_GetFontFamilyName(_0: LP_TTF_Font) -> ctypes.c_char_p:
    """
    Query a font's family name.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontFamilyName
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontFamilyName(_0)

def TTF_GetFontStyleName(_0: LP_TTF_Font) -> ctypes.c_char_p:
    """
    Query a font's style name.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontStyleName
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontStyleName(_0)

def TTF_RenderText_Solid(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: SDL_Color) -> LP_SDL_Surface:
    """
    Render UTF-8 text at fast quality to a new 8-bit surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderText_Solid
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderText_Solid(_0, _1, _2, _3)

def TTF_RenderText_Solid_Wrapped(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: SDL_Color, _4: ctypes.c_long) -> LP_SDL_Surface:
    """
    Render word-wrapped UTF-8 text at fast quality to a new 8-bit surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderText_Solid_Wrapped
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderText_Solid_Wrapped(_0, _1, _2, _3, _4)

def TTF_RenderGlyph_Solid(_0: LP_TTF_Font, _1: ctypes.c_ulong, _2: SDL_Color) -> LP_SDL_Surface:
    """
    Render a single 32-bit glyph at fast quality to a new 8-bit surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderGlyph_Solid
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderGlyph_Solid(_0, _1, _2)

def TTF_SetFontDirection(_0: LP_TTF_Font, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Set direction to be used for text shaping by a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontDirection
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontDirection(_0, _1)

def TTF_GetFontDirection(_0: LP_TTF_Font) -> ctypes.c_long:
    """
    Get direction to be used for text shaping by a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetFontDirection
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetFontDirection(_0)

def TTF_SetFontScript(_0: LP_TTF_Font, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    Set script to be used for text shaping by a font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontScript
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontScript(_0, _1)

def TTF_GetGlyphScript(_0: ctypes.c_ulong, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong) -> ctypes.c_bool:
    """
    Get the script used by a 32-bit codepoint.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetGlyphScript
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetGlyphScript(_0, _1, _2)

def TTF_SetFontLanguage(_0: LP_TTF_Font, _1: ctypes.c_char_p) -> ctypes.c_bool:
    """
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetFontLanguage
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetFontLanguage(_0, _1)

def TTF_FontHasGlyph(_0: LP_TTF_Font, _1: ctypes.c_ulong) -> ctypes.c_bool:
    """
    Check whether a glyph is provided by the font for a UNICODE codepoint.
    https://wiki.libsdl.org/SDL3_ttf/TTF_FontHasGlyph
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_FontHasGlyph(_0, _1)

def TTF_GetGlyphImage(_0: LP_TTF_Font, _1: ctypes.c_ulong) -> LP_SDL_Surface:
    """
    Get the pixel image for a UNICODE codepoint.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetGlyphImage
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetGlyphImage(_0, _1)

def TTF_GetGlyphImageForIndex(_0: LP_TTF_Font, _1: ctypes.c_ulong) -> LP_SDL_Surface:
    """
    Get the pixel image for a character index.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetGlyphImageForIndex
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetGlyphImageForIndex(_0, _1)

def TTF_GetGlyphMetrics(_0: LP_TTF_Font, _1: ctypes.c_ulong, _2: LP_c_long, _3: LP_c_long, _4: LP_c_long, _5: LP_c_long, _6: LP_c_long) -> ctypes.c_bool:
    """
    Query the metrics (dimensions) of a font's glyph for a UNICODE codepoint.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetGlyphMetrics
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetGlyphMetrics(_0, _1, _2, _3, _4, _5, _6)

def TTF_GetGlyphKerning(_0: LP_TTF_Font, _1: ctypes.c_ulong, _2: ctypes.c_ulong, _3: LP_c_long) -> ctypes.c_bool:
    """
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetGlyphKerning
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetGlyphKerning(_0, _1, _2, _3)

def TTF_GetStringSize(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: LP_c_long, _4: LP_c_long) -> ctypes.c_bool:
    """
    Calculate the dimensions of a rendered string of UTF-8 text.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetStringSize
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetStringSize(_0, _1, _2, _3, _4)

def TTF_GetStringSizeWrapped(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: ctypes.c_long, _4: LP_c_long, _5: LP_c_long) -> ctypes.c_bool:
    """
    Calculate the dimensions of a rendered string of UTF-8 text.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetStringSizeWrapped
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetStringSizeWrapped(_0, _1, _2, _3, _4, _5)

def TTF_MeasureString(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: ctypes.c_long, _4: LP_c_long, _5: LP_c_ulonglong) -> ctypes.c_bool:
    """
    Calculate how much of a UTF-8 string will fit in a given width.
    https://wiki.libsdl.org/SDL3_ttf/TTF_MeasureString
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_MeasureString(_0, _1, _2, _3, _4, _5)

def TTF_RenderText_Shaded(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: SDL_Color, _4: SDL_Color) -> LP_SDL_Surface:
    """
    Render UTF-8 text at high quality to a new 8-bit surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderText_Shaded
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderText_Shaded(_0, _1, _2, _3, _4)

def TTF_RenderText_Shaded_Wrapped(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: SDL_Color, _4: SDL_Color, _5: ctypes.c_long) -> LP_SDL_Surface:
    """
    Render word-wrapped UTF-8 text at high quality to a new 8-bit surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderText_Shaded_Wrapped
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderText_Shaded_Wrapped(_0, _1, _2, _3, _4, _5)

def TTF_RenderGlyph_Shaded(_0: LP_TTF_Font, _1: ctypes.c_ulong, _2: SDL_Color, _3: SDL_Color) -> LP_SDL_Surface:
    """
    Render a single UNICODE codepoint at high quality to a new 8-bit surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderGlyph_Shaded
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderGlyph_Shaded(_0, _1, _2, _3)

def TTF_RenderText_Blended(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: SDL_Color) -> LP_SDL_Surface:
    """
    Render UTF-8 text at high quality to a new ARGB surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderText_Blended
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderText_Blended(_0, _1, _2, _3)

def TTF_RenderText_Blended_Wrapped(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: SDL_Color, _4: ctypes.c_long) -> LP_SDL_Surface:
    """
    Render word-wrapped UTF-8 text at high quality to a new ARGB surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderText_Blended_Wrapped
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderText_Blended_Wrapped(_0, _1, _2, _3, _4)

def TTF_RenderGlyph_Blended(_0: LP_TTF_Font, _1: ctypes.c_ulong, _2: SDL_Color) -> LP_SDL_Surface:
    """
    Render a single UNICODE codepoint at high quality to a new ARGB surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderGlyph_Blended
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderGlyph_Blended(_0, _1, _2)

def TTF_RenderText_LCD(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: SDL_Color, _4: SDL_Color) -> LP_SDL_Surface:
    """
    Render UTF-8 text at LCD subpixel quality to a new ARGB surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderText_LCD
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderText_LCD(_0, _1, _2, _3, _4)

def TTF_RenderText_LCD_Wrapped(_0: LP_TTF_Font, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong, _3: SDL_Color, _4: SDL_Color, _5: ctypes.c_long) -> LP_SDL_Surface:
    """
    Render word-wrapped UTF-8 text at LCD subpixel quality to a new ARGB surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderText_LCD_Wrapped
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderText_LCD_Wrapped(_0, _1, _2, _3, _4, _5)

def TTF_RenderGlyph_LCD(_0: LP_TTF_Font, _1: ctypes.c_ulong, _2: SDL_Color, _3: SDL_Color) -> LP_SDL_Surface:
    """
    Render a single UNICODE codepoint at LCD subpixel quality to a new ARGB surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_RenderGlyph_LCD
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_RenderGlyph_LCD(_0, _1, _2, _3)

def TTF_CreateSurfaceTextEngine() -> LP_TTF_TextEngine:
    """
    Create a text engine for drawing text on SDL surfaces.
    https://wiki.libsdl.org/SDL3_ttf/TTF_CreateSurfaceTextEngine
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_CreateSurfaceTextEngine()

def TTF_DrawSurfaceText(_0: LP_TTF_Text, _1: ctypes.c_long, _2: ctypes.c_long, _3: LP_SDL_Surface) -> ctypes.c_bool:
    """
    Draw text to an SDL surface.
    https://wiki.libsdl.org/SDL3_ttf/TTF_DrawSurfaceText
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_DrawSurfaceText(_0, _1, _2, _3)

def TTF_DestroySurfaceTextEngine(_0: LP_TTF_TextEngine) -> None:
    """
    Destroy a text engine created for drawing text on SDL surfaces.
    https://wiki.libsdl.org/SDL3_ttf/TTF_DestroySurfaceTextEngine
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_DestroySurfaceTextEngine(_0)

def TTF_CreateRendererTextEngine(_0: LP_SDL_Renderer) -> LP_TTF_TextEngine:
    """
    Create a text engine for drawing text on an SDL renderer.
    https://wiki.libsdl.org/SDL3_ttf/TTF_CreateRendererTextEngine
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_CreateRendererTextEngine(_0)

def TTF_DrawRendererText(_0: LP_TTF_Text, _1: ctypes.c_float, _2: ctypes.c_float) -> ctypes.c_bool:
    """
    Draw text to an SDL renderer.
    https://wiki.libsdl.org/SDL3_ttf/TTF_DrawRendererText
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_DrawRendererText(_0, _1, _2)

def TTF_DestroyRendererTextEngine(_0: LP_TTF_TextEngine) -> None:
    """
    Destroy a text engine created for drawing text on an SDL renderer.
    https://wiki.libsdl.org/SDL3_ttf/TTF_DestroyRendererTextEngine
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_DestroyRendererTextEngine(_0)

def TTF_CreateGPUTextEngine(_0: LP_SDL_GPUDevice) -> LP_TTF_TextEngine:
    """
    Create a text engine for drawing text with the SDL GPU API.
    https://wiki.libsdl.org/SDL3_ttf/TTF_CreateGPUTextEngine
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_CreateGPUTextEngine(_0)

def TTF_GetGPUTextDrawData(_0: LP_TTF_Text) -> LP_TTF_GPUAtlasDrawSequence:
    """
    Get the geometry data needed for drawing the text.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetGPUTextDrawData
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetGPUTextDrawData(_0)

def TTF_DestroyGPUTextEngine(_0: LP_TTF_TextEngine) -> None:
    """
    Destroy a text engine created for drawing text with the SDL GPU API.
    https://wiki.libsdl.org/SDL3_ttf/TTF_DestroyGPUTextEngine
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_DestroyGPUTextEngine(_0)

def TTF_CreateText(_0: LP_TTF_TextEngine, _1: LP_TTF_Font, _2: ctypes.c_char_p, _3: ctypes.c_ulonglong) -> LP_TTF_Text:
    """
    Create a text object from UTF-8 text and a text engine.
    https://wiki.libsdl.org/SDL3_ttf/TTF_CreateText
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_CreateText(_0, _1, _2, _3)

def TTF_GetTextProperties(_0: LP_TTF_Text) -> ctypes.c_ulong:
    """
    Get the properties associated with a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextProperties
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextProperties(_0)

def TTF_SetTextEngine(_0: LP_TTF_Text, _1: LP_TTF_TextEngine) -> ctypes.c_bool:
    """
    Set the text engine used by a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetTextEngine
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetTextEngine(_0, _1)

def TTF_GetTextEngine(_0: LP_TTF_Text) -> LP_TTF_TextEngine:
    """
    Get the text engine used by a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextEngine
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextEngine(_0)

def TTF_SetTextFont(_0: LP_TTF_Text, _1: LP_TTF_Font) -> ctypes.c_bool:
    """
    Set the font used by a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetTextFont
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetTextFont(_0, _1)

def TTF_GetTextFont(_0: LP_TTF_Text) -> LP_TTF_Font:
    """
    Get the font used by a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextFont
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextFont(_0)

def TTF_SetTextColor(_0: LP_TTF_Text, _1: ctypes.c_ubyte, _2: ctypes.c_ubyte, _3: ctypes.c_ubyte, _4: ctypes.c_ubyte) -> ctypes.c_bool:
    """
    Set the color of a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetTextColor
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetTextColor(_0, _1, _2, _3, _4)

def TTF_SetTextColorFloat(_0: LP_TTF_Text, _1: ctypes.c_float, _2: ctypes.c_float, _3: ctypes.c_float, _4: ctypes.c_float) -> ctypes.c_bool:
    """
    Set the color of a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetTextColorFloat
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetTextColorFloat(_0, _1, _2, _3, _4)

def TTF_GetTextColor(_0: LP_TTF_Text, _1: LP_c_ubyte, _2: LP_c_ubyte, _3: LP_c_ubyte, _4: LP_c_ubyte) -> ctypes.c_bool:
    """
    Get the color of a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextColor
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextColor(_0, _1, _2, _3, _4)

def TTF_GetTextColorFloat(_0: LP_TTF_Text, _1: LP_c_float, _2: LP_c_float, _3: LP_c_float, _4: LP_c_float) -> ctypes.c_bool:
    """
    Get the color of a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextColorFloat
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextColorFloat(_0, _1, _2, _3, _4)

def TTF_SetTextPosition(_0: LP_TTF_Text, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Set the position of a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetTextPosition
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetTextPosition(_0, _1, _2)

def TTF_GetTextPosition(_0: LP_TTF_Text, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the position of a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextPosition
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextPosition(_0, _1, _2)

def TTF_SetTextWrapWidth(_0: LP_TTF_Text, _1: ctypes.c_long) -> ctypes.c_bool:
    """
    Set whether wrapping is enabled on a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetTextWrapWidth
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetTextWrapWidth(_0, _1)

def TTF_GetTextWrapWidth(_0: LP_TTF_Text, _1: LP_c_long) -> ctypes.c_bool:
    """
    Get whether wrapping is enabled on a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextWrapWidth
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextWrapWidth(_0, _1)

def TTF_SetTextWrapWhitespaceVisible(_0: LP_TTF_Text, _1: ctypes.c_bool) -> ctypes.c_bool:
    """
    Set whether whitespace should be visible when wrapping a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetTextWrapWhitespaceVisible
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetTextWrapWhitespaceVisible(_0, _1)

def TTF_TextWrapWhitespaceVisible(_0: LP_TTF_Text) -> ctypes.c_bool:
    """
    Return whether whitespace is shown when wrapping a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_TextWrapWhitespaceVisible
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_TextWrapWhitespaceVisible(_0)

def TTF_SetTextString(_0: LP_TTF_Text, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong) -> ctypes.c_bool:
    """
    Set the UTF-8 text used by a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_SetTextString
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_SetTextString(_0, _1, _2)

def TTF_InsertTextString(_0: LP_TTF_Text, _1: ctypes.c_long, _2: ctypes.c_char_p, _3: ctypes.c_ulonglong) -> ctypes.c_bool:
    """
    Insert UTF-8 text into a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_InsertTextString
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_InsertTextString(_0, _1, _2, _3)

def TTF_AppendTextString(_0: LP_TTF_Text, _1: ctypes.c_char_p, _2: ctypes.c_ulonglong) -> ctypes.c_bool:
    """
    Append UTF-8 text to a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_AppendTextString
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_AppendTextString(_0, _1, _2)

def TTF_DeleteTextString(_0: LP_TTF_Text, _1: ctypes.c_long, _2: ctypes.c_long) -> ctypes.c_bool:
    """
    Delete UTF-8 text from a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_DeleteTextString
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_DeleteTextString(_0, _1, _2)

def TTF_GetTextSize(_0: LP_TTF_Text, _1: LP_c_long, _2: LP_c_long) -> ctypes.c_bool:
    """
    Get the size of a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextSize
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextSize(_0, _1, _2)

def TTF_GetTextSubString(_0: LP_TTF_Text, _1: ctypes.c_long, _2: LP_TTF_SubString) -> ctypes.c_bool:
    """
    Get the substring of a text object that surrounds a text offset.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextSubString
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextSubString(_0, _1, _2)

def TTF_GetTextSubStringForLine(_0: LP_TTF_Text, _1: ctypes.c_long, _2: LP_TTF_SubString) -> ctypes.c_bool:
    """
    Get the substring of a text object that contains the given line.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextSubStringForLine
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextSubStringForLine(_0, _1, _2)

def TTF_GetTextSubStringsForRange(_0: LP_TTF_Text, _1: ctypes.c_long, _2: ctypes.c_long, _3: LP_c_long) -> LP_LP_TTF_SubString:
    """
    Get the substrings of a text object that contain a range of text.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextSubStringsForRange
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextSubStringsForRange(_0, _1, _2, _3)

def TTF_GetTextSubStringForPoint(_0: LP_TTF_Text, _1: ctypes.c_long, _2: ctypes.c_long, _3: LP_TTF_SubString) -> ctypes.c_bool:
    """
    Get the portion of a text string that is closest to a point.
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetTextSubStringForPoint
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetTextSubStringForPoint(_0, _1, _2, _3)

def TTF_GetPreviousTextSubString(_0: LP_TTF_Text, _1: LP_TTF_SubString, _2: LP_TTF_SubString) -> ctypes.c_bool:
    """
    Get the previous substring in a text object
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetPreviousTextSubString
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetPreviousTextSubString(_0, _1, _2)

def TTF_GetNextTextSubString(_0: LP_TTF_Text, _1: LP_TTF_SubString, _2: LP_TTF_SubString) -> ctypes.c_bool:
    """
    Get the next substring in a text object
    https://wiki.libsdl.org/SDL3_ttf/TTF_GetNextTextSubString
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_GetNextTextSubString(_0, _1, _2)

def TTF_UpdateText(_0: LP_TTF_Text) -> None:
    """
    Update the layout of a text object.
    https://wiki.libsdl.org/SDL3_ttf/TTF_UpdateText
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_UpdateText(_0)

def TTF_DestroyText(_0: LP_TTF_Text) -> None:
    """
    Destroy a text object created by a text engine.
    https://wiki.libsdl.org/SDL3_ttf/TTF_DestroyText
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_DestroyText(_0)

def TTF_CloseFont(_0: LP_TTF_Font) -> None:
    """
    Dispose of a previously-created font.
    https://wiki.libsdl.org/SDL3_ttf/TTF_CloseFont
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_CloseFont(_0)

def TTF_Quit() -> None:
    """
    Deinitialize SDL_ttf.
    https://wiki.libsdl.org/SDL3_ttf/TTF_Quit
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_Quit()

def TTF_WasInit() -> ctypes.c_long:
    """
    Check if SDL_ttf is initialized.
    https://wiki.libsdl.org/SDL3_ttf/TTF_WasInit
    """
    return SDL_GET_DLL(SDL_TTF_DLL).TTF_WasInit()