[package]
edition = "2021"
name = "sdl3"
version = "0.18.3"
authors = [
"Tony Aldridge <tony@angry-lawyer.com>",
"Cobrand <cobrandw@gmail.com>",
"Mischa Spiegelmock <me@mish.dev>",
"Lokathor <@Lokathor@mastodon.social>",
]
build = "build.rs"
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Bindings to SDL3, a cross-platform library to abstract the platform-specific details for building applications."
documentation = "https://docs.rs/sdl3/latest/sdl3/"
readme = "README.md"
keywords = [
"graphics",
"engine",
"cross-platform",
"input",
"audio",
]
categories = [
"rendering",
"api-bindings",
"game-engines",
"multimedia",
]
license = "MIT"
repository = "https://github.com/vhspace/sdl3-rs"
resolver = "2"
[package.metadata.docs.rs]
features = [
"default",
"raw-window-handle",
]
[package.metadata.vcpkg]
dependencies = ["sdl3"]
dev-dependencies = ["sdl3"]
git = "https://github.com/microsoft/vcpkg"
rev = "b322364"
[package.metadata.vcpkg.target.x86_64-pc-windows-msvc]
triplet = "x64-windows-static-md"
[features]
ash = ["sdl3-sys/use-ash-v0-38"]
build-from-source = [
"sdl3-sys/build-from-source",
"sdl3-image-sys?/build-from-source",
"sdl3-ttf-sys?/build-from-source",
"sdl3-mixer-sys?/build-from-source",
]
build-from-source-static = [
"sdl3-sys/build-from-source-static",
"sdl3-image-sys?/build-from-source-static",
"sdl3-ttf-sys?/build-static-vendored",
"sdl3-mixer-sys?/build-static-vendored",
]
build-from-source-unix-console = ["sdl3-sys/sdl-unix-console-build"]
default = []
gfx = ["c_vec"]
hidapi = []
image = ["dep:sdl3-image-sys"]
link-framework = ["sdl3-sys/link-framework"]
main = ["dep:sdl3-main"]
mixer = ["dep:sdl3-mixer-sys"]
raw-window-handle = [
"dep:raw-window-handle",
"dep:objc2",
]
static-link = ["sdl3-sys/link-static"]
test-mode = []
ttf = ["dep:sdl3-ttf-sys"]
unsafe_textures = []
use-pkg-config = ["sdl3-sys/use-pkg-config"]
use-vcpkg = ["sdl3-sys/use-vcpkg"]
[lib]
name = "sdl3"
path = "src/sdl3/lib.rs"
[[example]]
name = "animation"
path = "examples/animation.rs"
[[example]]
name = "audio-capture-and-replay"
path = "examples/audio-capture-and-replay.rs"
[[example]]
name = "audio-queue-squarewave"
path = "examples/audio-queue-squarewave.rs"
[[example]]
name = "audio-squarewave"
path = "examples/audio-squarewave.rs"
[[example]]
name = "audio-wav"
path = "examples/audio-wav.rs"
[[example]]
name = "audio-whitenoise"
path = "examples/audio-whitenoise.rs"
[[example]]
name = "cursor"
path = "examples/cursor.rs"
required-features = ["image"]
[[example]]
name = "demo"
path = "examples/demo.rs"
[[example]]
name = "demo_games_02_woodeneye"
path = "examples/demo_games/a02_woodeneye_008.rs"
[[example]]
name = "dialog"
path = "examples/dialog.rs"
[[example]]
name = "draw_triangle"
path = "examples/draw_triangle.rs"
[[example]]
name = "events"
path = "examples/events.rs"
[[example]]
name = "filesystem"
path = "examples/filesystem.rs"
[[example]]
name = "game-of-life"
path = "examples/game-of-life.rs"
[[example]]
name = "game-of-life-unsafe-textures"
path = "examples/game-of-life-unsafe-textures.rs"
required-features = ["unsafe_textures"]
[[example]]
name = "gamepad"
path = "examples/gamepad.rs"
[[example]]
name = "gfx-demo"
path = "examples/gfx-demo.rs"
required-features = ["gfx"]
[[example]]
name = "gpu-clear"
path = "examples/gpu-clear.rs"
[[example]]
name = "gpu-cube"
path = "examples/gpu-cube.rs"
[[example]]
name = "gpu-particles"
path = "examples/gpu-particles.rs"
[[example]]
name = "gpu-texture"
path = "examples/gpu-texture.rs"
[[example]]
name = "gpu-triangle"
path = "examples/gpu-triangle.rs"
[[example]]
name = "haptic"
path = "examples/haptic.rs"
[[example]]
name = "image-demo"
path = "examples/image-demo.rs"
required-features = ["image"]
[[example]]
name = "joystick"
path = "examples/joystick.rs"
[[example]]
name = "keyboard-state"
path = "examples/keyboard-state.rs"
[[example]]
name = "log"
path = "examples/log.rs"
[[example]]
name = "main-callbacks-api"
path = "examples/main-callbacks-api.rs"
required-features = ["main"]
[[example]]
name = "message-box"
path = "examples/message-box.rs"
[[example]]
name = "mixer-demo"
path = "examples/mixer-demo.rs"
required-features = ["mixer"]
[[example]]
name = "mouse-state"
path = "examples/mouse-state.rs"
[[example]]
name = "no-renderer"
path = "examples/no-renderer.rs"
[[example]]
name = "properties"
path = "examples/properties.rs"
[[example]]
name = "raw-window-handle-with-wgpu"
path = "examples/raw-window-handle-with-wgpu/main.rs"
required-features = ["raw-window-handle"]
[[example]]
name = "relative-mouse-state"
path = "examples/relative-mouse-state.rs"
[[example]]
name = "render-geometry"
path = "examples/render-geometry.rs"
[[example]]
name = "renderer-target"
path = "examples/renderer-target.rs"
[[example]]
name = "renderer-texture"
path = "examples/renderer-texture.rs"
[[example]]
name = "renderer-yuv"
path = "examples/renderer-yuv.rs"
[[example]]
name = "renderer_01_change_the_color"
path = "examples/renderer/a01_change_the_color.rs"
[[example]]
name = "renderer_02_primitives"
path = "examples/renderer/a02_primitives.rs"
[[example]]
name = "renderer_03_lines"
path = "examples/renderer/a03_lines.rs"
[[example]]
name = "renderer_04_points"
path = "examples/renderer/a04_points.rs"
[[example]]
name = "renderer_05_rectangles"
path = "examples/renderer/a05_rectangles.rs"
[[example]]
name = "renderer_06_textures_lifetime_solution"
path = "examples/renderer/a06_textures_lifetime_solution.rs"
required-features = ["unsafe_textures"]
[[example]]
name = "renderer_07_streaming_textures"
path = "examples/renderer/a07_streaming_textures.rs"
required-features = ["unsafe_textures"]
[[example]]
name = "renderer_08_rotating_textures"
path = "examples/renderer/a08_rotating_textures.rs"
required-features = ["unsafe_textures"]
[[example]]
name = "renderer_09_scaling_textures"
path = "examples/renderer/a09_scaling_textures.rs"
required-features = ["unsafe_textures"]
[[example]]
name = "resource-manager"
path = "examples/resource-manager.rs"
required-features = [
"ttf",
"image",
]
[[example]]
name = "sensors"
path = "examples/sensors.rs"
required-features = ["hidapi"]
[[example]]
name = "spinning_cube"
path = "examples/spinning_cube.rs"
[[example]]
name = "ttf-demo"
path = "examples/ttf-demo.rs"
required-features = ["ttf"]
[[example]]
name = "virtual-joysticks"
path = "examples/virtual-joysticks.rs"
[[example]]
name = "window-properties"
path = "examples/window-properties.rs"
[[test]]
name = "audio"
path = "tests/audio.rs"
[[test]]
name = "clipboard"
path = "tests/clipboard.rs"
[[test]]
name = "events"
path = "tests/events.rs"
[[test]]
name = "iostream"
path = "tests/iostream.rs"
[[test]]
name = "raw_window_handle"
path = "tests/raw_window_handle.rs"
[[test]]
name = "render"
path = "tests/render.rs"
[[test]]
name = "video"
path = "tests/video.rs"
[dependencies.bitflags]
version = "2.11.1"
[dependencies.c_vec]
version = "2"
optional = true
[dependencies.libc]
version = "0.2.185"
[dependencies.raw-window-handle]
version = "0.6.2"
optional = true
[dependencies.sdl3-image-sys]
version = "0.6"
optional = true
[dependencies.sdl3-main]
version = "0.6"
optional = true
[dependencies.sdl3-mixer-sys]
version = "0.6"
optional = true
[dependencies.sdl3-sys]
version = "0.6.5"
features = ["metadata"]
[dependencies.sdl3-ttf-sys]
version = "0.6"
optional = true
[dev-dependencies.env_logger]
version = "0.11.10"
[dev-dependencies.pollster]
version = "0.4.0"
[dev-dependencies.rand]
version = "0.10.1"
[dev-dependencies.wgpu]
version = "29.0.1"
features = ["spirv"]
[build-dependencies.sdl3-sys]
version = "0.6.5"
features = ["only-metadata"]
[target.'cfg(target_os = "macos")'.dependencies.objc2]
version = "0.6.4"
optional = true
[target."cfg(windows)".dev-dependencies.windows]
version = "0.62"
[target."cfg(windows)".dev-dependencies.windows-core]
version = "0.62"
features = ["std"]