opengl_sdk/src/main.rs

39 lines
1.1 KiB
Rust

use proj::{
app::app::App, assets, backend::opengl, shaders::{FRAGMENT_SHADER_SOURCE, VERTEX_SHADER_SOURCE}
};
use winit::event_loop::EventLoop;
const HOUSE_OBJ_PATH: &str = "assets/models/small_house/model.obj";
const HOUSE_MAT_PATH: &str = "assets/models/small_house/materials.mtl";
fn main() {
dotenvy::dotenv().ok();
let event_loop = EventLoop::new()
.expect("Should be able to have Event Loop");
let _shader_src = opengl::GlShaderSource {
vertex_src: VERTEX_SHADER_SOURCE.to_string(),
fragment_src: FRAGMENT_SHADER_SOURCE.to_string()
};
// Load OBJ and materials (CPU-side, before GL context)
let obj_data = match assets::obj::load_obj(HOUSE_OBJ_PATH) {
Ok(o) => o,
Err(e) => return eprintln!("Error loading OBJ: {}", e),
};
let materials = match assets::mtl::load_materials(HOUSE_MAT_PATH) {
Ok(m) => m,
Err(e) => return eprintln!("Error loading materials: {}", e),
};
println!("Loaded {} meshes, {} materials", obj_data.meshes.len(), materials.len());
let mut app = App::<opengl::GlBackend>::new();
let event_res = event_loop.run_app(&mut app);
println!("{:#?}", event_res);
}