mirror of
https://github.com/lisk77/comet.git
synced 2025-10-23 21:38:50 +00:00
fix: removed the asynchronicity of the Renderer
trait
This commit is contained in:
parent
fd8cf1f278
commit
45fffba528
4 changed files with 11 additions and 12 deletions
|
@ -250,7 +250,7 @@ impl App {
|
||||||
pollster::block_on(async {
|
pollster::block_on(async {
|
||||||
let event_loop = EventLoop::new().unwrap();
|
let event_loop = EventLoop::new().unwrap();
|
||||||
let window = Arc::new(Self::create_window(self.title.clone(), &self.icon, &self.size ,&event_loop));
|
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::<R>());
|
info!("Renderer created! ({})", type_name::<R>());
|
||||||
|
|
||||||
info!("Setting up!");
|
info!("Setting up!");
|
||||||
|
|
|
@ -14,4 +14,5 @@ bytemuck = { version = "1.16", features = [ "derive" ] }
|
||||||
cgmath = "0.18"
|
cgmath = "0.18"
|
||||||
wgpu = { version = "22.0", features = ["glsl", "wgsl", "naga-ir"]}
|
wgpu = { version = "22.0", features = ["glsl", "wgsl", "naga-ir"]}
|
||||||
winit = { version = "0.29", features = ["rwh_05"] }
|
winit = { version = "0.29", features = ["rwh_05"] }
|
||||||
chrono = "0.4.40"
|
chrono = "0.4.40"
|
||||||
|
pollster = "0.3"
|
|
@ -4,7 +4,7 @@ use winit::window::Window;
|
||||||
use comet_colors::Color;
|
use comet_colors::Color;
|
||||||
|
|
||||||
pub trait Renderer: Sized + Send + Sync {
|
pub trait Renderer: Sized + Send + Sync {
|
||||||
async fn new(window: Arc<Window>, clear_color: Option<impl Color>) -> Self;
|
fn new(window: Arc<Window>, clear_color: Option<impl Color>) -> Self;
|
||||||
fn size(&self) -> PhysicalSize<u32>;
|
fn size(&self) -> PhysicalSize<u32>;
|
||||||
fn resize(&mut self, new_size: winit::dpi::PhysicalSize<u32>);
|
fn resize(&mut self, new_size: winit::dpi::PhysicalSize<u32>);
|
||||||
fn update(&mut self) -> f32;
|
fn update(&mut self) -> f32;
|
||||||
|
|
|
@ -43,7 +43,7 @@ pub struct Renderer2D<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Renderer2D<'a> {
|
impl<'a> Renderer2D<'a> {
|
||||||
pub async fn new(window: Arc<Window>, clear_color: Option<impl Color>) -> Renderer2D<'a> {
|
pub fn new(window: Arc<Window>, clear_color: Option<impl Color>) -> Renderer2D<'a> {
|
||||||
let size = PhysicalSize::<u32>::new(1920, 1080);
|
let size = PhysicalSize::<u32>::new(1920, 1080);
|
||||||
|
|
||||||
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
|
let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
|
||||||
|
@ -53,16 +53,15 @@ impl<'a> Renderer2D<'a> {
|
||||||
|
|
||||||
let surface = instance.create_surface(window).unwrap();
|
let surface = instance.create_surface(window).unwrap();
|
||||||
|
|
||||||
let adapter = instance
|
let adapter = pollster::block_on(instance
|
||||||
.request_adapter(&wgpu::RequestAdapterOptions {
|
.request_adapter(&wgpu::RequestAdapterOptions {
|
||||||
power_preference: wgpu::PowerPreference::default(),
|
power_preference: wgpu::PowerPreference::default(),
|
||||||
compatible_surface: Some(&surface),
|
compatible_surface: Some(&surface),
|
||||||
force_fallback_adapter: false,
|
force_fallback_adapter: false,
|
||||||
})
|
}))
|
||||||
.await
|
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let (device, queue) = adapter
|
let (device, queue) = pollster::block_on(adapter
|
||||||
.request_device(
|
.request_device(
|
||||||
&wgpu::DeviceDescriptor {
|
&wgpu::DeviceDescriptor {
|
||||||
label: None,
|
label: None,
|
||||||
|
@ -71,8 +70,7 @@ impl<'a> Renderer2D<'a> {
|
||||||
memory_hints: Default::default(),
|
memory_hints: Default::default(),
|
||||||
},
|
},
|
||||||
None, // Trace path
|
None, // Trace path
|
||||||
)
|
))
|
||||||
.await
|
|
||||||
.unwrap();
|
.unwrap();
|
||||||
|
|
||||||
let surface_caps = surface.get_capabilities(&adapter);
|
let surface_caps = surface.get_capabilities(&adapter);
|
||||||
|
@ -1009,8 +1007,8 @@ impl<'a> Renderer2D<'a> {
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> Renderer for Renderer2D<'a> {
|
impl<'a> Renderer for Renderer2D<'a> {
|
||||||
async fn new(window: Arc<Window>, clear_color: Option<impl Color>) -> Renderer2D<'a> {
|
fn new(window: Arc<Window>, clear_color: Option<impl Color>) -> Renderer2D<'a> {
|
||||||
Self::new(window, clear_color).await
|
Self::new(window, clear_color)
|
||||||
}
|
}
|
||||||
|
|
||||||
fn size(&self) -> PhysicalSize<u32> {
|
fn size(&self) -> PhysicalSize<u32> {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue