SDL3 Wiki — Offline Reference
This skill is an offline mirror of the official SDL3 wiki at
https://wiki.libsdl.org/SDL3/, sourced from the upstream
libsdl-org/sdlwiki repository
(SDL3/ subtree). The original pages were already authored in CommonMark
Markdown, so no format conversion was required — every page in
references/ is the exact source published on the wiki,
except that pure redirect pages have been eliminated and references to them
rewritten to point at the destination page (see UPDATING.md).
- License of the wiki content: Creative Commons Attribution 4.0 International (CC BY 4.0). Stated by the wiki itself in references/FAQLicensing.md: "The wiki content is under the Creative Commons Attribution 4.0 International license." This is not the same as SDL's library license (which is the zlib license); the wiki and the library are licensed separately.
- Attribution: "SDL3 Wiki" by the SDL community
(https://github.com/libsdl-org/sdlwiki contributors), used under
CC BY 4.0. Individual page contents are unmodified except that links
pointing at upstream redirect pages have been retargeted at the redirect
destination. The only additions in this skill are this
SKILL.md,PAGE_INDEX.md,API_INDEX.md, andUPDATING.md, which are derivative organizational material released under the same CC BY 4.0 terms. - Pages mirrored: 2,371
- API symbols indexed: 4,119 (functions, structs, enums, enumerator values, macros, datatypes)
How to use this skill
- Don't guess. SDL3 renamed and reshaped a lot of SDL2 surface area
(e.g.
SDL_RWops→SDL_IOStream,SDL_GetWindowSizesemantics, the whole newSDL_gpu.h/SDL_camera.h/SDL_storage.hsubsystems). When in doubt, look the symbol up here before writing code. - Pick the right entry point from the TOC below:
- Need a specific function/struct/enum? → API Symbol Index
- Browsing by subsystem (audio, video, GPU, input…)? → API by Category (the wiki's own grouped TOC)
- Migrating from SDL2? → README-migration and SDL12MigrationGuide
- Looking for any page by name? → Full Page Index
- Cross-link convention. Inside the wiki, links like
[SDL_Foo](SDL_Foo)are bare page names; in this skill they resolve toreferences/SDL_Foo.md. When you follow a link from a wiki page, prependreferences/and append.mdif the link doesn't already include them. Six pages whose names collide only by letter case (so they cannot coexist on Windows/macOS filesystems) were renamed with a__uppercase/__lowercasesuffix and their inbound links retargeted — e.g. the natural-logSDL_loglives atreferences/SDL_log__lowercase.md(so it no longer clashes with the loggingSDL_Log). See UPDATING.md for the full list. - Image links may be broken. A few pages reference images that live on the rendered wiki only — focus on the text, which is complete.
Top-Level Table of Contents
Each entry below points to a sub-TOC — typically one of the wiki's own
auto-generated Category* pages, which then links to every individual page
in that section. This mirrors the wiki's own navigation structure rather
than imposing a new one.
| Section | Sub-TOC | What's in it |
|---|---|---|
| Front page | FrontPage | Wiki landing page, top-level orientation. |
| API by category | APIByCategory | Subsystem-grouped index of all SDL3 headers (Basics, Video, Input, Audio, GPU, Threads, Time, File I/O, Platform, etc.). The canonical browsing entry point. |
| Full API listing | CategoryAPI | Master index of every API symbol (alphabetic). |
| API symbol indexes (by symbol kind) | see API_INDEX.md | Functions / Structs / Enums / Enumerator values / Macros / Datatypes — each listing every symbol of that kind, with links. |
| Full page index | PAGE_INDEX.md | Every actual wiki page (2,371 of them), grouped into Guide / Category / SDL_* / Integer types. |
| Quick reference | QuickReference | One-page cheat sheet of the entire SDL3 API. Also: QuickReferenceNoUnicode. |
| FAQs | FAQs | Hub for FAQGeneral, FAQDevelopment, FAQUsingSDL, FAQLicensing, FAQCommunities. |
| Tutorials | Tutorials | Curated tutorial list (most tutorials live off-wiki at examples.libsdl.org). |
| Getting started | SourceCode | Plus IDE/build introductions: INTRO-cmake, INTRO-visualstudio, INTRO-xcode, INTRO-mingw, INTRO-androidstudio, INTRO-emscripten. |
| What's new in SDL3 | NewFeatures | High-level feature additions over SDL2. |
| SDL2 → SDL3 migration | README-migration | Detailed migration guide. Also SDL12MigrationGuide for the older SDL1 → SDL2 transition (still useful context). |
| Platform & topic READMEs | READMEs | Per-platform setup and notes (Windows, macOS, Linux, iOS, Android, Wayland, Haiku, BSD, KMS/BSD, Emscripten, GDK, RISC OS, SteamOS, PS2/PS4/PS5/PSP/Vita, N3DS, Switch, NGage, QNX, DOS, OpenXR) and topic READMEs: main-functions, highdpi, touch, strings, versions, dynapi, porting, contributing, documentation-rules. |
| Reference / further reading | Articles, Books, LanguageBindings, Libraries, SupportedPlatforms, EnvironmentVariables, HowToReportBugs | Misc reference material. |
| Subsystem sub-TOCs | see table below | Each SDL subsystem has its own Category* page that lists every function, struct, enum, and macro for that header. |
Subsystem sub-TOCs
These are the wiki's own per-subsystem index pages. Each one is a self-contained sub-TOC — open it to see every symbol in that subsystem with links to the individual symbol pages.
Basics
- CategoryMain — Application entry points (
SDL_main.h) - CategoryInit — Initialization and shutdown (
SDL_init.h) - CategoryHints — Configuration hints (
SDL_hints.h) - CategoryProperties — Object properties (
SDL_properties.h) - CategoryError — Error handling (
SDL_error.h) - CategoryLog — Logging (
SDL_log.h) - CategoryAssert — Assertions (
SDL_assert.h) - CategoryVersion — Version querying (
SDL_version.h)
Video
- CategoryVideo — Display and window management (
SDL_video.h) - CategoryRender — 2D accelerated rendering (
SDL_render.h) - CategoryPixels — Pixel formats (
SDL_pixels.h) - CategoryBlendmode — Blend modes (
SDL_blendmode.h) - CategoryRect — Rectangle math (
SDL_rect.h) - CategorySurface — Software surfaces (
SDL_surface.h) - CategoryClipboard — Clipboard (
SDL_clipboard.h) - CategoryVulkan — Vulkan integration (
SDL_vulkan.h) - CategoryMetal — Metal integration (
SDL_metal.h) - CategoryOpenXR — OpenXR integration (
SDL_openxr.h) - CategoryCamera — Camera capture (
SDL_camera.h)
Input
- CategoryEvents — Event handling (
SDL_events.h) - CategoryKeyboard — Keyboard (
SDL_keyboard.h) - CategoryKeycode — Keycodes (
SDL_keycode.h) - CategoryScancode — Scancodes (
SDL_scancode.h) - CategoryMouse — Mouse (
SDL_mouse.h) - CategoryJoystick — Joystick (
SDL_joystick.h) - CategoryGamepad — Gamepad (
SDL_gamepad.h) - CategoryTouch — Touch (
SDL_touch.h) - CategoryPen — Pen / stylus (
SDL_pen.h) - CategorySensor — Sensors (
SDL_sensor.h) - CategoryHIDAPI — Raw HID API (
SDL_hidapi.h) - CategoryHaptic — Force feedback (
SDL_haptic.h) - CategoryGameController — Legacy game controller (kept for reference)
Audio
- CategoryAudio — Audio playback, recording, mixing (
SDL_audio.h)
GPU
- CategoryGPU — 3D rendering and GPU compute (
SDL_gpu.h)
Threads / Time
- CategoryThread — Thread management (
SDL_thread.h) - CategoryMutex — Synchronization primitives (
SDL_mutex.h) - CategoryAtomic — Atomic operations (
SDL_atomic.h) - CategoryTimer — Timers (
SDL_timer.h) - CategoryTime — Date and time (
SDL_time.h)
File and I/O
- CategoryFilesystem — Filesystem (
SDL_filesystem.h) - CategoryStorage — Storage abstraction (
SDL_storage.h) - CategoryIOStream — I/O streams (
SDL_iostream.h) - CategoryAsyncIO — Async I/O (
SDL_asyncio.h)
Platform / CPU
- CategoryPlatform — Platform detection (
SDL_platform.h) - CategoryCPUInfo — CPU feature detection (
SDL_cpuinfo.h) - CategoryIntrinsics — Compiler intrinsics (
SDL_intrin.h) - CategoryEndian — Byte order / swap (
SDL_endian.h) - CategoryBits — Bit manipulation (
SDL_bits.h)
Additional
- CategorySharedObject — DLL / shared object loading (
SDL_loadso.h) - CategoryProcess — Process control (
SDL_process.h) - CategoryPower — Power management (
SDL_power.h) - CategoryMessagebox — Message boxes (
SDL_messagebox.h) - CategoryDialog — File dialogs (
SDL_dialog.h) - CategoryTray — System tray (
SDL_tray.h) - CategoryLocale — Locale info (
SDL_locale.h) - CategorySystem — Platform-specific extras (
SDL_system.h) - CategoryStdinc — Standard library replacements (
SDL_stdinc.h) - CategoryGUID — GUIDs (
SDL_guid.h) - CategoryMisc — Miscellaneous (
SDL_misc.h)
Symbol-kind indexes (across all subsystems)
- CategoryAPI — Every API symbol, alphabetic.
- CategoryAPIFunction — All functions (1,305).
- CategoryAPIStruct — All structs (121).
- CategoryAPIEnum — All enum types (95).
- CategoryAPIEnumerators — All enumerator values (1,144).
- CategoryAPIMacro — All preprocessor macros (1,317).
- CategoryAPIDatatype — All typedefs / datatypes (137).
- CategoryAPICategory — Index of category pages.
Repository layout
sdl3-wiki/
├── SKILL.md ← this file (top-level TOC)
├── PAGE_INDEX.md ← every wiki page, grouped alphabetically
├── API_INDEX.md ← every API symbol, grouped by kind
├── UPDATING.md ← maintainer notes: snapshot, refresh procedure
└── references/ ← wiki's SDL3/ tree, with redirect pages removed
├── FrontPage.md
├── APIByCategory.md
├── Category*.md ← per-subsystem and per-symbol-kind sub-TOCs (70 files)
├── SDL_*.md ← one page per documented API symbol (2,222 files)
├── README-*.md ← platform and topic READMEs (36 files)
└── (FAQ, Tutorials, Articles, intro guides, …)
For maintainers: snapshot provenance, reduction stats, and the procedure for
refreshing references/ from upstream live in UPDATING.md.