summary refs log tree commit diff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs22
1 files changed, 7 insertions, 15 deletions
diff --git a/src/main.rs b/src/main.rs
index d461a63..4d0748f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,7 +1,7 @@
 #![deny(unsafe_code)]
 use crate::error::*;
 use crate::assets::asset;
-use crate::graphics::{ Permanent, ForReinit, Render, Texture };
+use crate::graphics::{ Permanent, ForReinit, Render };
 use crate::graphics::scene::generate_scene_commands;
 use crate::graphics::window_dressing::{
   WindowDressing, N_SIMULTANEOUS_FRAMES
@@ -36,7 +36,6 @@ struct Surreality {
   for_reinit: RefCell<Option<ForReinit>>,
   window_dressing: RefCell<Option<WindowDressing>>,
   render: RefCell<Option<Render>>,
-  texture: RefCell<Option<Texture>>,
   is_minimized: bool,
   is_reinit_queued: bool,
   frame_index: usize,
@@ -54,7 +53,6 @@ impl Surreality {
       for_reinit: RefCell::new(None),
       window_dressing: RefCell::new(None),
       render: RefCell::new(None),
-      texture: RefCell::new(None),
       is_minimized: false,
       is_reinit_queued: false,
       frame_index: 0,
@@ -70,14 +68,14 @@ impl Surreality {
     let (permanent, for_reinit, enable_anisotropy, enable_swapchain)
         = Permanent::new(event_loop)?;
 
-    let png = asset("textures/forest_leaves_04_diff.png")?;
-    let (texture, mip_count) = load_png(png, &permanent)?;
-
     if enable_swapchain.0 {
+      let png = asset("textures/forest_leaves_04_diff.png")?;
+      let (texture, mip_count) = load_png(png, &permanent)?;
+
       let window_dressing = WindowDressing::new(&permanent, &for_reinit,
                                                 enable_anisotropy, mip_count)?;
-      let mut render = Render::new(&permanent, &for_reinit, &window_dressing,
-                                   &texture)?;
+      let mut render = Render::new(&permanent, &for_reinit, &window_dressing)?;
+      render.set_texture(texture);
 
       let obj = asset("models/teapot.obj")?;
       let model = load_obj(obj, &permanent)?;
@@ -87,7 +85,6 @@ impl Surreality {
       *self.render.get_mut() = Some(render);
     }
 
-    *self.texture.get_mut() = Some(texture);
     *self.permanent.get_mut() = Some(permanent);
     *self.for_reinit.get_mut() = Some(for_reinit);
 
@@ -100,10 +97,9 @@ impl Surreality {
        && let Some(window_dressing)
               = self.window_dressing.borrow_mut().as_mut()
        && let Some(render) = self.render.borrow_mut().as_mut()
-       && let Some(texture) = self.texture.borrow_mut().as_mut()
     {
       window_dressing.reinit(permanent, for_reinit)?;
-      render.reinit(permanent, for_reinit, &window_dressing, &texture)?;
+      render.reinit(permanent, for_reinit, &window_dressing)?;
     }
 
     Ok(())
@@ -234,10 +230,6 @@ impl Drop for Surreality {
         window_dressing.destroy(&permanent.device);
       }
 
-      if let Some(texture) = self.texture.replace(None) {
-        texture.destroy(&permanent.device);
-      }
-
       if let Some(for_reinit) = self.for_reinit.replace(None) {
         for_reinit.destroy(&permanent.device);
       }