Struct imgui::DrawData

source ·
#[repr(C)]
pub struct DrawData { pub total_idx_count: i32, pub total_vtx_count: i32, pub display_pos: [f32; 2], pub display_size: [f32; 2], pub framebuffer_scale: [f32; 2], /* private fields */ }
Expand description

All draw data to render a Dear ImGui frame.

Fields§

§total_idx_count: i32

For convenience, sum of all draw list index buffer sizes.

§total_vtx_count: i32

For convenience, sum of all draw list vertex buffer sizes.

§display_pos: [f32; 2]

Upper-left position of the viewport to render.

(= upper-left corner of the orthogonal projection matrix to use)

§display_size: [f32; 2]

Size of the viewport to render.

(= display_pos + display_size == lower-right corner of the orthogonal matrix to use)

§framebuffer_scale: [f32; 2]

Amount of pixels for each unit of display_size.

Based on io.display_frame_buffer_scale. Typically [1.0, 1.0] on normal displays, and [2.0, 2.0] on Retina displays, but fractional values are also possible.

Implementations§

source§

impl DrawData

source

pub fn draw_lists(&self) -> DrawListIterator<'_>

Returns an iterator over the draw lists included in the draw data.

source

pub fn draw_lists_count(&self) -> usize

Returns the number of draw lists included in the draw data.

source

pub fn deindex_all_buffers(&mut self)

Converts all buffers from indexed to non-indexed, in case you cannot render indexed buffers.

This is slow and most likely a waste of resources. Always prefer indexed rendering!

source

pub fn scale_clip_rects(&mut self, fb_scale: Vector2<f32>)

Scales the clip rect of each draw command.

Can be used if your final output buffer is at a different scale than imgui-rs expects, or if there is a difference between your window resolution and framebuffer resolution.

Trait Implementations§

source§

impl From<&DrawData> for OwnedDrawData

source§

fn from(value: &DrawData) -> Self

Construct OwnedDrawData from DrawData by creating a heap-allocated deep copy of the given DrawData

source§

impl RawCast<ImDrawData> for DrawData

source§

unsafe fn from_raw(raw: &T) -> &Self

Casts an immutable reference from the raw type Read more
source§

unsafe fn from_raw_mut(raw: &mut T) -> &mut Self

Casts a mutable reference from the raw type Read more
source§

unsafe fn raw(&self) -> &T

Casts an immutable reference to the raw type Read more
source§

unsafe fn raw_mut(&mut self) -> &mut T

Casts a mutable reference to the raw 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> 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, U> TryFrom<U> for T
where U: Into<T>,

§

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

§

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.