diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-10 14:33:57 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-10 14:33:57 +0100 |
commit | dbfb01fa7b5b05686dcbdd9d73643d7866810668 (patch) | |
tree | 9703c8222a459f1d7c7058dcfe7374ca29c98cbf /client/src/scene_render.rs | |
parent | 9446cda10e1a1b82e08d94c9c43a3e024e55c655 (diff) | |
download | weareserver-dbfb01fa7b5b05686dcbdd9d73643d7866810668.tar weareserver-dbfb01fa7b5b05686dcbdd9d73643d7866810668.tar.bz2 weareserver-dbfb01fa7b5b05686dcbdd9d73643d7866810668.tar.zst |
fix egui rendering
Diffstat (limited to 'client/src/scene_render.rs')
-rw-r--r-- | client/src/scene_render.rs | 52 |
1 files changed, 8 insertions, 44 deletions
diff --git a/client/src/scene_render.rs b/client/src/scene_render.rs index 9dc14d1..9aceaef 100644 --- a/client/src/scene_render.rs +++ b/client/src/scene_render.rs @@ -20,21 +20,19 @@ use weareshared::{packets::Resource, resources::Prefab, tree::SceneTree}; use wgpu::{ BindGroupLayout, BindGroupLayoutDescriptor, BindGroupLayoutEntry, BindingType, BlendState, Color, ColorTargetState, ColorWrites, CommandEncoder, CompareFunction, DepthBiasState, - DepthStencilState, Device, Extent3d, FragmentState, FrontFace, IndexFormat, LoadOp, - MultisampleState, Operations, PipelineCompilationOptions, PipelineLayoutDescriptor, - PolygonMode, PrimitiveState, PrimitiveTopology, PushConstantRange, RenderPassColorAttachment, + DepthStencilState, Device, FragmentState, FrontFace, IndexFormat, LoadOp, MultisampleState, + Operations, PipelineCompilationOptions, PipelineLayoutDescriptor, PolygonMode, PrimitiveState, + PrimitiveTopology, PushConstantRange, RenderPassColorAttachment, RenderPassDepthStencilAttachment, RenderPassDescriptor, RenderPipeline, RenderPipelineDescriptor, SamplerBindingType, ShaderStages, StencilState, StoreOp, - TextureDescriptor, TextureDimension, TextureFormat, TextureSampleType, TextureUsages, - TextureView, TextureViewDescriptor, TextureViewDimension, VertexAttribute, VertexBufferLayout, - VertexFormat, VertexState, VertexStepMode, include_wgsl, + TextureFormat, TextureSampleType, TextureView, TextureViewDimension, VertexAttribute, + VertexBufferLayout, VertexFormat, VertexState, VertexStepMode, include_wgsl, }; use crate::scene_prepare::{DemandMap, RPrefab}; pub struct ScenePipeline { pipeline: RenderPipeline, - depth: TextureView, } macro_rules! v_attr { @@ -55,22 +53,6 @@ impl ScenePipeline { pub fn new(device: &Device, format: TextureFormat) -> (Self, BindGroupLayout) { let module = device.create_shader_module(include_wgsl!("shader.wgsl")); - let depth = device.create_texture(&TextureDescriptor { - label: None, - size: Extent3d { - height: 256, - width: 256, - depth_or_array_layers: 1, - }, - mip_level_count: 1, - sample_count: 1, - dimension: TextureDimension::D2, - format: TextureFormat::Depth32Float, - usage: TextureUsages::RENDER_ATTACHMENT, - view_formats: &[], - }); - let depth = depth.create_view(&TextureViewDescriptor::default()); - let bind_group_layout = device.create_bind_group_layout(&BindGroupLayoutDescriptor { entries: &[ BindGroupLayoutEntry { @@ -137,32 +119,14 @@ impl ScenePipeline { multiview: None, cache: None, }); - (Self { pipeline, depth }, bind_group_layout) - } - - pub fn resize(&mut self, device: &Device, width: u32, height: u32) { - self.depth = device - .create_texture(&TextureDescriptor { - label: None, - size: Extent3d { - height, - width, - depth_or_array_layers: 1, - }, - mip_level_count: 1, - sample_count: 1, - dimension: TextureDimension::D2, - format: TextureFormat::Depth32Float, - usage: TextureUsages::RENDER_ATTACHMENT, - view_formats: &[], - }) - .create_view(&TextureViewDescriptor::default()); + (Self { pipeline }, bind_group_layout) } pub fn draw( &mut self, commands: &mut CommandEncoder, target: &TextureView, + depth: &TextureView, scene: &SceneTree, prefabs: &mut DemandMap<Resource<Prefab>, Arc<RPrefab>>, projection: Mat4, @@ -183,7 +147,7 @@ impl ScenePipeline { }, })], depth_stencil_attachment: Some(RenderPassDepthStencilAttachment { - view: &self.depth, + view: &depth, depth_ops: Some(Operations { load: LoadOp::Clear(1.), store: StoreOp::Store, |