[][src]Crate riddle_renderer_wgpu

Riddle simple sprite-based renderer built on wgpu.

The renderer can be used by itself as the only renderer in your application, or it can be constructed on top of existing WGPU devices to provide simple 2D rendering.

Riddle Example

The recommended way to use this crate is through the main riddle crate. Riddle exposes this crate through riddle::renderer. The following example lets this crate take full ownership over creating the WGPU device.

use riddle::{common::Color, platform::*, renderer::*, *};

fn main() -> Result<(), RiddleError> {
    let rdl =  RiddleLib::new()?;
    let window = WindowBuilder::new().build(rdl.context())?;
    let renderer = Renderer::new_from_window(&window)?;

    rdl.run(move |rdl| {
        match rdl.event() {
            Event::Platform(PlatformEvent::WindowClose(_)) => rdl.quit(),
            Event::ProcessFrame => {
                let mut render_ctx = renderer.begin_render().unwrap();
                render_ctx.clear(Color::RED);
                render_ctx.present();
            },
            _ => ()
         }
    })
}

Direct Usage

To use this crate directly see ext::RendererWGPUDevice for how to use the renderer with custom WGPU devices.

Modules

ext

Traits and structs required to use custom WGPU devices.

Structs

Renderer

A simple 2D sprite based renderer.

RendererHandle
RendererWeak
Sprite

A renderable region of a texture.

SpriteAtlasBuilder

Construct a set of Sprites from a set of riddle_image::Images which share a texture atlas.

SpriteBuilder

Builder to construct new Sprites from riddle_image::Images.

SpriteRenderCommand

Builder for a Sprite render call

SpriteRenderTarget

A target which can be both rendered to and referenced as a Sprite for rendering.

Enums

FilterMode

Interpolation mode between texels when rendering

RendererError

Traits

RenderContext

Types which accept render calls, tracks current world transform, and are consumed when the calls are presented.