Change present mode to Mailbox

This commit is contained in:
Tony Klink 2024-03-31 12:18:26 -06:00
parent 440fc05e55
commit 3f367e19ac
Signed by: klink
GPG key ID: 85175567C4D19231
3 changed files with 22 additions and 7 deletions

View file

@ -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()
}
});
}
_ => (),
}

View file

@ -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);

View file

@ -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);
}
",
}