wgpu


let instance = wgpu::Instance::new(wgpu::BackendBit::PRIMARY);
let surface = unsafe { instance.create_surface(window) };
let adapter = instance.request_adapter(...)
let (device, queue) = adapter.request_device(...)
let swap_chain = device.create_swap_chain(...)
let frame = self.swap_chain.get_current_frame()?.output;
let mut encoder = device.create_command_encoder(...)
let mut render_pass = encoder.begin_render_pass(...)
queue.submit(iter::once(encoder.finish()));

...
let shader = device.create_shader_module(...)
let render_pipeline_layout = device.create_pipeline_layout(...)
let render_pipeline = device.create_render_pipeline(...)
...
render_pass.set_pipeline(...);
render_pass.draw(0..3, 0..1);
...
// wgpu 中的坐标系基于 DirectX 和 Metal 的坐标系。 这意味着在标准化设备坐标中,x 轴和 y 轴在 -1.0 到 +1.0 的范围内,z 轴在 0.0 到 +1.0 的范围内

render_pass.set_vertex_buffer(...);
render_pass.set_index_buffer(...)
render_pass.draw_indexed(...)