Struct riddle_renderer_wgpu::Renderer [−][src]
pub struct Renderer<Device: WGPUDevice> { /* fields omitted */ }
A simple 2D sprite based renderer.
A renderer can be created for a Window and holds a reference to the window, which will keep the window alive as long as the renderer is alive.
Example
use riddle::{common::Color, platform::*, renderer::*, math::*, *}; fn main() -> Result<(), RiddleError> { let rdl = RiddleLib::new()?; let window = WindowBuilder::new().build(rdl.context())?; let renderer = Renderer::new_from_window(&window)?; renderer.render(|render_ctx| { render_ctx.clear(Color::RED)?; // Change the current transform matrix, and draw a rect render_ctx.set_transform(glam::Mat4::from_scale(glam::vec3(2.0, 2.0, 1.0)).into())?; render_ctx.fill_rect(&Rect::new(vec2(0.0, 0.0), vec2(10.0, 10.0)), Color::GREEN) })?; Ok(()) }
Implementations
impl Renderer<WindowWGPUDevice>
[src]
pub fn new_from_window(window: &Window) -> Result<Self, WGPURendererError>
[src]
Initialize a new Renderer, creating a WGPU device for the window.
Example
let rdl = RiddleLib::new()?; let window = WindowBuilder::new().build(rdl.context())?; let renderer = Renderer::new_from_window(&window)?;
impl<Device: WGPUDevice> Renderer<Device>
[src]
pub fn dimensions(&self) -> Vector2<f32>
[src]
Get the frame dimensions as reported by the WGPUDevice
.
In the case of a default Window renderer, this will be the internal size of the window in logical units.
Example
let rdl = RiddleLib::new()?; let window = WindowBuilder::new().dimensions(300, 400).build(rdl.context())?; let renderer = Renderer::new_from_window(&window)?; assert_eq!(vec2(300.0, 400.0), renderer.dimensions());
pub fn wgpu_device(&self) -> &Device
[src]
pub fn new_from_device(wgpu_device: Device) -> Result<Self, WGPURendererError>
[src]
Or the renderer can be built on top of existing WGPU contexts, to allow the simple renderer to be used on top of custom renderers.
Trait Implementations
impl<D: WGPUDevice> Clone for Renderer<D>
[src]
fn clone(&self) -> Self
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<Device: WGPUDevice> CommonRenderer for Renderer<Device>
[src]
type RenderContext = BufferedRenderer<Device, SwapChainFrameTarget<Device>>
type Sprite = Sprite<Device>
type Texture = Texture
type Shader = Shader
type SpriteFont = SpriteFont<Self>
fn dimensions(&self) -> Vector2<f32>
[src]
fn render<R, F>(&self, f: F) -> Result<R, RendererError> where
F: FnOnce(&mut Self::RenderContext) -> Result<R, RendererError>,
[src]
F: FnOnce(&mut Self::RenderContext) -> Result<R, RendererError>,
impl<Device: WGPUDevice> CommonSprite<Renderer<Device>> for Sprite<Device>
[src]
fn new_from_image(
renderer: &Renderer<Device>,
img: &Image,
init_args: &SpriteInitArgs
) -> Result<Self, RendererError>
[src]
renderer: &Renderer<Device>,
img: &Image,
init_args: &SpriteInitArgs
) -> Result<Self, RendererError>
fn subsprite(&self, source_rect: &Rect<f32>) -> Self
[src]
fn dimensions(&self) -> Vector2<f32>
[src]
fn render_regions<Ctx: RenderContext<Renderer<Device>> + ?Sized>(
&self,
render_ctx: &mut Ctx,
args: &SpriteRenderArgs,
parts: &[(Rect<f32>, Vector2<f32>)]
) -> Result<(), RendererError>
[src]
&self,
render_ctx: &mut Ctx,
args: &SpriteRenderArgs,
parts: &[(Rect<f32>, Vector2<f32>)]
) -> Result<(), RendererError>
pub fn render<Ctx>(
&self,
render_ctx: &mut Ctx,
args: &SpriteRenderArgs
) -> Result<(), RendererError> where
Ctx: RenderContext<R>,
[src]
&self,
render_ctx: &mut Ctx,
args: &SpriteRenderArgs
) -> Result<(), RendererError> where
Ctx: RenderContext<R>,
pub fn render_at<Ctx>(
&self,
render_ctx: &mut Ctx,
location: Vector2<f32>
) -> Result<(), RendererError> where
Ctx: RenderContext<R>,
[src]
&self,
render_ctx: &mut Ctx,
location: Vector2<f32>
) -> Result<(), RendererError> where
Ctx: RenderContext<R>,
Auto Trait Implementations
impl<Device> !RefUnwindSafe for Renderer<Device>
impl<Device> Send for Renderer<Device> where
Device: Send + Sync,
Device: Send + Sync,
impl<Device> Sync for Renderer<Device> where
Device: Send + Sync,
Device: Send + Sync,
impl<Device> Unpin for Renderer<Device>
impl<Device> !UnwindSafe for Renderer<Device>
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Pointable for T
pub const ALIGN: usize
type Init = T
The type for initializers.
pub unsafe fn init(init: <T as Pointable>::Init) -> usize
pub unsafe fn deref<'a>(ptr: usize) -> &'a T
pub unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T
pub unsafe fn drop(ptr: usize)
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,