[][src]Struct imgui::WindowDrawList

pub struct WindowDrawList<'ui> { /* fields omitted */ }

Object implementing the custom draw API.

Called from Ui::get_window_draw_list. No more than one instance of this structure can live in a program at the same time. The program will panic on creating a second instance.

Methods

impl<'ui> WindowDrawList<'ui>[src]

pub fn channels_split<F: FnOnce(&ChannelsSplit)>(
    &self,
    channels_count: u32,
    f: F
)
[src]

Split into channels_count drawing channels. At the end of the closure, the channels are merged. The objects are then drawn in the increasing order of their channel number, and not in the order they were called.

Example

fn custom_drawing(ui: &Ui) {
    let draw_list = ui.get_window_draw_list();
    draw_list.channels_split(2, |channels| {
        channels.set_current(1);
        // ... Draw channel 1
        channels.set_current(0);
        // ... Draw channel 0
    });
}

impl<'ui> WindowDrawList<'ui>[src]

Drawing functions

pub fn add_line<P1, P2, C>(&'ui self, p1: P1, p2: P2, c: C) -> Line<'ui> where
    P1: Into<ImVec2>,
    P2: Into<ImVec2>,
    C: Into<ImColor>, 
[src]

Returns a line from point p1 to p2 with color c.

pub fn add_rect<P1, P2, C>(&'ui self, p1: P1, p2: P2, c: C) -> Rect<'ui> where
    P1: Into<ImVec2>,
    P2: Into<ImVec2>,
    C: Into<ImColor>, 
[src]

Returns a rectangle whose upper-left corner is at point p1 and lower-right corner is at point p2, with color c.

pub fn add_rect_filled_multicolor<P1, P2, C1, C2, C3, C4>(
    &self,
    p1: P1,
    p2: P2,
    col_upr_left: C1,
    col_upr_right: C2,
    col_bot_right: C3,
    col_bot_left: C4
) where
    P1: Into<ImVec2>,
    P2: Into<ImVec2>,
    C1: Into<ImColor>,
    C2: Into<ImColor>,
    C3: Into<ImColor>,
    C4: Into<ImColor>, 
[src]

Draw a rectangle whose upper-left corner is at point p1 and lower-right corner is at point p2. The remains parameters are the respective color of the corners in the counter-clockwise starting from the upper-left corner first.

pub fn add_triangle<P1, P2, P3, C>(
    &'ui self,
    p1: P1,
    p2: P2,
    p3: P3,
    c: C
) -> Triangle<'ui> where
    P1: Into<ImVec2>,
    P2: Into<ImVec2>,
    P3: Into<ImVec2>,
    C: Into<ImColor>, 
[src]

Returns a triangle with the given 3 vertices p1, p2 and p3 and color c.

pub fn add_circle<P, C>(
    &'ui self,
    center: P,
    radius: f32,
    color: C
) -> Circle<'ui> where
    P: Into<ImVec2>,
    C: Into<ImColor>, 
[src]

Returns a circle with the given center, radius and color.

pub fn add_text<P, C, T>(&self, pos: P, col: C, text: T) where
    P: Into<ImVec2>,
    C: Into<ImColor>,
    T: AsRef<str>, 
[src]

Draw a text whose upper-left corner is at point pos.

pub fn add_bezier_curve<P1, P2, P3, P4, C>(
    &'ui self,
    pos0: P1,
    cp0: P2,
    cp1: P3,
    pos1: P4,
    color: C
) -> BezierCurve<'ui> where
    P1: Into<ImVec2>,
    P2: Into<ImVec2>,
    P3: Into<ImVec2>,
    P4: Into<ImVec2>,
    C: Into<ImColor>, 
[src]

Returns a Bezier curve stretching from pos0 to pos1, whose curvature is defined by cp0 and cp1.

pub fn with_clip_rect<P1, P2, F>(&self, min: P1, max: P2, f: F) where
    P1: Into<ImVec2>,
    P2: Into<ImVec2>,
    F: FnOnce(), 
[src]

Push a clipping rectangle on the stack, run f and pop it.

Clip all drawings done within the closure f in the given rectangle.

pub fn with_clip_rect_intersect<P1, P2, F>(&self, min: P1, max: P2, f: F) where
    P1: Into<ImVec2>,
    P2: Into<ImVec2>,
    F: FnOnce(), 
[src]

Push a clipping rectangle on the stack, run f and pop it.

Clip all drawings done within the closure f in the given rectangle. Intersect with all clipping rectangle previously on the stack.

Trait Implementations

impl<'ui> Drop for WindowDrawList<'ui>[src]

Auto Trait Implementations

impl<'ui> !Send for WindowDrawList<'ui>

impl<'ui> !Sync for WindowDrawList<'ui>

Blanket Implementations

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.