Trait riddle_renderer_wgpu::WGPUDevice [−][src]
pub trait WGPUDevice { fn begin_frame(&self) -> Result<(), WGPURendererError>; fn end_frame(&self); fn viewport_dimensions(&self) -> Vector2<f32>; fn with_device_info<R, F: FnOnce(&WGPUDeviceInfo<'_>) -> Result<R, WGPURendererError>>(
&self,
f: F
) -> Result<R, WGPURendererError>; fn with_frame<R, F: FnOnce(&SwapChainFrame) -> Result<R, WGPURendererError>>(
&self,
f: F
) -> Result<R, WGPURendererError>; }
A Renderer
compatible WGPU device.
A default implementation exists for riddle_platform_winit::Window
in WindowWGPUDevice
.
The application may implement this trait to layer the renderer on top of custom WGPU renderer.
Example
use std::sync::Arc; use riddle::{common::Color, platform::*, renderer::*, *}; #[derive(Clone)] struct ACustomRendererHandle { // [..] } impl ACustomRendererHandle { // [..] } impl WGPUDevice for ACustomRendererHandle { // [..] } fn main() -> Result<(), RiddleError> { let rdl = RiddleLib::new()?; let window = WindowBuilder::new().build(rdl.context())?; let custom_renderer = ACustomRendererHandle::new(); let renderer = Renderer::new_from_device(custom_renderer.clone())?; rdl.run(move |rdl| match rdl.event() { Event::Platform(PlatformEvent::WindowClose(_)) => rdl.quit(), Event::ProcessFrame => { custom_renderer.start_render(); custom_renderer.render_3d_scene(); renderer.render(|render_ctx| { render_ctx.clear(Color::RED) }).unwrap(); custom_renderer.end_render(); } _ => (), }) }
Required methods
fn begin_frame(&self) -> Result<(), WGPURendererError>
[src]
Called when the Renderer
begins rendering to the swap chain frame.
Invoked through Renderer::render
fn end_frame(&self)
[src]
When the renderer is done renderering to the swap chain frame.
Invoked by a RenderContext::present
call on the context returned from
Renderer::render
.
fn viewport_dimensions(&self) -> Vector2<f32>
[src]
The viewport dimensions of the swapchain frame.
This controls the projection matrix used by the sprite renderer.
fn with_device_info<R, F: FnOnce(&WGPUDeviceInfo<'_>) -> Result<R, WGPURendererError>>(
&self,
f: F
) -> Result<R, WGPURendererError>
[src]
&self,
f: F
) -> Result<R, WGPURendererError>
Provides a reference to the set of wgpu device state for use by the renderer.
fn with_frame<R, F: FnOnce(&SwapChainFrame) -> Result<R, WGPURendererError>>(
&self,
f: F
) -> Result<R, WGPURendererError>
[src]
&self,
f: F
) -> Result<R, WGPURendererError>
Provide a reference to the current swap chain frame for use by the renderer.
Implementors
impl WGPUDevice for WindowWGPUDevice
[src]
fn viewport_dimensions(&self) -> Vector2<f32>
[src]
fn begin_frame(&self) -> Result<(), WGPURendererError>
[src]
fn end_frame(&self)
[src]
fn with_device_info<R, F>(&self, f: F) -> Result<R, WGPURendererError> where
F: FnOnce(&WGPUDeviceInfo<'_>) -> Result<R, WGPURendererError>,
[src]
F: FnOnce(&WGPUDeviceInfo<'_>) -> Result<R, WGPURendererError>,
fn with_frame<R, F>(&self, f: F) -> Result<R, WGPURendererError> where
F: FnOnce(&SwapChainFrame) -> Result<R, WGPURendererError>,
[src]
F: FnOnce(&SwapChainFrame) -> Result<R, WGPURendererError>,