logo
pub trait ItemRenderer {
Show 25 methods fn draw_rectangle(&mut self, rect: Pin<&Rectangle>, _self_rc: &ItemRc); fn draw_border_rectangle(
        &mut self,
        rect: Pin<&BorderRectangle>,
        _self_rc: &ItemRc
    ); fn draw_image(&mut self, image: Pin<&ImageItem>, _self_rc: &ItemRc); fn draw_clipped_image(&mut self, image: Pin<&ClippedImage>, _self_rc: &ItemRc); fn draw_text(&mut self, text: Pin<&Text>, _self_rc: &ItemRc); fn draw_text_input(&mut self, text_input: Pin<&TextInput>, _self_rc: &ItemRc); fn draw_path(&mut self, path: Pin<&Path>, _self_rc: &ItemRc); fn draw_box_shadow(&mut self, box_shadow: Pin<&BoxShadow>, _self_rc: &ItemRc); fn combine_clip(&mut self, rect: Rect, radius: Coord, border_width: Coord); fn get_current_clip(&self) -> Rect; fn translate(&mut self, x: Coord, y: Coord); fn rotate(&mut self, angle_in_degrees: f32); fn apply_opacity(&mut self, opacity: f32); fn save_state(&mut self); fn restore_state(&mut self); fn scale_factor(&self) -> f32; fn draw_cached_pixmap(
        &mut self,
        item_cache: &ItemRc,
        update_fn: &dyn Fn(&mut dyn FnMut(u32, u32, &[u8]))
    ); fn draw_string(&mut self, string: &str, color: Color); fn window(&self) -> WindowRc; fn as_any(&mut self) -> &mut dyn Any; fn visit_opacity(
        &mut self,
        opacity_item: Pin<&Opacity>,
        _self_rc: &ItemRc
    ) -> RenderingResult { ... } fn visit_layer(
        &mut self,
        _layer_item: Pin<&Layer>,
        _self_rc: &ItemRc
    ) -> RenderingResult { ... } fn visit_clip(
        &mut self,
        clip_item: Pin<&Clip>,
        _self_rc: &ItemRc
    ) -> RenderingResult { ... } fn filter_item(&mut self, item: Pin<ItemRef<'_>>) -> (bool, Rect) { ... } fn metrics(&self) -> RenderingMetrics { ... }
}
Expand description

Trait used to render each items.

The item needs to be rendered relative to its (x,y) position. For example, draw_rectangle should draw a rectangle in (pos.x + rect.x, pos.y + rect.y)

Required Methods

Clip the further call until restore_state. radius/border_width can be used for border rectangle clip. (FIXME: consider removing radius/border_width and have another function that take a path instead)

Get the current clip bounding box in the current transformed coordinate.

Apply the opacity (between 0 and 1) for all following items until the next call to restore_state.

Returns the scale factor

Draw a pixmap in position indicated by the pos. The pixmap will be taken from cache if the cache is valid, otherwise, update_fn will be called with a callback that need to be called once with fn (width, height, data) where data are the RGBA premultiplied pixel values

Draw the given string with the specified color at current (0, 0) with the default font. Mainly used by the performance counter overlay.

Return the internal renderer

Provided Methods

This is called before it is being rendered (before the draw_* function). Returns

  • if the item needs to be drawn (false means it is clipped or doesn’t need to be drawn)
  • the geometry of the item

Returns any rendering metrics collecting since the creation of the renderer (typically per frame)

Implementors