cranpose-render-wgpu 0.1.39

WGPU renderer backend for Cranpose
Documentation
[package]
name = "cranpose-render-wgpu"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true
homepage.workspace = true
authors.workspace = true
keywords.workspace = true
categories.workspace = true
readme = "README.md"
description = "WGPU renderer backend for Cranpose"

[features]
default = []
# GL-class fallback backend (GLES/OpenGL) for native targets. Pulls naga's
# GLSL writer for runtime-shader portability validation. Web always compiles
# the WebGL fallback and does not need this feature.
backend-gles = ["wgpu/gles", "naga/glsl-out"]
# Embed the framework fallback font (~1.3 MiB) used when the app provides no fonts.
embedded-default-font = ["cranpose-render-common/embedded-default-font"]

[dependencies]
cranpose-render-common = { workspace = true }
cranpose-ui-graphics = { workspace = true }
cranpose-foundation = { workspace = true }
cranpose-ui = { workspace = true }
cranpose-core = { workspace = true }
bytemuck = { version = "1.25", features = ["derive"] }
log = "0.4"
naga = { version = "29.0.3", features = ["wgsl-in"] }
web-time = { workspace = true }

[target.'cfg(all(target_os = "linux", not(target_arch = "wasm32")))'.dependencies]
wgpu = { version = "29.0", default-features = false, features = [
    "std",
    "parking_lot",
    "vulkan",
    "wgsl",
] }

[target.'cfg(target_os = "windows")'.dependencies]
wgpu = { version = "29.0", default-features = false, features = [
    "std",
    "parking_lot",
    "dx12",
    "wgsl",
] }

[target.'cfg(target_os = "macos")'.dependencies]
wgpu = { version = "29.0", default-features = false, features = [
    "std",
    "parking_lot",
    "metal",
    "wgsl",
] }

[target.'cfg(all(not(target_arch = "wasm32"), not(target_os = "android"), not(target_os = "linux"), not(target_os = "windows"), not(target_os = "macos")))'.dependencies]
wgpu = { version = "29.0", default-features = false, features = [
    "std",
    "parking_lot",
    "vulkan",
    "wgsl",
] }

[target.'cfg(target_os = "android")'.dependencies]
wgpu = { version = "29.0", default-features = false, features = [
    "std",
    "parking_lot",
    "vulkan",
    "wgsl",
] }

[target.'cfg(target_arch = "wasm32")'.dependencies]
wgpu = { version = "29.0", default-features = false, features = [
    "std",
    "webgpu",
    "webgl",
    "wgsl",
] }
# The WebGL fallback is always compiled on web, so runtime-shader GL
# portability validation needs naga's GLSL writer there unconditionally.
naga = { version = "29.0.3", features = ["wgsl-in", "glsl-out"] }

[dev-dependencies]
cranpose-app-shell = { workspace = true, features = ["test-support"] }
# Unit tests exercise the embedded fallback font and GL portability validation
# on every platform, independent of the production feature set.
cranpose-render-common = { workspace = true, features = ["embedded-default-font"] }
naga = { version = "29.0.3", features = ["wgsl-in", "glsl-out"] }
pollster = "0.4.0"