View

Struct View 

Source
pub struct View {
    pub view_id: Option<usize>,
    /* private fields */
}
Expand description

A group of DrawCalls.

This is really a pointer to a CxView (indexed in Cx::views using View::view_id), so you can find more information there.

A View has a few special features:

  • It has its own Rect, within which everything is clipped (see also [DrawUniforms]). This typically gets set by the return value of Cx::end_typed_box for the [CxLayoutBox] that is associated with the View. TODO(JP): Look into decoupling [CxLayoutBox] from View.
  • It can scroll (but does not have to; again see also [DrawUniforms]).
  • It has its own set of DrawCalls, which are isolated from the DrawCalls of the parent View.

See also ViewArea, which is an Area pointer to a View.

Fieldsยง

ยงview_id: Option<usize>

The index of the corresponding CxView in Cx::views.

Implementationsยง

Sourceยง

impl View

Source

pub fn with_is_overlay(self, is_overlay: bool) -> Self

Creates a new, empty View. See View::is_overlay.

Source

pub fn begin_view(&mut self, cx: &mut Cx, layout_size: LayoutSize)

Register the View in the draw tree.

This also creates a new [CxLayoutBox] with the LayoutSize that is passed in. Note that you should not create a View just in order to get a new [CxLayoutBox], since creating a View is relatively expensive โ€“ no DrawCalls inside this View will get merged with ones outside of it, so adding too many Views will create too many individual calls to the GPU.

TODO(JP): Perhaps we should decouple [CxLayoutBox] and View altogether?

Source

pub fn end_view(&mut self, cx: &mut Cx) -> Area

End the View, by ending the [CxLayoutBox]. Returns a ViewArea that you can hold onto.

Should only be called if View::begin_view returned Result::Ok.

TODO(JP): Is the ViewArea redundant, since it basically contains the same information as the View itself?

Source

pub fn get_rect(&self, cx: &Cx) -> Rect

Get the Rect that the [CxLayoutBox] associated with the View returned.

TODO(JP): Should we return an Option<Rect> instead of just returning a zero-sized Rect when the View has never been drawn yet?

TODO(JP): Doesnโ€™t check if the View::redraw_id is still up to date, so we might be returning an outdated Rect here.

Source

pub fn area(&self) -> Area

Returns an Area::View for this View, or Area::Empty if the View hasnโ€™t been instantiated yet.

Source

pub fn get_scroll_pos(&self, cx: &Cx) -> Vec2

Get the current CxView::unsnapped_scroll if the View has been instantiated.

Trait Implementationsยง

Sourceยง

impl Clone for View

Sourceยง

fn clone(&self) -> View

Returns a duplicate of the value. Read more
1.0.0 ยท Sourceยง

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Sourceยง

impl Default for View

Sourceยง

fn default() -> View

Returns the โ€œdefault valueโ€ for a type. Read more

Auto Trait Implementationsยง

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
Sourceยง

impl<T> CloneToUninit for T
where T: Clone,

Sourceยง

unsafe fn clone_to_uninit(&self, dest: *mut u8)

๐Ÿ”ฌThis is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Sourceยง

impl<T> From<T> for T

Sourceยง

fn from(t: T) -> T

Returns the argument unchanged.

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> ToOwned for T
where T: Clone,

Sourceยง

type Owned = T

The resulting type after obtaining ownership.
Sourceยง

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Sourceยง

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
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.
Sourceยง

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Sourceยง

fn vzip(self) -> V

Sourceยง

impl<T> ErasedDestructor for T
where T: 'static,