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
.