[package]
name = "engawa-wgpu"
version = "0.1.9"
edition = "2024"
rust-version = "1.89.0"
license = "MIT"
authors = ["pleme-io"]
description = "wgpu-backed Dispatcher impl for engawa render graphs. Compiles Material → wgpu::RenderPipeline; walks the compiled graph; dispatches fullscreen-effect passes against any wgpu::TextureView (most commonly a garasu::HeadlessTarget for tests + a winit surface for live)."
homepage = "https://github.com/pleme-io/engawa-wgpu"
repository = "https://github.com/pleme-io/engawa-wgpu"
documentation = "https://docs.rs/engawa-wgpu"
readme = "README.md"
categories = ["rendering", "graphics"]
keywords = ["wgpu", "render-graph", "engawa", "pleme-io"]

[lints.clippy]
pedantic = { level = "warn", priority = -1 }
missing_errors_doc = "allow"
missing_panics_doc = "allow"

[dependencies]
# version+git: publish ships the crates.io version dep (engawa is on
# crates.io); local/HEAD builds resolve to engawa HEAD via git.
engawa = { version = "0.1", git = "https://github.com/pleme-io/engawa" }
wgpu = "25"
thiserror = "2"
bytemuck = { version = "1", features = ["derive"] }
# Mechanical ALL registry for the effect catalog enum — per the
# ★★ EMITTER SUBSTRATE rule, ALL is derived from the variants,
# never hand-listed (macro farm, tatara-rust-ast).
pleme-allvariants-derive = { version = "0.1", git = "https://github.com/pleme-io/pleme-allvariants-derive" }

[dev-dependencies]
garasu = { git = "https://github.com/pleme-io/garasu", features = ["gpu_tests"] }
pollster = "0.4"

[features]
default = []
# Opt-in: runs tests that drive a real wgpu adapter via garasu's
# HeadlessTarget. CI without a GPU should leave this off.
gpu_tests = []
