Struct BackendSelector
pub struct BackendSelector { /* private fields */ }
Expand description
Use the BackendSelector to configure one of Slint’s built-in backends with a renderer
to accomodate specific needs of your application. This is a programmatic substitute for
the SLINT_BACKEND
environment variable.
For example, to configure Slint to use a renderer that supports OpenGL ES 3.0, configure
the BackendSelector
as follows:
let selector = BackendSelector::new().require_opengl_es_with_version(3, 0);
if let Err(err) = selector.select() {
eprintln!("Error selecting backend with OpenGL ES support: {err}");
}
Implementations§
§impl BackendSelector
impl BackendSelector
pub fn new() -> BackendSelector
pub fn new() -> BackendSelector
Creates a new BackendSelector.
pub fn require_opengl_es_with_version(
self,
major: u8,
minor: u8,
) -> BackendSelector
pub fn require_opengl_es_with_version( self, major: u8, minor: u8, ) -> BackendSelector
Adds the requirement to the selector that the backend must render with OpenGL ES and the specified major and minor version.
pub fn require_opengl_es(self) -> BackendSelector
pub fn require_opengl_es(self) -> BackendSelector
Adds the requirement to the selector that the backend must render with OpenGL ES.
pub fn require_opengl(self) -> BackendSelector
pub fn require_opengl(self) -> BackendSelector
Adds the requirement to the selector that the backend must render with OpenGL.
pub fn require_opengl_with_version(
self,
major: u8,
minor: u8,
) -> BackendSelector
pub fn require_opengl_with_version( self, major: u8, minor: u8, ) -> BackendSelector
Adds the requirement to the selector that the backend must render with OpenGL and the specified major and minor version.
pub fn require_metal(self) -> BackendSelector
pub fn require_metal(self) -> BackendSelector
Adds the requirement to the selector that the backend must render with Apple’s Metal framework.
pub fn require_vulkan(self) -> BackendSelector
pub fn require_vulkan(self) -> BackendSelector
Adds the requirement to the selector that the backend must render with Vulkan.
pub fn require_d3d(self) -> BackendSelector
pub fn require_d3d(self) -> BackendSelector
Adds the requirement to the selector that the backend must render with Direct 3D.
pub fn renderer_name(self, name: String) -> BackendSelector
pub fn renderer_name(self, name: String) -> BackendSelector
Adds the requirement that the selected renderer must match the given name. This is
equivalent to setting the SLINT_BACKEND=name
environment variable and requires
that the corresponding renderer feature is enabled. For example, to select the Skia renderer,
enable the renderer-skia
feature and call this function with skia
as argument.
pub fn backend_name(self, name: String) -> BackendSelector
pub fn backend_name(self, name: String) -> BackendSelector
Adds the requirement that the selected backend must match the given name. This is
equivalent to setting the SLINT_BACKEND=name
environment variable and requires
that the corresponding backend feature is enabled. For example, to select the winit backend,
enable the backend-winit
feature and call this function with winit
as argument.
pub fn select(self) -> Result<(), PlatformError>
pub fn select(self) -> Result<(), PlatformError>
Completes the backend selection process and tries to combine with specified requirements with the different backends and renderers enabled at compile time. On success, the selected backend is automatically set to be active. Returns an error if the requirements could not be met.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for BackendSelector
impl RefUnwindSafe for BackendSelector
impl Send for BackendSelector
impl Sync for BackendSelector
impl Unpin for BackendSelector
impl UnwindSafe for BackendSelector
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.§impl<T> DowncastSync for T
impl<T> DowncastSync for T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more