pub trait Compositor: Sized {
type Renderer;
type Surface;
// Required methods
fn with_backend<W: Window + Clone>(
_settings: Settings,
_compatible_window: W,
_backend: Option<&str>,
) -> impl Future<Output = Result<Self, Error>>;
fn create_renderer(&self) -> Self::Renderer;
fn create_surface<W: Window + Clone>(
&mut self,
window: W,
width: u32,
height: u32,
) -> Self::Surface;
fn configure_surface(
&mut self,
surface: &mut Self::Surface,
width: u32,
height: u32,
);
fn fetch_information(&self) -> Information;
fn present<T: AsRef<str>>(
&mut self,
renderer: &mut Self::Renderer,
surface: &mut Self::Surface,
viewport: &Viewport,
background_color: Color,
overlay: &[T],
) -> Result<(), SurfaceError>;
fn screenshot<T: AsRef<str>>(
&mut self,
renderer: &mut Self::Renderer,
viewport: &Viewport,
background_color: Color,
overlay: &[T],
) -> Vec<u8>;
// Provided methods
fn new<W: Window + Clone>(
settings: Settings,
compatible_window: W,
) -> 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§
sourcefn with_backend<W: Window + Clone>(
_settings: Settings,
_compatible_window: W,
_backend: Option<&str>,
) -> impl Future<Output = Result<Self, Error>>
fn with_backend<W: Window + Clone>( _settings: Settings, _compatible_window: W, _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
.
sourcefn create_renderer(&self) -> Self::Renderer
fn create_renderer(&self) -> Self::Renderer
Creates a Self::Renderer
for the Compositor
.
sourcefn create_surface<W: Window + Clone>(
&mut self,
window: W,
width: u32,
height: u32,
) -> Self::Surface
fn create_surface<W: Window + Clone>( &mut self, window: W, width: u32, height: u32, ) -> Self::Surface
Crates a new Surface
for the given window.
sourcefn 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.
sourcefn fetch_information(&self) -> Information
fn fetch_information(&self) -> Information
Returns Information
used by this Compositor
.
Provided Methods§
Object Safety§
This trait is not object safe.