vulkano/vulkano/Cargo.toml
Mads Marquart 0af3fb3cb3
Use raw-window-metal to get a CAMetalLayer from raw-window-handle (#2561)
The way `raw-window-metal` works is by creating a layer, and inserting
that as a sublayer, just like we did on iOS before. The bounds are then
kept in-sync with an observer, ensuring smooth resizing.

This also fixes compilation errors on iOS, and adds preliminary support
for tvOS.

The implementation now solely uses `VK_EXT_metal_surface`, which was
added in 2018, instead of `VK_MVK_ios_surface` / `VK_MVK_macos_surface`,
which are deprecated, and only available a year and a half earlier
anyhow.

Note that apart from the above, there is a slight behavioral change on
macOS: we no longer set `edgeAntialiasingMask` on the layer, as it's not
really required, and allows us to avoid depending on `objc2` directly.
It was introduced without motivation in 40e0b24, so I doubt anyone uses
it, and if they do, they can change it on the layer themselves.
2024-09-11 18:03:54 +02:00

63 lines
2.1 KiB
TOML

[package]
name = "vulkano"
version = "0.34.0"
authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>", "The vulkano contributors"]
repository = "https://github.com/vulkano-rs/vulkano/tree/master/vulkano"
description = "Safe wrapper for the Vulkan graphics API"
documentation = "https://docs.rs/vulkano"
readme = "../README.md"
build = "build.rs"
edition = { workspace = true }
rust-version = { workspace = true }
license = { workspace = true }
homepage = { workspace = true }
keywords = { workspace = true }
categories = { workspace = true }
[dependencies]
ahash = { workspace = true }
ash = { workspace = true }
bytemuck = { workspace = true, features = ["min_const_generics"] }
crossbeam-queue = { workspace = true }
half = { workspace = true, features = ["bytemuck"] }
libloading = { workspace = true }
once_cell = { workspace = true }
parking_lot = { workspace = true, features = ["send_guard"] }
raw-window-handle = { workspace = true, features = ["std"] }
serde = { workspace = true, optional = true }
slabbin = { workspace = true }
smallvec = { workspace = true }
thread_local = { workspace = true }
vulkano-macros = { workspace = true, optional = true }
[target.'cfg(target_vendor = "apple")'.dependencies]
raw-window-metal = { workspace = true }
[target.'cfg(any(target_os = "dragonfly", target_os = "freebsd", target_os = "hurd", target_os = "illumos", target_os = "linux", target_os = "netbsd", target_os = "openbsd", target_os = "solaris"))'.dependencies]
x11-dl = { workspace = true, optional = true }
x11rb = { workspace = true, features = ["allow-unsafe-code"], optional = true }
[build-dependencies]
ahash = { workspace = true }
heck = { workspace = true }
indexmap = { workspace = true }
nom = { workspace = true }
once_cell = { workspace = true }
proc-macro2 = { workspace = true }
quote = { workspace = true }
serde = { workspace = true, features = ["derive"] }
serde_json = { workspace = true }
vk-parse = { workspace = true }
[dev-dependencies]
libc = "0.2.153"
[features]
default = ["macros", "x11"]
document_unchecked = []
macros = ["dep:vulkano-macros"]
x11 = ["dep:x11-dl", "dep:x11rb"]
[lints]
workspace = true