#!/bin/sh

set -e

# Update everything
cargo update
cargo update --manifest-path contrib/screen-13-hot/Cargo.toml
cargo update --manifest-path examples/skeletal-anim/Cargo.toml
cargo update --manifest-path examples/shader-toy/Cargo.toml
cargo update --manifest-path examples/vr/Cargo.toml

# Build everything
cargo build --examples

# Run the "test" example first
# cargo run --example fuzzer

# Run all regular examples, in debug mode, next
cargo run --example hello_world
cargo run --example cpu_readback
cargo run --example subgroup_ops
cargo run --example bindless
cargo run --example image_sampler
cargo run --example vertex_layout
cargo run --example font_bmp
cargo run --example egui
cargo run --example imgui
cargo run --example multithread
cargo run --example multipass
cargo run --example msaa
cargo run --example triangle
cargo run --example rt_triangle
cargo run --example ray_trace
cargo run --example transitions
cargo run --example vsm_omni
cargo run --example ray_omni
cargo run --manifest-path examples/skeletal-anim/Cargo.toml

# Hot-reload examples
cargo run --manifest-path contrib/screen-13-hot/Cargo.toml --example glsl
cargo run --manifest-path contrib/screen-13-hot/Cargo.toml --example hlsl

# Run this one in release mode
cargo run --manifest-path examples/shader-toy/Cargo.toml --release
