diff options
| author | Irene Knapp <ireneista@irenes.space> | 2026-08-09 20:09:35 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@irenes.space> | 2026-08-09 20:23:13 -0700 |
| commit | bbe9d5993bb922ad6b33a21c3557143cecaf960d (patch) | |
| tree | 387488a0a6b35aa5ba1fef1adcdc400d0f4935b6 /src | |
| parent | 677b697eb18b9abb252eacff320aa48314075a0e (diff) | |
abstract over bundled assets
yay build script stuff :) Force-Push: yes Change-Id: I694651febb02f42dac904f0dfbf4089c33ef937e
Diffstat (limited to 'src')
| -rw-r--r-- | src/files/obj.rs | 4 | ||||
| -rw-r--r-- | src/files/png.rs | 4 | ||||
| -rw-r--r-- | src/graphics/render.rs | 7 | ||||
| -rw-r--r-- | src/main.rs | 9 |
4 files changed, 12 insertions, 12 deletions
diff --git a/src/files/obj.rs b/src/files/obj.rs index af2ce03..3ccc2ec 100644 --- a/src/files/obj.rs +++ b/src/files/obj.rs @@ -9,9 +9,7 @@ use std::io::Cursor; use tobj::{ load_obj_buf, LoadOptions }; -pub fn load_obj(permanent: &Permanent) -> Result<Model> { - let obj = include_bytes!("../../models/teapot.obj"); - +pub fn load_obj(obj: &[u8], permanent: &Permanent) -> Result<Model> { let load_options = LoadOptions { single_index: true, triangulate: true, diff --git a/src/files/png.rs b/src/files/png.rs index c164613..ce24292 100644 --- a/src/files/png.rs +++ b/src/files/png.rs @@ -7,9 +7,7 @@ use std::io::Cursor; use png::Decoder; -pub fn load_png(permanent: &Permanent) -> Result<(Texture, u32)> { - let png = include_bytes!("../../textures/forest_leaves_04_diff.png"); - +pub fn load_png(png: &[u8], permanent: &Permanent) -> Result<(Texture, u32)> { let decoder = Decoder::new(Cursor::new(png)); let mut reader = decoder.read_info()?; diff --git a/src/graphics/render.rs b/src/graphics/render.rs index 0b4a12a..7318574 100644 --- a/src/graphics/render.rs +++ b/src/graphics/render.rs @@ -1,5 +1,6 @@ #![deny(unsafe_code)] use crate::error::*; +use crate::assets::asset; use crate::graphics::{ Permanent, ForReinit, WindowDressing, Model, Texture }; use crate::shader_data::{ Vertex, UniformBlock, VertexPushBlock }; @@ -260,10 +261,8 @@ fn init_pipeline(device: &Device, render_pass: &vk::RenderPass) -> Result<(vk::PipelineLayout, vk::Pipeline)> { - let vertex_binary = include_bytes!( - concat!(env!("OUT_DIR"), "/shader.vert.spv")); - let fragment_binary = include_bytes!( - concat!(env!("OUT_DIR"), "/shader.frag.spv")); + let vertex_binary = asset("shaders/shader.vert.spv")?; + let fragment_binary = asset("shaders/shader.frag.spv")?; let vertex_module = Permanent::load_spirv_shader_module( device, vertex_binary)?; diff --git a/src/main.rs b/src/main.rs index b4f7970..607b0d8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,6 @@ #![deny(unsafe_code)] use crate::error::*; +use crate::assets::asset; use crate::graphics::{ Permanent, ForReinit, Render, Model, Texture }; use crate::graphics::scene::generate_scene_commands; use crate::graphics::window_dressing::{ @@ -22,6 +23,7 @@ use winit::event::WindowEvent; use winit::event_loop::{ ActiveEventLoop, EventLoop }; use winit::window::WindowId; +mod assets { include!(concat!(env!("OUT_DIR"), "/assets.rs")); } mod error; mod files; mod graphics; @@ -68,14 +70,17 @@ impl Surreality { let (permanent, for_reinit, enable_anisotropy, enable_swapchain) = Permanent::new(event_loop)?; - let (texture, mip_count) = load_png(&permanent)?; + let png = asset("textures/forest_leaves_04_diff.png")?; + let (texture, mip_count) = load_png(png, &permanent)?; if enable_swapchain.0 { let window_dressing = WindowDressing::new(&permanent, &for_reinit, enable_anisotropy, mip_count)?; let mut render = Render::new(&permanent, &for_reinit, &window_dressing, &texture)?; - let model = load_obj(&permanent)?; + + let obj = asset("models/teapot.obj")?; + let model = load_obj(obj, &permanent)?; render.set_model(model); *self.window_dressing.get_mut() = Some(window_dressing); |