[package] name = "softbuffer" version = "0.4.6" 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.70.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", "wayland-sys", "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 = { package = "raw-window-handle", version = "0.6", features = ["std"] } [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.12.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 = { version = "0.31.0", optional = true } x11rb = { version = "0.13.0", features = ["allow-unsafe-code", "shm"], optional = true } [target.'cfg(target_os = "windows")'.dependencies.windows-sys] version = "0.59.0" features = ["Win32_Graphics_Gdi", "Win32_UI_Shell", "Win32_UI_WindowsAndMessaging", "Win32_Foundation"] [target.'cfg(target_vendor = "apple")'.dependencies] bytemuck = { version = "1.12.3", features = ["extern_crate_alloc"] } core-graphics = "0.24.0" foreign-types = "0.5.0" objc2 = "0.5.2" objc2-foundation = { version = "0.2.2", features = [ "NSDictionary", "NSGeometry", "NSKeyValueObserving", "NSString", "NSThread", "NSValue", ] } objc2-quartz-core = { version = "0.2.2", features = ["CALayer", "CATransaction"] } [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.5" [build-dependencies] cfg_aliases = "0.2.0" [dev-dependencies] colorous = "1.0.12" criterion = { version = "0.4.0", default-features = false, features = ["cargo_bench_support"] } web-time = "1.0.0" winit = "0.30.0" [dev-dependencies.image] version = "0.25.0" # 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. 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", ] [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", ]