diff options
Diffstat (limited to 'client/src/render/ui.rs')
-rw-r--r-- | client/src/render/ui.rs | 48 |
1 files changed, 25 insertions, 23 deletions
diff --git a/client/src/render/ui.rs b/client/src/render/ui.rs index 4de2633..29e9461 100644 --- a/client/src/render/ui.rs +++ b/client/src/render/ui.rs @@ -33,12 +33,12 @@ use wgpu::{ BindGroupLayoutDescriptor, BindGroupLayoutEntry, BindingResource, BindingType, BlendState, Buffer, BufferDescriptor, BufferUsages, ColorTargetState, ColorWrites, CommandEncoder, CompareFunction, DepthStencilState, Device, Extent3d, FilterMode, FragmentState, FrontFace, - ImageCopyTexture, ImageDataLayout, IndexFormat, LoadOp, MultisampleState, Operations, Origin3d, - PipelineCompilationOptions, PipelineLayout, PipelineLayoutDescriptor, PolygonMode, - PrimitiveState, PrimitiveTopology, PushConstantRange, Queue, RenderPassColorAttachment, - RenderPassDepthStencilAttachment, RenderPassDescriptor, RenderPipeline, - RenderPipelineDescriptor, SamplerBindingType, SamplerDescriptor, ShaderStages, StoreOp, - SurfaceConfiguration, Texture, TextureAspect, TextureDescriptor, TextureDimension, + IndexFormat, LoadOp, MultisampleState, Operations, Origin3d, PipelineCompilationOptions, + PipelineLayout, PipelineLayoutDescriptor, PolygonMode, PrimitiveState, PrimitiveTopology, + PushConstantRange, Queue, RenderPassColorAttachment, RenderPassDepthStencilAttachment, + RenderPassDescriptor, RenderPipeline, RenderPipelineDescriptor, SamplerBindingType, + SamplerDescriptor, ShaderStages, StoreOp, SurfaceConfiguration, TexelCopyBufferLayout, + TexelCopyTextureInfo, Texture, TextureAspect, TextureDescriptor, TextureDimension, TextureFormat, TextureSampleType, TextureUsages, TextureView, TextureViewDescriptor, TextureViewDimension, VertexBufferLayout, VertexState, VertexStepMode, include_wgsl, util::{DeviceExt, TextureDataOrder}, @@ -133,7 +133,7 @@ impl UiRenderer { fn create_pipeline( device: &Device, - pipeline_layout: &PipelineLayout, + layout: &PipelineLayout, format: TextureFormat, sample_count: u32, ) -> RenderPipeline { @@ -141,7 +141,7 @@ impl UiRenderer { let vert_shader = device.create_shader_module(include_wgsl!("shaders/vertex_ui.wgsl")); device.create_render_pipeline(&RenderPipelineDescriptor { label: Some("ui pipeline"), - layout: Some(&pipeline_layout), + layout: Some(layout), fragment: Some(FragmentState { module: &frag_shader, entry_point: Some("main"), @@ -241,12 +241,12 @@ impl UiRenderer { ImageData::Font(font_image) => font_image.srgba_pixels(None).collect(), }; - if let Some((_texbg, tex, texsize)) = textures.get_mut(&texid) { + if let Some((_texbg, texture, texsize)) = textures.get_mut(&texid) { let pos = delta.pos.unwrap_or([0, 0]); debug!("updating UI texture at {pos:?}"); self.queue.write_texture( - ImageCopyTexture { - texture: &tex, + TexelCopyTextureInfo { + texture, mip_level: 0, origin: Origin3d { x: pos[0] as u32, @@ -256,7 +256,7 @@ impl UiRenderer { aspect: TextureAspect::All, }, bytemuck::cast_slice::<_, u8>(&pixels), - ImageDataLayout { + TexelCopyBufferLayout { offset: 0, bytes_per_row: Some(texsize[0] * 4), rows_per_image: None, @@ -344,7 +344,7 @@ impl UiRenderer { }, })], depth_stencil_attachment: Some(RenderPassDepthStencilAttachment { - view: &depth, + view: depth, depth_ops: Some(Operations { load: LoadOp::Load, store: StoreOp::Store, @@ -356,17 +356,19 @@ impl UiRenderer { rpass.set_pipeline(&self.pipeline); - let mut raw_input = egui::RawInput::default(); - raw_input.viewport_id = surfaces.keys().next().copied().unwrap(); - raw_input.viewports = surfaces - .keys() - .map(|k| { - (*k, ViewportInfo { - native_pixels_per_point: Some(2.), - ..Default::default() + let raw_input = egui::RawInput { + viewport_id: surfaces.keys().next().copied().unwrap(), + viewports: surfaces + .keys() + .map(|k| { + (*k, ViewportInfo { + native_pixels_per_point: Some(2.), + ..Default::default() + }) }) - }) - .collect(); + .collect(), + ..Default::default() + }; let mut surfaces_closed = Vec::new(); for (viewport_id, surf) in surfaces.iter_mut() { |