#图形 #wgpu #playground #事件 #事件循环 #设备 #队列

wgpu-playground

wgpu-rs 的游乐场

3 个版本

0.1.2 2021 年 11 月 23 日
0.1.1 2021 年 11 月 22 日
0.1.0 2021 年 11 月 21 日

#977 in 图形 API

MIT/Apache

30KB
424

用法

use wgpu_playground::winit::{
    event::WindowEvent, event_loop::ControlFlow, event_loop::EventLoop, window::Window,
};
use wgpu_playground::{wgpu, Spawner};

fn main() {
    let event_loop = EventLoop::new();
    let window = Window::new(&event_loop).unwrap();
    wgpu_playground::run::<App>(window, event_loop)
}

struct App {}

impl wgpu_playground::Playground for App {
    fn init(
        config: &wgpu::SurfaceConfiguration,
        adapter: &wgpu::Adapter,
        device: &wgpu::Device,
        queue: &wgpu::Queue,
    ) -> Self {
        Self {}
    }

    fn resize(
        &mut self,
        config: &wgpu::SurfaceConfiguration,
        device: &wgpu::Device,
        queue: &wgpu::Queue,
    ) {
        // ...
    }

    fn update(&mut self, event: WindowEvent, control_flow: &mut ControlFlow) {
        if let WindowEvent::CloseRequested = event {
            *control_flow = ControlFlow::Exit;
        }
        // ...
    }

    fn render(
        &mut self,
        view: &wgpu::TextureView,
        device: &wgpu::Device,
        queue: &wgpu::Queue,
        spawner: &Spawner,
    ) {
        // ...
    }
}

依赖

~4–19MB
~258K SLoC