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::::new(); let event_res = event_loop.run_app(&mut app); println!("{:#?}", event_res); }