#[non_exhaustive]pub struct ViewportFrame {
pub background_colour: Option<[f32; 4]>,
pub wireframe_mode: bool,
pub show_grid: bool,
pub grid_cell_size: f32,
pub grid_half_extent: f32,
pub grid_z: f32,
pub grid_colour: Option<[f32; 3]>,
pub show_axes_indicator: bool,
pub force_cluster_fallback: bool,
pub cluster_stats_request: bool,
}Expand description
Viewport presentation settings for one frame.
Groups background, grid, and axes indicator : the viewport chrome that is independent of world-space content.
Fields (Non-exhaustive)§
This struct is marked as non-exhaustive
Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.background_colour: Option<[f32; 4]>Optional background/clear colour [r, g, b, a]. None = adapter default.
wireframe_mode: boolWhether to render the scene in wireframe mode. Default: false.
show_grid: boolWhether to render the ground-plane grid. Default: false.
grid_cell_size: f32Grid cell size in world units. Zero = camera-distance-based adaptive spacing.
grid_half_extent: f32Half-extent of the grid in world units. Zero = 1000 (effectively infinite).
grid_z: f32World-space Z coordinate of the grid plane (3D mode only, Z-up). Default: 0.0.
grid_colour: Option<[f32; 3]>RGB colour for the grid lines. None = renderer default (mid-grey).
show_axes_indicator: boolWhether to draw the axes orientation indicator overlay. Default: true.
force_cluster_fallback: boolForce every lit pipeline to take the straight-iteration light loop even when the active light count is above the cluster-build threshold. Set this and the clustered path renders pixels identical to the path the renderer would take with one or two lights, which lets a consumer A/B against the clustered path to spot bugs. Default: false.
cluster_stats_request: boolTrigger a host-visible readback of the cluster cell array at the end
of prepare_scene. The result is exposed via
ViewportRenderer::cluster_stats. The readback blocks the calling
thread on a device poll, so leave this off unless a debug panel is
actively displaying the numbers. Default: false.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for ViewportFrame
impl RefUnwindSafe for ViewportFrame
impl Send for ViewportFrame
impl Sync for ViewportFrame
impl Unpin for ViewportFrame
impl UnsafeUnpin for ViewportFrame
impl UnwindSafe for ViewportFrame
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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>, which can then be
downcast into Box<dyn ConcreteType> where ConcreteType implements Trait.Source§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>, which can then be further
downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§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.Source§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.Source§impl<T> DowncastSend for T
impl<T> DowncastSend for T
Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.