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 {
|
||||
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::<R>());
|
||||
|
||||
info!("Setting up!");
|
||||
|
|
|
@ -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"
|
||||
chrono = "0.4.40"
|
||||
pollster = "0.3"
|
|
@ -4,7 +4,7 @@ use winit::window::Window;
|
|||
use comet_colors::Color;
|
||||
|
||||
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 resize(&mut self, new_size: winit::dpi::PhysicalSize<u32>);
|
||||
fn update(&mut self) -> f32;
|
||||
|
|
|
@ -43,7 +43,7 @@ pub struct 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 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<Window>, clear_color: Option<impl Color>) -> Renderer2D<'a> {
|
||||
Self::new(window, clear_color).await
|
||||
fn new(window: Arc<Window>, clear_color: Option<impl Color>) -> Renderer2D<'a> {
|
||||
Self::new(window, clear_color)
|
||||
}
|
||||
|
||||
fn size(&self) -> PhysicalSize<u32> {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue