#[non_exhaustive]pub struct CameraFrame {
pub render_camera: RenderCamera,
pub viewport_size: [f32; 2],
pub pixels_per_point: f32,
pub viewport_index: usize,
}Expand description
Camera submission state for one frame.
Groups the canonical render camera with viewport sizing and multi-viewport slot index. This is the single owner of all camera-derived state submitted to the renderer each frame.
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.render_camera: RenderCameraCanonical renderer-facing camera state.
viewport_size: [f32; 2]Viewport size in logical pixels (egui points) (width, height). Default: [800.0, 600.0].
pixels_per_point: f32Physical pixels per logical pixel. Set from the window or egui context
(e.g. ui.ctx().pixels_per_point()). Default: 1.0.
The renderer uses this only for GPU texture allocation. All screen-space
math (projection, picking, widget layout) uses viewport_size directly.
viewport_index: usizeMulti-viewport slot index. Default: 0 (single-viewport mode).
Implementations§
Source§impl CameraFrame
impl CameraFrame
Sourcepub fn new(render_camera: RenderCamera, viewport_size: [f32; 2]) -> Self
pub fn new(render_camera: RenderCamera, viewport_size: [f32; 2]) -> Self
Build a camera frame from a render camera and viewport size.
Sourcepub fn from_camera(cam: &Camera, viewport_size: [f32; 2]) -> Self
pub fn from_camera(cam: &Camera, viewport_size: [f32; 2]) -> Self
Build a camera frame from an app-side camera and viewport size.
Sourcepub fn with_pixels_per_point(self, pixels_per_point: f32) -> Self
pub fn with_pixels_per_point(self, pixels_per_point: f32) -> Self
Set the physical pixels per logical pixel for this camera frame.
Pass ui.ctx().pixels_per_point() from egui, or the equivalent scale
factor from your window system. Only affects GPU texture allocation;
all screen-space math continues to use viewport_size.
Sourcepub fn with_viewport_index(self, viewport_index: usize) -> Self
pub fn with_viewport_index(self, viewport_index: usize) -> Self
Set the multi-viewport slot index for this camera frame.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for CameraFrame
impl RefUnwindSafe for CameraFrame
impl Send for CameraFrame
impl Sync for CameraFrame
impl Unpin for CameraFrame
impl UnsafeUnpin for CameraFrame
impl UnwindSafe for CameraFrame
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
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
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.