From 3f367e19ac2768b64c22885297d7b545fe3a971d Mon Sep 17 00:00:00 2001 From: Tony Klink Date: Sun, 31 Mar 2024 12:18:26 -0600 Subject: [PATCH] Change present mode to Mailbox --- src/app.rs | 19 +++++++++++++------ src/main.rs | 1 + src/modules/graphics/test_pipeline.rs | 9 ++++++++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/src/app.rs b/src/app.rs index a1cc560..ff279bb 100644 --- a/src/app.rs +++ b/src/app.rs @@ -16,7 +16,10 @@ use vulkano_util::{ context::{VulkanoConfig, VulkanoContext}, window::VulkanoWindows, }; -use winit::{event::{Event, WindowEvent}, window::WindowId}; +use winit::{ + event::{Event, WindowEvent}, + window::WindowId, +}; #[allow(dead_code)] pub struct App { @@ -37,7 +40,6 @@ pub struct App { impl App { pub fn new() -> Self { let mut events = Events::new(); - let (tx, rx) = flume::unbounded(); events.subscribe_custom(tx); @@ -103,19 +105,24 @@ impl App { &self.vk_context, &vulkano_util::window::WindowDescriptor { title: self.name.clone(), - present_mode: vulkano::swapchain::PresentMode::Fifo, + present_mode: vulkano::swapchain::PresentMode::Mailbox, ..Default::default() }, |_| {}, ); let renderer = self.vk_windows.get_renderer(window).unwrap(); + let gui = Gui::new( event_loop, renderer.surface().clone(), renderer.graphics_queue().clone(), renderer.swapchain_format(), - GuiConfig { is_overlay: true, allow_srgb_render_target: false, ..Default::default() }, + GuiConfig { + is_overlay: true, + allow_srgb_render_target: false, + ..Default::default() + }, ); self.guis.insert(window, gui); @@ -181,12 +188,12 @@ impl App { gui.update(window, event); } Event::AboutToWait => { - for (window_id, _) in self.vk_windows.iter() { + self.vk_windows.iter().for_each(|(window_id, _)| { self.vk_windows .get_window(*window_id) .unwrap() .request_redraw() - } + }); } _ => (), } diff --git a/src/main.rs b/src/main.rs index d24e21b..d966d26 100644 --- a/src/main.rs +++ b/src/main.rs @@ -30,6 +30,7 @@ fn main() -> Result<()> { let mut app = App::new(); // TODO: Move renderer into App app.create_window(&event_loop); + app.push_module(ConfigModule::new); app.push_module(WindowModule::new); app.push_render_module(RenderModule::new); diff --git a/src/modules/graphics/test_pipeline.rs b/src/modules/graphics/test_pipeline.rs index d710779..2a67a9e 100644 --- a/src/modules/graphics/test_pipeline.rs +++ b/src/modules/graphics/test_pipeline.rs @@ -167,8 +167,13 @@ mod vs { layout(location = 0) in vec2 position; + layout(location = 0) out vec3 fragColor; + + vec3 colors[3] = vec3[](vec3(1.0, 0.0, 0.0), vec3(0.0, 1.0, 0.0), vec3(0.0, 0.0, 1.0)); + void main() { gl_Position = vec4(position, 0.0, 1.0); + fragColor = colors[gl_VertexIndex]; } ", } @@ -180,10 +185,12 @@ mod fs { src: r" #version 450 + layout(location = 0) in vec3 fragColor; + layout(location = 0) out vec4 f_color; void main() { - f_color = vec4(1.0, 0.0, 0.0, 1.0); + f_color = vec4(fragColor, 1.0); } ", }