diff options
Diffstat (limited to 'engine')
| -rw-r--r-- | engine/src/lib.rs | 32 | 
1 files changed, 26 insertions, 6 deletions
| diff --git a/engine/src/lib.rs b/engine/src/lib.rs index 806d7ec..2016ec1 100644 --- a/engine/src/lib.rs +++ b/engine/src/lib.rs @@ -51,11 +51,7 @@ where      ///      /// # Errors      /// Will return `Err` if window creation or window configuration fails. -    pub fn new( -        window_size: &WindowSize, -        window_title: &str, -        camera: CameraT, -    ) -> Result<Self, Error> +    pub fn new(window_settings: &WindowSettings, camera: CameraT) -> Result<Self, Error>      {          let window_builder = WindowBuilder::new(); @@ -64,7 +60,7 @@ where              window_builder.hint(glfw::window::Hint::OpenGLDebugContext, 1);          let window = window_builder -            .create(window_size, window_title) +            .create(&window_settings.size, &window_settings.title)              .map_err(Error::CreateWindowFailed)?;          window @@ -247,3 +243,27 @@ pub enum Error      #[error("Rendering failed")]      RenderingFailed(#[source] renderer::Error),  } + +#[derive(Debug)] +pub struct WindowSettings +{ +    size: WindowSize, +    title: Box<str>, +} + +#[derive(Debug, Default)] +pub struct WindowSettingsBuilder {} + +impl WindowSettingsBuilder +{ +    #[must_use] +    pub fn new() -> Self +    { +        Self::default() +    } + +    pub fn build(&self, size: WindowSize, title: impl Into<Box<str>>) -> WindowSettings +    { +        WindowSettings { size, title: title.into() } +    } +} | 
