From 73c4521b723129dff2d7c4ccac4d48dd16eae2b3 Mon Sep 17 00:00:00 2001 From: Freya Murphy Date: Thu, 6 Nov 2025 21:01:34 -0500 Subject: graphics: refactor renderer --- graphics/src/lib.rs | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) (limited to 'graphics/src/lib.rs') diff --git a/graphics/src/lib.rs b/graphics/src/lib.rs index c625025..9917a94 100644 --- a/graphics/src/lib.rs +++ b/graphics/src/lib.rs @@ -3,12 +3,13 @@ use std::cell::RefCell; +use dungeon::Dungeon; use raylib::prelude::*; -use crate::assets::{AudioData, ImageData}; -use crate::render::{FrameRendererImpl, Renderer}; +use crate::audio::Audio; +use crate::render::Renderer; -mod assets; +mod audio; mod render; /// The `KeyCode` type represents different keys being pressed on the users keyboard @@ -29,7 +30,7 @@ pub struct Window { handle: RefCell, thread: RaylibThread, // audio data/subsystem - audio: AudioData, + audio: Audio, } impl Window { /// Instantiates a new window provided with the default @@ -50,12 +51,11 @@ impl Window { .vsync() .build(); - // load assets - let audio = AudioData::load()?; - let image = ImageData::load(&mut handle, &thread)?; + // load audio + let audio = Audio::load()?; // load renderer - let renderer = Renderer::new(&mut handle, &thread, image)?; + let renderer = Renderer::new(&mut handle, &thread)?; Ok(Self { handle: RefCell::new(handle), @@ -71,17 +71,20 @@ impl Window { !self.handle.borrow().window_should_close() } - /// Returns the per frame renderer for the game + /// Draws the next ingame frame /// /// # Examples /// ```no_run /// use graphics::Window; + /// use dungeon::Dungeon; /// + /// let dungeon = Dungeon::new(); /// let mut window = Window::new(800, 600, "Dungeon Crawl").unwrap(); - /// let mut renderer = window.renderer(); + /// window.draw_frame(&dungeon); /// ``` - pub fn renderer(&mut self) -> FrameRendererImpl<'_> { - self.renderer.invoke(self.handle.get_mut(), &self.thread) + pub fn draw_frame(&mut self, dungeon: &Dungeon) { + self.renderer + .draw_frame(self.handle.get_mut(), &self.thread, dungeon); } /// Returns the per frame delta time @@ -110,7 +113,7 @@ impl Window { } /// Get audio data for the window - pub fn audio(&self) -> &AudioData { + pub fn audio(&self) -> &Audio { &self.audio } } -- cgit v1.2.3-freya