Skip to main content

oxide_engine/render/
mod.rs

1//! Engine-managed render frame utilities.
2
3pub struct RenderFrame {
4    pub view: wgpu::TextureView,
5    pub encoder: wgpu::CommandEncoder,
6    surface_texture: wgpu::SurfaceTexture,
7}
8
9impl RenderFrame {
10    pub fn new(device: &wgpu::Device, surface_texture: wgpu::SurfaceTexture) -> Self {
11        let view = surface_texture
12            .texture
13            .create_view(&wgpu::TextureViewDescriptor::default());
14        let encoder = device.create_command_encoder(&wgpu::CommandEncoderDescriptor {
15            label: Some("Render Encoder"),
16        });
17
18        Self {
19            view,
20            encoder,
21            surface_texture,
22        }
23    }
24
25    pub fn present(self, queue: &wgpu::Queue) {
26        queue.submit(std::iter::once(self.encoder.finish()));
27        self.surface_texture.present();
28    }
29}