Add textured OBJ model rendering

This commit is contained in:
lenn
2026-06-25 17:41:18 +08:00
parent ec46e53c75
commit 156df50d33
14 changed files with 1777 additions and 20 deletions

33
build.rs Normal file
View File

@@ -0,0 +1,33 @@
use std::{env, fs, path::PathBuf};
use anyhow::Result;
use fs_extra::{copy_items, dir::CopyOptions};
fn main() -> Result<()> {
let manifest_dir = PathBuf::from(env::var("CARGO_MANIFEST_DIR")?);
let source_dir = manifest_dir.join("res");
let out_dir = PathBuf::from(env::var("OUT_DIR")?);
let resource_dir = out_dir.join("res");
let mut copy_options = CopyOptions::new();
copy_options.overwrite = true;
println!("cargo:rerun-if-changed={}", source_dir.display());
if resource_dir.exists() {
fs::remove_dir_all(&resource_dir)?;
}
if source_dir.exists() {
let items = fs::read_dir(&source_dir)?
.map(|entry| entry.map(|entry| entry.path()))
.collect::<Result<Vec<_>, _>>()?;
fs::create_dir_all(&resource_dir)?;
copy_items(&items, &resource_dir, &copy_options)?;
}
println!("cargo:rustc-env=RESOURCE_DIR={}", resource_dir.display());
Ok(())
}