diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-10 03:11:29 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-10 03:11:29 +0100 |
commit | 5d935c26589c014e6dc2941481988abf50e51fdf (patch) | |
tree | bc679c9e6ef6783749d3413c0e8368979dbb6b15 /client/src/renderer.rs | |
parent | 3ecd4588d4aa85a93a06aa5a1a3a60b918a72557 (diff) | |
download | weareserver-5d935c26589c014e6dc2941481988abf50e51fdf.tar weareserver-5d935c26589c014e6dc2941481988abf50e51fdf.tar.bz2 weareserver-5d935c26589c014e6dc2941481988abf50e51fdf.tar.zst |
fix triple inverted projection madness
Diffstat (limited to 'client/src/renderer.rs')
-rw-r--r-- | client/src/renderer.rs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/client/src/renderer.rs b/client/src/renderer.rs index b1ff227..66f8c5e 100644 --- a/client/src/renderer.rs +++ b/client/src/renderer.rs @@ -14,7 +14,9 @@ You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ -use crate::{camera::Camera, scene_prepare::ScenePreparer, scene_render::ScenePipeline}; +use crate::{ + camera::Camera, scene_prepare::ScenePreparer, scene_render::ScenePipeline, ui::UiRenderer, +}; use anyhow::{Result, anyhow}; use log::{info, warn}; use pollster::FutureExt; @@ -33,6 +35,7 @@ pub struct Renderer<'a> { device: Arc<Device>, surface_configuration: SurfaceConfiguration, scene_pipeline: ScenePipeline, + ui_renderer: UiRenderer, pub scene_prepare: ScenePreparer, surface_needs_reconfigure: bool, } @@ -82,6 +85,8 @@ impl<'a> Renderer<'a> { ScenePipeline::new(&device, surface_configuration.format); let scene_prepare = ScenePreparer::new(device.clone(), queue.clone(), texture_bgl); + let ui_renderer = UiRenderer::new(&device, surface_configuration.format); + Ok(Self { scene_pipeline, scene_prepare, @@ -89,6 +94,7 @@ impl<'a> Renderer<'a> { device, queue, surface_configuration, + ui_renderer, surface_needs_reconfigure: false, }) } @@ -130,6 +136,14 @@ impl<'a> Renderer<'a> { projection, ); + self.ui_renderer.draw( + &self.device, + &self.queue, + &mut commands, + &target_view, + projection, + ); + let i = self.queue.submit(Some(commands.finish())); self.device.poll(MaintainBase::WaitForSubmissionIndex(i)); |