i_slint_core::item_rendering

Trait ItemRenderer

Source
pub trait ItemRenderer {
Show 27 methods // Required methods fn draw_rectangle( &mut self, rect: Pin<&Rectangle>, _self_rc: &ItemRc, _size: LogicalSize, ); fn draw_border_rectangle( &mut self, rect: Pin<&dyn RenderBorderRectangle>, _self_rc: &ItemRc, _size: LogicalSize, _cache: &CachedRenderingData, ); fn draw_image( &mut self, image: Pin<&dyn RenderImage>, _self_rc: &ItemRc, _size: LogicalSize, _cache: &CachedRenderingData, ); fn draw_text( &mut self, text: Pin<&dyn RenderText>, _self_rc: &ItemRc, _size: LogicalSize, _cache: &CachedRenderingData, ); fn draw_text_input( &mut self, text_input: Pin<&TextInput>, _self_rc: &ItemRc, _size: LogicalSize, ); fn draw_path( &mut self, path: Pin<&Path>, _self_rc: &ItemRc, _size: LogicalSize, ); fn draw_box_shadow( &mut self, box_shadow: Pin<&BoxShadow>, _self_rc: &ItemRc, _size: LogicalSize, ); fn combine_clip( &mut self, rect: LogicalRect, radius: LogicalBorderRadius, border_width: LogicalLength, ) -> bool; fn get_current_clip(&self) -> LogicalRect; fn translate(&mut self, distance: LogicalVector); 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 draw_image_direct(&mut self, image: Image); fn window(&self) -> &WindowInner; fn as_any(&mut self) -> Option<&mut dyn Any>; // Provided methods fn visit_opacity( &mut self, opacity_item: Pin<&Opacity>, _self_rc: &ItemRc, _size: LogicalSize, ) -> RenderingResult { ... } fn visit_layer( &mut self, _layer_item: Pin<&Layer>, _self_rc: &ItemRc, _size: LogicalSize, ) -> RenderingResult { ... } fn visit_clip( &mut self, clip_item: Pin<&Clip>, item_rc: &ItemRc, _size: LogicalSize, ) -> RenderingResult { ... } fn translation(&self) -> LogicalVector { ... } fn draw_rect(&mut self, _size: LogicalSize, _brush: Brush) { ... } fn filter_item(&mut self, item: &ItemRc) -> (bool, LogicalRect) { ... } 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§

Source

fn draw_rectangle( &mut self, rect: Pin<&Rectangle>, _self_rc: &ItemRc, _size: LogicalSize, )

Source

fn draw_border_rectangle( &mut self, rect: Pin<&dyn RenderBorderRectangle>, _self_rc: &ItemRc, _size: LogicalSize, _cache: &CachedRenderingData, )

Source

fn draw_image( &mut self, image: Pin<&dyn RenderImage>, _self_rc: &ItemRc, _size: LogicalSize, _cache: &CachedRenderingData, )

Source

fn draw_text( &mut self, text: Pin<&dyn RenderText>, _self_rc: &ItemRc, _size: LogicalSize, _cache: &CachedRenderingData, )

Source

fn draw_text_input( &mut self, text_input: Pin<&TextInput>, _self_rc: &ItemRc, _size: LogicalSize, )

Source

fn draw_path(&mut self, path: Pin<&Path>, _self_rc: &ItemRc, _size: LogicalSize)

Source

fn draw_box_shadow( &mut self, box_shadow: Pin<&BoxShadow>, _self_rc: &ItemRc, _size: LogicalSize, )

Source

fn combine_clip( &mut self, rect: LogicalRect, radius: LogicalBorderRadius, border_width: LogicalLength, ) -> bool

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) Returns a boolean indicating the state of the new clip region: true if the clip region covers an area; false if the clip region is empty.

Source

fn get_current_clip(&self) -> LogicalRect

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

Source

fn translate(&mut self, distance: LogicalVector)

Source

fn rotate(&mut self, angle_in_degrees: f32)

Source

fn apply_opacity(&mut self, opacity: f32)

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

Source

fn save_state(&mut self)

Source

fn restore_state(&mut self)

Source

fn scale_factor(&self) -> f32

Returns the scale factor

Source

fn draw_cached_pixmap( &mut self, item_cache: &ItemRc, update_fn: &dyn Fn(&mut dyn FnMut(u32, u32, &[u8])), )

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

Source

fn draw_string(&mut self, string: &str, color: Color)

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

Source

fn draw_image_direct(&mut self, image: Image)

Source

fn window(&self) -> &WindowInner

Source

fn as_any(&mut self) -> Option<&mut dyn Any>

Return the internal renderer

Provided Methods§

Source

fn visit_opacity( &mut self, opacity_item: Pin<&Opacity>, _self_rc: &ItemRc, _size: LogicalSize, ) -> RenderingResult

Source

fn visit_layer( &mut self, _layer_item: Pin<&Layer>, _self_rc: &ItemRc, _size: LogicalSize, ) -> RenderingResult

Source

fn visit_clip( &mut self, clip_item: Pin<&Clip>, item_rc: &ItemRc, _size: LogicalSize, ) -> RenderingResult

Source

fn translation(&self) -> LogicalVector

Source

fn draw_rect(&mut self, _size: LogicalSize, _brush: Brush)

Fills a rectangle at (0,0) with the given size. This is used for example by the Skia renderer to handle window backgrounds with a brush (gradient).

Source

fn filter_item(&mut self, item: &ItemRc) -> (bool, LogicalRect)

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
Source

fn metrics(&self) -> RenderingMetrics

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

Implementors§