#[repr(C)]pub struct KuiDrawData {Show 17 fields
pub size: u32,
pub quads: *const KuiQuad,
pub quad_count: usize,
pub viewport_w: f32,
pub viewport_h: f32,
pub scale: f32,
pub atlas_pixels: *const u8,
pub atlas_size: u32,
pub atlas_dirty: bool,
pub atlas_epoch: u64,
pub fragments: *const KuiFragmentDraw,
pub fragment_count: usize,
pub time: f32,
pub clips: *const KuiClip,
pub clip_count: usize,
pub textures: *const KuiTextureDraw,
pub texture_count: usize,
}Expand description
The finished frame’s draw list, as kui_draw_data writes it: the
quads, the clips they index, the glyph atlas to mirror as a texture,
and the side lists for fragments and texture-backed images.
Everything is in physical pixels. The pointers are valid until the
next kui_frame_begin on the context. An [out] struct: start from
KUI_DRAW_DATA_INIT.
Fields§
§size: u32[out] reservation; see KUI_DRAW_DATA_INIT.
quads: *const KuiQuad§quad_count: usize§viewport_w: f32§viewport_h: f32§scale: f32§atlas_pixels: *const u8RGBA, atlas_size * atlas_size * 4 bytes.
atlas_size: u32Can grow or shrink between frames: a page extended for one frame goes back to its size at the next. Size the texture to it, not to the largest seen.
atlas_dirty: boolRe-upload the atlas texture when either of these changes/sets.
atlas_epoch: u64§fragments: *const KuiFragmentDrawOne per KUI_QUAD_FRAGMENT quad, indexed by its uv[0]; null and
zero on a frame that draws none. Added in ABI 9.
fragment_count: usize§time: f32The frame clock in seconds, for a fragment’s time.
clips: *const KuiClipThe clips the quads index through KuiQuad::clip. Never empty on a
frame that drew anything: entry zero clips nothing. Added in
ABI 11.
clip_count: usize§textures: *const KuiTextureDrawOne per KUI_QUAD_TEXTURE quad, indexed by its uv[0]; null and
zero on a frame that draws none. Added in ABI 14.
texture_count: usizeTrait Implementations§
Auto Trait Implementations§
impl !Send for KuiDrawData
impl !Sync for KuiDrawData
impl Freeze for KuiDrawData
impl RefUnwindSafe for KuiDrawData
impl Unpin for KuiDrawData
impl UnsafeUnpin for KuiDrawData
impl UnwindSafe for KuiDrawData
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>. 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.