Trait i_slint_core::item_rendering::ItemRenderer
source · [−]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
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_input(&mut self, text_input: Pin<&TextInput>, _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 combine_clip(&mut self, rect: Rect, radius: Coord, border_width: Coord)
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)
fn get_current_clip(&self) -> Rect
fn get_current_clip(&self) -> Rect
Get the current clip bounding box in the current transformed coordinate.
fn apply_opacity(&mut self, opacity: f32)
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.
fn save_state(&mut self)
fn restore_state(&mut self)
fn scale_factor(&self) -> f32
fn scale_factor(&self) -> f32
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
fn draw_string(&mut self, string: &str, color: Color)
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.
Provided Methods
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
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
fn metrics(&self) -> RenderingMetrics
fn metrics(&self) -> RenderingMetrics
Returns any rendering metrics collecting since the creation of the renderer (typically per frame)