pub enum RenderResolution {
Native,
Fixed {
w: u32,
h: u32,
},
Scale(f32),
}Expand description
Where the per-pixel raycaster actually runs, decoupled from the window size (RP.0). Both backends are per-pixel marchers, so frame cost scales with the pixel count — rendering into a fixed logical target and nearest-upscaling it to the window makes FPS independent of window size and creates the seam for the later posterize / SSAA post (RP.1/RP.2).
The default (Native) keeps logical == window
and is byte-identical to the pre-RP straight blit.
Variants§
Native
Logical resolution == window. Default. Identical to pre-RP behaviour.
Fixed
Fixed logical grid, independent of the window (the retro pixel grid). Upscaled to the window with nearest sampling (hard pixels). A logical aspect ratio different from the window’s stretches non-uniformly — a deliberate, classic fixed-res look (no letterbox in RP.0).
Scale(f32)
Logical = round(window * factor). 0.5 ⇒ a quarter of the pixels,
aspect preserved. Clamped to >= 1px per axis.
Trait Implementations§
Source§impl Clone for RenderResolution
impl Clone for RenderResolution
Source§fn clone(&self) -> RenderResolution
fn clone(&self) -> RenderResolution
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for RenderResolution
Source§impl Debug for RenderResolution
impl Debug for RenderResolution
Source§impl Default for RenderResolution
impl Default for RenderResolution
Source§fn default() -> RenderResolution
fn default() -> RenderResolution
Source§impl PartialEq for RenderResolution
impl PartialEq for RenderResolution
impl StructuralPartialEq for RenderResolution
Auto Trait Implementations§
impl Freeze for RenderResolution
impl RefUnwindSafe for RenderResolution
impl Send for RenderResolution
impl Sync for RenderResolution
impl Unpin for RenderResolution
impl UnsafeUnpin for RenderResolution
impl UnwindSafe for RenderResolution
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> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>. Box<dyn Any> can
then be further downcast into Box<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>. Rc<Any> 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> 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 more