summaryrefslogtreecommitdiff
path: root/client/src/renderer.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-01-10 03:11:29 +0100
committermetamuffin <metamuffin@disroot.org>2025-01-10 03:11:29 +0100
commit5d935c26589c014e6dc2941481988abf50e51fdf (patch)
treebc679c9e6ef6783749d3413c0e8368979dbb6b15 /client/src/renderer.rs
parent3ecd4588d4aa85a93a06aa5a1a3a60b918a72557 (diff)
downloadweareserver-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.rs16
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));