Skip to main content

DrawPass

Struct DrawPass 

Source
pub struct DrawPass<'a> { /* private fields */ }

Implementations§

Source§

impl DrawPass<'_>

Source

pub fn draw(&mut self, vertices: Range<u32>, instances: Range<u32>)

Source

pub fn draw_indexed( &mut self, indices: Range<u32>, base_vertex: i32, instances: Range<u32>, )

Source

pub fn set_viewport( &mut self, x: f32, y: f32, w: f32, h: f32, min_depth: f32, max_depth: f32, )

Source

pub fn set_scissor_rect(&mut self, x: u32, y: u32, w: u32, h: u32)

Source

pub fn set_blend_constant(&mut self, color: Color)

Source

pub fn set_stencil_reference(&mut self, reference: u32)

Source

pub fn set_pipeline(&mut self, pipeline: &RenderPipeline)

Source

pub fn set_vertex_buffer( &mut self, slot: u32, buffer: &Buffer, offset: u64, size: u64, )

Source

pub fn set_index_buffer( &mut self, buffer: &Buffer, format: IndexFormat, offset: u64, size: u64, )

Source

pub fn set_bind_group( &mut self, group: u32, bind_group: &BindGroup, offsets: &[u32], )

Source

pub fn push_debug_group(&mut self, label: &str)

Source

pub fn pop_debug_group(&mut self)

Source

pub fn insert_debug_marker(&mut self, label: &str)

Source§

impl DrawPass<'_>

Source

pub fn draw_rect( &mut self, x: f32, y: f32, w: f32, h: f32, thickness: f32, color: Color, )

Source

pub fn draw_line( &mut self, x1: f32, y1: f32, x2: f32, y2: f32, thickness: f32, color: Color, )

Source

pub fn draw_ellipse( &mut self, cx: f32, cy: f32, rx: f32, ry: f32, segments: u32, thickness: f32, color: Color, )

Source

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.

Source

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.

Source

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.

Source

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).

Source

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.

Source

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> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

§

impl<T> Downcast for T
where T: Any,

§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert 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>

Convert 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)

Convert &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)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
§

impl<T> Downcast<T> for T

§

fn downcast(&self) -> &T

§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> Upcast<T> for T

§

fn upcast(&self) -> Option<&T>

§

impl<T> WasmNotSend for T
where T: Send,

§

impl<T> WasmNotSendSync for T
where T: WasmNotSend + WasmNotSync,

§

impl<T> WasmNotSync for T
where T: Sync,

§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more