Trait LineBufferProvider
pub trait LineBufferProvider {
type TargetPixel: TargetPixel;
// Required method
fn process_line(
&mut self,
line: usize,
range: Range<usize>,
render_fn: impl FnOnce(&mut [Self::TargetPixel]),
);
}
Expand description
This trait defines a bi-directional interface between Slint and your code to send lines to your screen, when using
the SoftwareRenderer::render_by_line
function.
- Through the associated
TargetPixel
type Slint knows how to create and manipulate pixels without having to know the exact device-specific binary representation and operations for blending. - Through the
process_line
function Slint notifies you when a line can be rendered and provides a callback that you can invoke to fill a slice of pixels for the given line.
See the render_by_line
documentation for an example.
Required Associated Types§
type TargetPixel: TargetPixel
type TargetPixel: TargetPixel
The pixel type of the buffer
Required Methods§
fn process_line(
&mut self,
line: usize,
range: Range<usize>,
render_fn: impl FnOnce(&mut [Self::TargetPixel]),
)
fn process_line( &mut self, line: usize, range: Range<usize>, render_fn: impl FnOnce(&mut [Self::TargetPixel]), )
Called once per line, you will have to call the render_fn back with the buffer.
The line
is the y position of the line to be drawn.
The range
is the range within the line that is going to be rendered (eg, within the dirty region)
The render_fn
function should be called to render the line, passing the buffer
corresponding to the specified line and range.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.