mirage-engine 0.2.0

Mirage, an immediate-mode 3D engine for simple games on desktop and the browser
Documentation
# THIS FILE IS AUTOMATICALLY GENERATED BY CARGO
#
# When uploading crates to the registry Cargo will automatically
# "normalize" Cargo.toml files for maximal compatibility
# with all versions of Cargo and also rewrite `path` dependencies
# to registry (e.g., crates.io) dependencies.
#
# If you are reading this file be aware that the original Cargo.toml
# will likely look very different (and much more reasonable).
# See Cargo.toml.orig for the original contents.

[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"