Crate smaa[−][src]
Post-process antialiasing for wgpu-rs, using the SMAA reference implementation.
Example
// Initialize wgpu let event_loop = EventLoop::new(); let window = winit::window::Window::new(&event_loop).unwrap(); let instance = wgpu::Instance::new(wgpu::BackendBit::all()); let surface = unsafe { instance.create_surface(&window) }; let adapter = instance.request_adapter(&Default::default()).await.unwrap(); let (device, queue) = adapter.request_device(&Default::default(), None).await?; let swapchain_format = adapter.get_swap_chain_preferred_format(&surface); let mut swap_chain = device.create_swap_chain(&surface, &wgpu::SwapChainDescriptor { usage: wgpu::TextureUsage::RENDER_ATTACHMENT, format: swapchain_format, width: window.inner_size().width, height: window.inner_size().width, present_mode: wgpu::PresentMode::Mailbox, }); // Create SMAA target let mut smaa_target = SmaaTarget::new( &device, &queue, window.inner_size().width, window.inner_size().height, wgpu::TextureFormat::Rgba8Unorm, swapchain_format )?; // Main loop event_loop.run(move |event, _, control_flow| { match event { Event::RedrawRequested(_) => { let frame = smaa_target.color_target(); // Render the scene into `frame`. // [...] let output_frame = swap_chain.get_current_frame().unwrap().output; smaa_target.resolve(&device, &queue, &output_frame.view); } _ => {} } });
Structs
SmaaTarget | A |
Enums
ToneMappingFunction | Which tone mapping function to use. Currently, only one such function is supported, but more may be added in the future. |