pub struct DrawPass<'a> { /* private fields */ }Implementations§
Source§impl DrawPass<'_>
impl DrawPass<'_>
pub fn draw(&mut self, vertices: Range<u32>, instances: Range<u32>)
pub fn draw_indexed( &mut self, indices: Range<u32>, base_vertex: i32, instances: Range<u32>, )
pub fn set_viewport( &mut self, x: f32, y: f32, w: f32, h: f32, min_depth: f32, max_depth: f32, )
pub fn set_scissor_rect(&mut self, x: u32, y: u32, w: u32, h: u32)
pub fn set_blend_constant(&mut self, color: Color)
pub fn set_stencil_reference(&mut self, reference: u32)
pub fn set_pipeline(&mut self, pipeline: &RenderPipeline)
pub fn set_vertex_buffer( &mut self, slot: u32, buffer: &Buffer, offset: u64, size: u64, )
pub fn set_index_buffer( &mut self, buffer: &Buffer, format: IndexFormat, offset: u64, size: u64, )
pub fn set_bind_group( &mut self, group: u32, bind_group: &BindGroup, offsets: &[u32], )
pub fn push_debug_group(&mut self, label: &str)
pub fn pop_debug_group(&mut self)
pub fn insert_debug_marker(&mut self, label: &str)
Source§impl DrawPass<'_>
impl DrawPass<'_>
pub fn draw_rect( &mut self, x: f32, y: f32, w: f32, h: f32, thickness: f32, color: Color, )
pub fn draw_line( &mut self, x1: f32, y1: f32, x2: f32, y2: f32, thickness: f32, color: Color, )
pub fn draw_ellipse( &mut self, cx: f32, cy: f32, rx: f32, ry: f32, segments: u32, thickness: f32, color: Color, )
Sourcepub fn draw_world_line(
&mut self,
camera: &Camera,
p0: Vec3,
p1: Vec3,
thickness: f32,
color: Color,
)
pub fn draw_world_line( &mut self, camera: &Camera, p0: Vec3, p1: Vec3, thickness: f32, color: Color, )
A line between two world-space points, projected through camera. Unlike draw_model/
draw_world_sprite, not depth-tested — for editor-only gizmos that should always draw on
top. No-ops if an endpoint is behind the camera (w <= 0) rather than drawing a
folded-back bogus line.
Sourcepub fn draw_ui_sprite(
&mut self,
x: f32,
y: f32,
w: f32,
h: f32,
src_x: f32,
src_y: f32,
src_w: f32,
src_h: f32,
tex_w: f32,
tex_h: f32,
color: Color,
model: Mat4,
bind_group: &BindGroup,
)
pub fn draw_ui_sprite( &mut self, x: f32, y: f32, w: f32, h: f32, src_x: f32, src_y: f32, src_w: f32, src_h: f32, tex_w: f32, tex_h: f32, color: Color, model: Mat4, bind_group: &BindGroup, )
Draws a sprite in screen space (pixel coordinates), ignoring the camera. Use for UI/HUD elements.
model transforms the quad in the sprite’s local space, where the origin is the
top-left corner and the quad spans (0, 0)..(w, h). The result is then offset by
(x, y). Only the XY components of the transform are used.
Sourcepub fn draw_world_sprite(
&mut self,
x: f32,
y: f32,
z: f32,
w: f32,
h: f32,
src_x: f32,
src_y: f32,
src_w: f32,
src_h: f32,
tex_w: f32,
tex_h: f32,
color: Color,
highlight: Color,
model: Mat4,
bind_group: &BindGroup,
)
pub fn draw_world_sprite( &mut self, x: f32, y: f32, z: f32, w: f32, h: f32, src_x: f32, src_y: f32, src_w: f32, src_h: f32, tex_w: f32, tex_h: f32, color: Color, highlight: Color, model: Mat4, bind_group: &BindGroup, )
Draws a sprite as a quad in world space (on the XY plane at depth z), transformed by the camera’s view-projection matrix.
model transforms the quad in the sprite’s local space, where the origin is the
bottom-left corner and the quad spans (0, 0)..(w, h). The result is then offset by
(x, y, z), so a rotation about Z spins the quad in place rather than orbiting the
world origin.
Sourcepub fn draw_world_sprite_outline(
&mut self,
x: f32,
y: f32,
z: f32,
w: f32,
h: f32,
model: Mat4,
)
pub fn draw_world_sprite_outline( &mut self, x: f32, y: f32, z: f32, w: f32, h: f32, model: Mat4, )
Draws a solid-blue selection outline behind a world sprite: a flat quad matching
draw_world_sprite’s own quad but enlarged (in the sprite’s local XY plane) by a margin
proportional to its size. Coplanar with the real sprite, so it relies on draw order —
call this before DrawPass::draw_world_sprite for the same sprite — rather than depth
testing to stay confined to a border: the real sprite drawn afterward fully covers its own
footprint (and partially-transparent texture pixels let a thin rim of the outline show
through at the edges).
Sourcepub fn draw_model(&mut self, model: &Model)
pub fn draw_model(&mut self, model: &Model)
Draws a loaded Model in world space, transformed by the camera and the model’s own
transform. Each mesh is drawn with its assigned material’s texture bound.
Sourcepub fn draw_model_outline(&mut self, model: &Model)
pub fn draw_model_outline(&mut self, model: &Model)
Draws a solid-blue selection outline around model (see create_model_outline_pipeline
for the technique). Intended to be called right after DrawPass::draw_model for the
same model, e.g. by editor-style tooling highlighting the selected entity.
Auto Trait Implementations§
impl<'a> !RefUnwindSafe for DrawPass<'a>
impl<'a> !UnwindSafe for DrawPass<'a>
impl<'a> Freeze for DrawPass<'a>
impl<'a> Send for DrawPass<'a>
impl<'a> Sync for DrawPass<'a>
impl<'a> Unpin for DrawPass<'a>
impl<'a> UnsafeUnpin for DrawPass<'a>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more