diff --git a/.gitignore b/.gitignore
index ea8c4bf..7fef46d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
/target
+flamegraph.svg
+perf.data*
diff --git a/flamegraph.svg b/flamegraph.svg
deleted file mode 100644
index 96fa5ab..0000000
--- a/flamegraph.svg
+++ /dev/null
@@ -1,491 +0,0 @@
-
\ No newline at end of file
diff --git a/perf.data b/perf.data
deleted file mode 100644
index 76b53ed..0000000
Binary files a/perf.data and /dev/null differ
diff --git a/perf.data.old b/perf.data.old
deleted file mode 100644
index d919b44..0000000
Binary files a/perf.data.old and /dev/null differ
diff --git a/src/client/render/mod.rs b/src/client/render/mod.rs
index 6871a13..a993650 100644
--- a/src/client/render/mod.rs
+++ b/src/client/render/mod.rs
@@ -13,10 +13,7 @@ use std::{
time::{Duration, Instant},
};
use voxel::VoxelPipeline;
-use winit::{
- dpi::PhysicalSize,
- window::{Fullscreen, Window},
-};
+use winit::dpi::PhysicalSize;
pub struct Renderer<'a> {
size: Vector2,
@@ -34,23 +31,11 @@ pub struct Renderer<'a> {
}
impl<'a> Renderer<'a> {
- pub fn new(window: Arc) -> Self {
- let fullscreen = false;
- if fullscreen {
- window.set_fullscreen(Some(Fullscreen::Borderless(None)));
- }
-
- let size = window.inner_size();
-
- let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
- backends: wgpu::Backends::PRIMARY,
- ..Default::default()
- });
-
- let surface = instance
- .create_surface(window)
- .expect("Could not create window surface!");
-
+ pub fn new(
+ instance: wgpu::Instance,
+ surface: wgpu::Surface<'a>,
+ size: PhysicalSize,
+ ) -> Self {
let adapter = pollster::block_on(instance.request_adapter(&wgpu::RequestAdapterOptions {
power_preference: wgpu::PowerPreference::default(),
compatible_surface: Some(&surface),
diff --git a/src/client/render/thread.rs b/src/client/render/thread.rs
index 0f06c53..81fd061 100644
--- a/src/client/render/thread.rs
+++ b/src/client/render/thread.rs
@@ -34,10 +34,21 @@ pub struct CreateVoxelGrid {
impl Renderer<'_> {
pub fn spawn(window: Arc) -> (RendererChannel, JoinHandle<()>) {
let (s, mut r) = channel();
+
+ let size = window.inner_size();
+
+ let instance = wgpu::Instance::new(wgpu::InstanceDescriptor {
+ backends: wgpu::Backends::PRIMARY,
+ ..Default::default()
+ });
+
+ let surface = instance
+ .create_surface(window)
+ .expect("Could not create window surface!");
(
s,
std::thread::spawn(move || {
- Self::new(window.clone()).start(&mut r);
+ Self::new(instance, surface, size).start(&mut r);
}),
)
}