From 1830aec847ff95d41a66b96fb1786b062e13ae7e Mon Sep 17 00:00:00 2001 From: Theis Pieter Hollebeek Date: Mon, 3 Mar 2025 19:17:29 +0100 Subject: [PATCH] resizable game window --- src/gui.rs | 4 ++-- src/gui/{render.rs => sdl.rs} | 6 +++--- src/gui/ui.rs | 4 ++++ 3 files changed, 9 insertions(+), 5 deletions(-) rename src/gui/{render.rs => sdl.rs} (98%) diff --git a/src/gui.rs b/src/gui.rs index ae99115..ee4c43d 100644 --- a/src/gui.rs +++ b/src/gui.rs @@ -1,5 +1,5 @@ mod audio; -mod render; +mod sdl; mod ui; -pub use render::start_game; +pub use sdl::start_game; diff --git a/src/gui/render.rs b/src/gui/sdl.rs similarity index 98% rename from src/gui/render.rs rename to src/gui/sdl.rs index c25ac3a..9c3ffc0 100644 --- a/src/gui/render.rs +++ b/src/gui/sdl.rs @@ -1,6 +1,5 @@ use crate::actions::{Action, ActionsHeld}; -use crate::board::Board; -use crate::game::{CurrentTetromino, Game}; +use crate::game::Game; use sdl2::event::Event; use sdl2::keyboard::Keycode; use sdl2::pixels::Color; @@ -10,7 +9,7 @@ use sdl2::ttf::Sdl2TtfContext; use std::time::Duration; use super::audio::{self}; -use super::ui::{Rgb, UiCtx}; +use super::ui::{GameUiCtx, Rgb, UiCtx}; const WIDTH: i32 = 1000; const HEIGHT: i32 = 800; @@ -128,6 +127,7 @@ pub fn start_game() -> Result<(), String> { let window = video_subsystem .window("reimtris2", WIDTH as u32, HEIGHT as u32) + .resizable() .position_centered() .build() .unwrap(); diff --git a/src/gui/ui.rs b/src/gui/ui.rs index 9a8a9c9..64a3f92 100644 --- a/src/gui/ui.rs +++ b/src/gui/ui.rs @@ -26,7 +26,9 @@ pub trait UiCtx { height: i32, ) -> Result<(), Err>; fn clear(&mut self, rgb: &Rgb) -> Result<(), Err>; +} +pub trait GameUiCtx: UiCtx { fn draw_tetromino_from_parts( &mut self, x: i8, @@ -131,6 +133,8 @@ pub trait UiCtx { } } +impl GameUiCtx for T where T: UiCtx {} + pub struct Rgb(pub u8, pub u8, pub u8); impl Rgb {