pub trait Primitive:
Debug
+ MaybeSend
+ MaybeSync
+ 'static {
type Renderer: MaybeSend + MaybeSync;
// Required methods
fn initialize(
&self,
device: &Device,
queue: &Queue,
format: TextureFormat,
) -> Self::Renderer;
fn prepare(
&self,
renderer: &mut Self::Renderer,
device: &Device,
queue: &Queue,
bounds: &Rectangle,
viewport: &Viewport,
);
// Provided methods
fn draw(
&self,
_renderer: &Self::Renderer,
_render_pass: &mut RenderPass<'_>,
) -> bool { ... }
fn render(
&self,
_renderer: &Self::Renderer,
_encoder: &mut CommandEncoder,
_target: &TextureView,
_clip_bounds: &Rectangle<u32>,
) { ... }
}Expand description
A set of methods which allows a Primitive to be rendered.
Required Associated Types§
Required Methods§
Sourcefn initialize(
&self,
device: &Device,
queue: &Queue,
format: TextureFormat,
) -> Self::Renderer
fn initialize( &self, device: &Device, queue: &Queue, format: TextureFormat, ) -> Self::Renderer
Provided Methods§
Sourcefn draw(
&self,
_renderer: &Self::Renderer,
_render_pass: &mut RenderPass<'_>,
) -> bool
fn draw( &self, _renderer: &Self::Renderer, _render_pass: &mut RenderPass<'_>, ) -> bool
Draws the Primitive in the given [wgpu::RenderPass].
When possible, this should be implemented over render
since reusing the existing render pass should be considerably more
efficient than issuing a new one.
The viewport and scissor rect of the render pass provided is set
to the bounds and clip bounds of the Primitive, respectively.
If you have complex composition needs, then you can leverage
render by returning false here.
By default, it does nothing and returns false.