pub struct BackendSelector { /* private fields */ }Expand description
Use the BackendSelector to configure one of Slint’s built-in backends with a renderer
to accommodate 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§
Source§impl BackendSelector
impl BackendSelector
Sourcepub fn new() -> BackendSelector
pub fn new() -> BackendSelector
Creates a new BackendSelector.
Sourcepub 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.
Sourcepub 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.
Sourcepub fn require_opengl(self) -> BackendSelector
pub fn require_opengl(self) -> BackendSelector
Adds the requirement to the selector that the backend must render with OpenGL.
Sourcepub 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.
Sourcepub 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.
Sourcepub fn require_vulkan(self) -> BackendSelector
pub fn require_vulkan(self) -> BackendSelector
Adds the requirement to the selector that the backend must render with Vulkan.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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.
Sourcepub 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§
Source§impl Default for BackendSelector
impl Default for BackendSelector
Source§fn default() -> BackendSelector
fn default() -> BackendSelector
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
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§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.Source§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.Source§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.Source§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.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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