From 45fffba5285d51966ab7f4eb3481bf5481437f66 Mon Sep 17 00:00:00 2001 From: lisk77 Date: Fri, 18 Apr 2025 15:01:22 +0200 Subject: [PATCH] fix: removed the asynchronicity of the `Renderer` trait --- crates/comet_app/src/app.rs | 2 +- crates/comet_renderer/Cargo.toml | 3 ++- crates/comet_renderer/src/renderer.rs | 2 +- crates/comet_renderer/src/renderer2d.rs | 16 +++++++--------- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/crates/comet_app/src/app.rs b/crates/comet_app/src/app.rs index d41a2d4..5fb6e8f 100644 --- a/crates/comet_app/src/app.rs +++ b/crates/comet_app/src/app.rs @@ -250,7 +250,7 @@ impl App { pollster::block_on(async { let event_loop = EventLoop::new().unwrap(); let window = Arc::new(Self::create_window(self.title.clone(), &self.icon, &self.size ,&event_loop)); - let mut renderer = R::new(window.clone(), self.clear_color.clone()).await; + let mut renderer = R::new(window.clone(), self.clear_color.clone()); info!("Renderer created! ({})", type_name::()); info!("Setting up!"); diff --git a/crates/comet_renderer/Cargo.toml b/crates/comet_renderer/Cargo.toml index 972e671..8378a47 100644 --- a/crates/comet_renderer/Cargo.toml +++ b/crates/comet_renderer/Cargo.toml @@ -14,4 +14,5 @@ bytemuck = { version = "1.16", features = [ "derive" ] } cgmath = "0.18" wgpu = { version = "22.0", features = ["glsl", "wgsl", "naga-ir"]} winit = { version = "0.29", features = ["rwh_05"] } -chrono = "0.4.40" \ No newline at end of file +chrono = "0.4.40" +pollster = "0.3" \ No newline at end of file diff --git a/crates/comet_renderer/src/renderer.rs b/crates/comet_renderer/src/renderer.rs index f2f5981..a44b3c3 100644 --- a/crates/comet_renderer/src/renderer.rs +++ b/crates/comet_renderer/src/renderer.rs @@ -4,7 +4,7 @@ use winit::window::Window; use comet_colors::Color; pub trait Renderer: Sized + Send + Sync { - async fn new(window: Arc, clear_color: Option) -> Self; + fn new(window: Arc, clear_color: Option) -> Self; fn size(&self) -> PhysicalSize; fn resize(&mut self, new_size: winit::dpi::PhysicalSize); fn update(&mut self) -> f32; diff --git a/crates/comet_renderer/src/renderer2d.rs b/crates/comet_renderer/src/renderer2d.rs index cb9ab3c..a6229da 100644 --- a/crates/comet_renderer/src/renderer2d.rs +++ b/crates/comet_renderer/src/renderer2d.rs @@ -43,7 +43,7 @@ pub struct Renderer2D<'a> { } impl<'a> Renderer2D<'a> { - pub async fn new(window: Arc, clear_color: Option) -> Renderer2D<'a> { + pub fn new(window: Arc, clear_color: Option) -> Renderer2D<'a> { let size = PhysicalSize::::new(1920, 1080); let instance = wgpu::Instance::new(wgpu::InstanceDescriptor { @@ -53,16 +53,15 @@ impl<'a> Renderer2D<'a> { let surface = instance.create_surface(window).unwrap(); - let adapter = instance + let adapter = pollster::block_on(instance .request_adapter(&wgpu::RequestAdapterOptions { power_preference: wgpu::PowerPreference::default(), compatible_surface: Some(&surface), force_fallback_adapter: false, - }) - .await + })) .unwrap(); - let (device, queue) = adapter + let (device, queue) = pollster::block_on(adapter .request_device( &wgpu::DeviceDescriptor { label: None, @@ -71,8 +70,7 @@ impl<'a> Renderer2D<'a> { memory_hints: Default::default(), }, None, // Trace path - ) - .await + )) .unwrap(); let surface_caps = surface.get_capabilities(&adapter); @@ -1009,8 +1007,8 @@ impl<'a> Renderer2D<'a> { } impl<'a> Renderer for Renderer2D<'a> { - async fn new(window: Arc, clear_color: Option) -> Renderer2D<'a> { - Self::new(window, clear_color).await + fn new(window: Arc, clear_color: Option) -> Renderer2D<'a> { + Self::new(window, clear_color) } fn size(&self) -> PhysicalSize {