The X11 backend used System-V shared memory to communicate shared buffers to the server, but rustix does not support SysV SHM so we had to use libc in this backend. However, there is an alternate X11 API which uses POSIX shared memory, which rustix does support. This PR switches the X11 backend to POSIX shared memory and purges the previous usages of libc. The goal is to remove libc totally. Therefore this PR also removes the default libc dependency from rustix. Signed-off-by: John Nunley <dev@notgull.net>
121 lines
3.7 KiB
TOML
121 lines
3.7 KiB
TOML
[package]
|
|
name = "softbuffer"
|
|
version = "0.3.1"
|
|
edition = "2021"
|
|
license = "MIT OR Apache-2.0"
|
|
description = "Cross-platform software buffer"
|
|
documentation = "https://docs.rs/softbuffer"
|
|
readme = "README.md"
|
|
repository = "https://github.com/rust-windowing/softbuffer"
|
|
keywords = ["framebuffer", "windowing"]
|
|
categories = ["game-development", "graphics", "gui", "multimedia", "rendering"]
|
|
exclude = ["examples"]
|
|
rust-version = "1.65.0"
|
|
|
|
[[bench]]
|
|
name = "buffer_mut"
|
|
harness = false
|
|
|
|
[features]
|
|
default = ["kms", "x11", "x11-dlopen", "wayland", "wayland-dlopen"]
|
|
kms = ["bytemuck", "drm", "rustix"]
|
|
wayland = ["wayland-backend", "wayland-client", "memmap2", "rustix", "fastrand"]
|
|
wayland-dlopen = ["wayland-sys/dlopen"]
|
|
x11 = ["as-raw-xcb-connection", "bytemuck", "fastrand", "rustix", "tiny-xlib", "x11rb"]
|
|
x11-dlopen = ["tiny-xlib/dlopen", "x11rb/dl-libxcb"]
|
|
|
|
[dependencies]
|
|
log = "0.4.17"
|
|
raw-window-handle = "0.5.0"
|
|
|
|
[target.'cfg(all(unix, not(any(target_vendor = "apple", target_os = "android", target_os = "redox"))))'.dependencies]
|
|
as-raw-xcb-connection = { version = "1.0.0", optional = true }
|
|
bytemuck = { version = "1.12.3", optional = true }
|
|
drm = { version = "0.10.0", default-features = false, optional = true }
|
|
fastrand = { version = "2.0.0", optional = true }
|
|
memmap2 = { version = "0.9.0", optional = true }
|
|
rustix = { version = "0.38.19", features = ["fs", "mm", "shm", "std"], default-features = false, optional = true }
|
|
tiny-xlib = { version = "0.2.1", optional = true }
|
|
wayland-backend = { version = "0.3.0", features = ["client_system"], optional = true }
|
|
wayland-client = { version = "0.31.0", optional = true }
|
|
wayland-sys = "0.31.0"
|
|
x11rb = { version = "0.12.0", features = ["allow-unsafe-code", "shm"], optional = true }
|
|
|
|
[target.'cfg(target_os = "windows")'.dependencies.windows-sys]
|
|
version = "0.48.0"
|
|
features = ["Win32_Graphics_Gdi", "Win32_UI_WindowsAndMessaging", "Win32_Foundation"]
|
|
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
bytemuck = { version = "1.12.3", features = ["extern_crate_alloc"] }
|
|
cocoa = "0.25.0"
|
|
core-graphics = "0.23.1"
|
|
foreign-types = "0.5.0"
|
|
objc = "0.2.7"
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies]
|
|
js-sys = "0.3.63"
|
|
wasm-bindgen = "0.2.86"
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
|
|
version = "0.3.55"
|
|
features = [
|
|
"CanvasRenderingContext2d",
|
|
"Document",
|
|
"Element",
|
|
"HtmlCanvasElement",
|
|
"ImageData",
|
|
"OffscreenCanvas",
|
|
"OffscreenCanvasRenderingContext2d",
|
|
"Window",
|
|
]
|
|
|
|
[target.'cfg(target_os = "redox")'.dependencies]
|
|
redox_syscall = "0.4"
|
|
|
|
[build-dependencies]
|
|
cfg_aliases = "0.1.1"
|
|
|
|
[dev-dependencies]
|
|
colorous = "1.0.12"
|
|
criterion = { version = "0.4.0", default-features = false, features = ["cargo_bench_support"] }
|
|
instant = "0.1.12"
|
|
winit = "0.28.1"
|
|
winit-test = "0.1.0"
|
|
|
|
[dev-dependencies.image]
|
|
version = "0.24.6"
|
|
# Disable rayon on web
|
|
default-features = false
|
|
features = ["jpeg"]
|
|
|
|
[target.'cfg(not(target_arch = "wasm32"))'.dev-dependencies]
|
|
# Turn rayon back on everywhere else; creating the separate entry resets the features to default.
|
|
image = "0.24.6"
|
|
rayon = "1.5.1"
|
|
|
|
[target.'cfg(target_arch = "wasm32")'.dev-dependencies]
|
|
wasm-bindgen-test = "0.3"
|
|
|
|
[target.'cfg(all(unix, not(any(target_vendor = "apple", target_os = "android", target_os = "redox"))))'.dev-dependencies]
|
|
rustix = { version = "0.38.8", features = ["event"] }
|
|
|
|
[workspace]
|
|
members = [
|
|
"run-wasm",
|
|
]
|
|
|
|
[[test]]
|
|
name = "present_and_fetch"
|
|
path = "tests/present_and_fetch.rs"
|
|
harness = false
|
|
|
|
[package.metadata.docs.rs]
|
|
all-features = true
|
|
rustdoc-args = ["--cfg", "docsrs"]
|
|
default-target = "x86_64-unknown-linux-gnu"
|
|
targets = [
|
|
"x86_64-pc-windows-msvc",
|
|
"x86_64-apple-darwin",
|
|
"x86_64-unknown-linux-gnu",
|
|
"wasm32-unknown-unknown",
|
|
]
|