Trait Compositor
pub trait Compositor: Sized {
type Renderer;
type Surface;
// Required methods
fn with_backend(
settings: Settings,
display: impl Display + Clone,
compatible_window: impl Window + Clone,
shell: Shell,
backend: Option<&str>,
) -> impl Future<Output = Result<Self, Error>>;
fn create_renderer(&self) -> Self::Renderer;
fn create_surface<W>(
&mut self,
window: W,
width: u32,
height: u32,
) -> Self::Surface
where W: Window + Clone;
fn configure_surface(
&mut self,
surface: &mut Self::Surface,
width: u32,
height: u32,
);
fn information(&self) -> Information;
fn present(
&mut self,
renderer: &mut Self::Renderer,
surface: &mut Self::Surface,
viewport: &Viewport,
background_color: Color,
on_pre_present: impl FnOnce(),
) -> Result<(), SurfaceError>;
fn screenshot(
&mut self,
renderer: &mut Self::Renderer,
viewport: &Viewport,
background_color: Color,
) -> Vec<u8> ⓘ;
// Provided methods
fn new(
settings: Settings,
display: impl Display + Clone,
compatible_window: impl Window + Clone,
shell: Shell,
) -> impl Future<Output = Result<Self, Error>> { ... }
fn load_font(&mut self, font: Cow<'static, [u8]>) { ... }
}Expand description
A graphics compositor that can draw to windows.
Required Associated Types§
Required Methods§
fn with_backend(
settings: Settings,
display: impl Display + Clone,
compatible_window: impl Window + Clone,
shell: Shell,
backend: Option<&str>,
) -> impl Future<Output = Result<Self, Error>>
fn with_backend( settings: Settings, display: impl Display + Clone, compatible_window: impl Window + Clone, shell: Shell, backend: Option<&str>, ) -> impl Future<Output = Result<Self, Error>>
Creates a new Compositor with a backend preference.
If the backend does not match the preference, it will return
Error::GraphicsAdapterNotFound.
fn create_renderer(&self) -> Self::Renderer
fn create_renderer(&self) -> Self::Renderer
Creates a Self::Renderer for the Compositor.
fn create_surface<W>(
&mut self,
window: W,
width: u32,
height: u32,
) -> Self::Surface
fn create_surface<W>( &mut self, window: W, width: u32, height: u32, ) -> Self::Surface
Crates a new Surface for the given window.
fn configure_surface(
&mut self,
surface: &mut Self::Surface,
width: u32,
height: u32,
)
fn configure_surface( &mut self, surface: &mut Self::Surface, width: u32, height: u32, )
Configures a new Surface with the given dimensions.
fn information(&self) -> Information
fn information(&self) -> Information
Returns Information used by this Compositor.
Provided Methods§
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.