diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-08-08 20:11:06 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-08-08 20:11:06 -0700 |
| commit | 4b877079872248d3a4c17312b18599c6084e1e2d (patch) | |
| tree | 1c764f0e7700e3cfec3aad64bf8bf3e1fa7b0261 | |
| parent | d56eb5e4c223f5c89117cda8dfb1527e02b6a90c (diff) | |
move the obj loader to a more logical place
Force-Push: yes Change-Id: I0d506fa517daeacf63b52fdd5900f1bbee9c22b7
| -rw-r--r-- | src/files/mod.rs | 3 | ||||
| -rw-r--r-- | src/files/obj.rs (renamed from src/model_loader.rs) | 4 | ||||
| -rw-r--r-- | src/graphics/model.rs | 5 | ||||
| -rw-r--r-- | src/main.rs | 7 |
4 files changed, 12 insertions, 7 deletions
diff --git a/src/files/mod.rs b/src/files/mod.rs new file mode 100644 index 0000000..8bc7539 --- /dev/null +++ b/src/files/mod.rs @@ -0,0 +1,3 @@ +#![deny(unsafe_code)] + +pub mod obj; diff --git a/src/model_loader.rs b/src/files/obj.rs index fea5ab5..c45ffbf 100644 --- a/src/model_loader.rs +++ b/src/files/obj.rs @@ -8,8 +8,8 @@ use std::io::Cursor; use tobj::{ load_obj_buf, LoadOptions }; -pub fn load_model() -> Result<(Vec<Vertex<f32>>, Vec<u32>)> { - let obj = include_bytes!("../models/teapot.obj"); +pub fn load_obj() -> Result<(Vec<Vertex<f32>>, Vec<u32>)> { + let obj = include_bytes!("../../models/teapot.obj"); let load_options = LoadOptions { single_index: true, diff --git a/src/graphics/model.rs b/src/graphics/model.rs index bda064c..01e8731 100644 --- a/src/graphics/model.rs +++ b/src/graphics/model.rs @@ -5,7 +5,6 @@ use crate::graphics::render_state::RenderState; use crate::graphics::util::init_buffer; use crate::graphics::window_dressing::WindowDressing; use crate::linear_algebra::{ Vec3, Vec4, Transformation }; -use crate::model_loader::load_model; use crate::shader_data::{ Vertex, VertexPushBlock }; use std::f32::consts::{ TAU }; @@ -26,7 +25,8 @@ pub struct Model { impl Model { - pub fn new(permanent: &PermanentGraphicsState, + pub fn new(vertices: Vec<Vertex<f32>>, indices: Vec<u32>, + permanent: &PermanentGraphicsState, window_dressing: &WindowDressing) -> Result<Self> { @@ -35,7 +35,6 @@ impl Model { let graphics_queue = &permanent.graphics_queue; let transient_command_pool = &window_dressing.transient_command_pool; - let (vertices, indices) = load_model()?; let index_count = indices.len(); let (vertex_buffer, vertex_buffer_memory) diff --git a/src/main.rs b/src/main.rs index 6382f51..9fb89bc 100644 --- a/src/main.rs +++ b/src/main.rs @@ -10,6 +10,7 @@ use crate::graphics::window_dressing::{ WindowDressing, N_SIMULTANEOUS_FRAMES }; use crate::linear_algebra::{ Vec3, Mat4, Transformation }; +use crate::files::obj::load_obj; use crate::shader_data::UniformBlock; use std::cell::RefCell; @@ -25,9 +26,9 @@ use winit::event_loop::{ ActiveEventLoop, EventLoop }; use winit::window::WindowId; mod error; +mod files; mod graphics; mod linear_algebra; -mod model_loader; mod shader_data; @@ -73,7 +74,9 @@ impl Surreality { enable_anisotropy)?; let mut render_state = RenderState::new(&permanent, &for_reinit, &window_dressing)?; - render_state.set_model(Model::new(&permanent, &window_dressing)?); + let (vertices, indices) = load_obj()?; + render_state.set_model(Model::new(vertices, indices, + &permanent, &window_dressing)?); *self.window_dressing.get_mut() = Some(window_dressing); *self.render_state.get_mut() = Some(render_state); |