[package]
edition = "2024"
name = "mirage-engine"
version = "0.2.0"
build = false
exclude = [
".cargo",
"rust-toolchain.toml",
"examples/assets",
"docs",
"tools",
"cargo-mirage",
"tests/assets",
"site",
".vscode",
"ARCHITECTURE.md",
"CLAUDE.md",
"check.sh",
"clippy.toml",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Mirage, an immediate-mode 3D engine for simple games on desktop and the browser"
readme = "README.md"
keywords = [
"gamedev",
"engine",
"3d",
"wgpu",
"immediate-mode",
]
categories = [
"game-engines",
"graphics",
"wasm",
]
license = "Zlib OR Apache-2.0 OR MIT"
repository = "https://codeberg.org/M0jo/mirage-engine"
[package.metadata.docs.rs]
all-features = true
[package.metadata.mirage]
assets = ["examples/assets"]
[package.metadata.mirage.targets.animation]
include = [
"examples/assets/elf.glb",
"examples/assets/butterfly.glb",
]
[package.metadata.mirage.targets.breakout-game]
include = [
"examples/assets/breakout.glb",
"examples/assets/serve.ogg",
"examples/assets/lost.ogg",
"examples/assets/win.ogg",
"examples/assets/gameover.ogg",
"examples/assets/bounce.ogg",
"examples/assets/break.ogg",
"examples/assets/music.ogg",
"examples/assets/menu_music.ogg",
"examples/assets/click.ogg",
]
[package.metadata.mirage.targets.flock-parallelism]
include = ["examples/assets/butterfly.glb"]
[package.metadata.mirage.targets.input-lab]
include = []
[package.metadata.mirage.targets.isometric-board]
include = [
"examples/assets/walker.png",
"examples/assets/click.ogg",
]
[package.metadata.mirage.targets.material-playground]
include = [
"examples/assets/sky-clear.png",
"examples/assets/sky-classic.png",
"examples/assets/sky-dawn.png",
"examples/assets/sky-sinister.png",
"examples/assets/sky-stars-lightblue.png",
"examples/assets/sky-stars-blue.png",
]
[package.metadata.mirage.targets.post-effects]
include = []
[package.metadata.mirage.targets.sound-lab]
include = [
"examples/assets/bounce.ogg",
"examples/assets/break.ogg",
"examples/assets/serve.ogg",
"examples/assets/gameover.ogg",
"examples/assets/lost.ogg",
"examples/assets/win.ogg",
"examples/assets/click.ogg",
"examples/assets/music.ogg",
"examples/assets/menu_music.ogg",
]
[package.metadata.mirage.targets.sprite-adventure]
include = [
"examples/assets/keep.glb",
"examples/assets/walker.png",
"examples/assets/walker-relief.png",
"examples/assets/keep-ground.png",
"examples/assets/keep-bush.png",
"examples/assets/keep-bush-relief.png",
"examples/assets/keep-rock.png",
"examples/assets/keep-rock-relief.png",
"examples/assets/keep-torch.png",
"examples/assets/keep-torch-relief.png",
"examples/assets/keep-crate.png",
"examples/assets/keep-well.png",
"examples/assets/keep-stone.png",
"examples/assets/keep-cave.png",
"examples/assets/keep-pond.png",
"examples/assets/keep-flame.png",
"examples/assets/click.ogg",
"examples/assets/win.ogg",
]
[package.metadata.mirage.targets.stress-preview]
include = []
[package.metadata.mirage.targets.ui-fonts]
include = [
"examples/assets/pixel-operator.ttf",
"examples/assets/pixel-operator-mono.ttf",
"examples/assets/ferrum.otf",
"examples/assets/kenney-input-keyboard-mouse.ttf",
]
[features]
default = ["ui"]
offscreen = []
ui = [
"dep:egui",
"dep:egui-wgpu",
"dep:egui-winit",
]
[lib]
name = "mirage_engine"
path = "src/lib.rs"
[[example]]
name = "animation"
path = "examples/animation.rs"
[[example]]
name = "breakout-game"
path = "examples/breakout-game.rs"
[[example]]
name = "flock-parallelism"
path = "examples/flock-parallelism.rs"
[[example]]
name = "input-lab"
path = "examples/input-lab.rs"
[[example]]
name = "isometric-board"
path = "examples/isometric-board.rs"
[[example]]
name = "material-playground"
path = "examples/material-playground.rs"
[[example]]
name = "post-effects"
path = "examples/post-effects.rs"
[[example]]
name = "sound-lab"
path = "examples/sound-lab.rs"
[[example]]
name = "sprite-adventure"
path = "examples/sprite-adventure.rs"
[[example]]
name = "stress-preview"
path = "examples/stress-preview.rs"
[[example]]
name = "ui-fonts"
path = "examples/ui-fonts.rs"
[[test]]
name = "actions"
path = "tests/actions.rs"
[[test]]
name = "catalog"
path = "tests/catalog.rs"
[[test]]
name = "clip"
path = "tests/clip.rs"
[[test]]
name = "part"
path = "tests/part.rs"
[[test]]
name = "saves"
path = "tests/saves.rs"
[[test]]
name = "shader_values"
path = "tests/shader_values.rs"
[dependencies.bytemuck]
version = "1.25"
features = ["derive"]
[dependencies.egui]
version = "0.35.0"
optional = true
[dependencies.egui-wgpu]
version = "0.35.0"
optional = true
default-features = false
[dependencies.egui-winit]
version = "0.35.0"
features = ["links"]
optional = true
default-features = false
[dependencies.glam]
version = "0.33.5"
features = ["bytemuck"]
[dependencies.gltf]
version = "1.4.1"
features = [
"names",
"utils",
]
default-features = false
[dependencies.image]
version = "0.25.10"
features = [
"jpeg",
"png",
]
default-features = false
[dependencies.lewton]
version = "0.10.2"
[dependencies.log]
version = "0.4.33"
[dependencies.mirage-engine-derive]
version = "0.2.0"
[dependencies.rayon]
version = "1.12.0"
[dependencies.skrifa]
version = "0.42.1"
[dependencies.wgpu]
version = "29.0.4"
[dependencies.winit]
version = "0.30.13"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.cpal]
version = "0.18.2"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.egui-winit]
version = "0.35.0"
features = [
"clipboard",
"wayland",
"x11",
]
optional = true
default-features = false
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.env_logger]
version = "0.11.11"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.gilrs]
version = "0.11"
[target.'cfg(not(target_arch = "wasm32"))'.dependencies.pollster]
version = "1.0.1"
[target.'cfg(target_arch = "wasm32")'.dependencies.console_error_panic_hook]
version = "0.1.7"
[target.'cfg(target_arch = "wasm32")'.dependencies.console_log]
version = "1.1.0"
[target.'cfg(target_arch = "wasm32")'.dependencies.js-sys]
version = "0.3.104"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen]
version = "=0.2.127"
[target.'cfg(target_arch = "wasm32")'.dependencies.wasm-bindgen-futures]
version = "0.4.77"
[target.'cfg(target_arch = "wasm32")'.dependencies.web-sys]
version = "0.3.104"
features = [
"AudioBuffer",
"AudioBufferSourceNode",
"AudioContext",
"AudioContextState",
"AudioDestinationNode",
"AudioNode",
"AudioParam",
"AudioScheduledSourceNode",
"BaseAudioContext",
"GainNode",
"StereoPannerNode",
"WaveShaperNode",
"console",
"DedicatedWorkerGlobalScope",
"Document",
"Element",
"Gamepad",
"GamepadButton",
"GamepadMappingType",
"HtmlCanvasElement",
"HtmlElement",
"Navigator",
"Node",
"Response",
"Storage",
"Window",
"Worker",
"WorkerOptions",
"WorkerType",
]
[target.'cfg(target_arch = "wasm32")'.dependencies.web-time]
version = "1.1.0"
[target."cfg(windows)".dependencies.windows-sys]
version = "0.52"
features = ["Win32_UI_Input_KeyboardAndMouse"]
[lints.clippy]
arbitrary_source_item_ordering = "warn"