Separate Compositor::new from Compositor::create_renderer

This commit is contained in:
Héctor Ramón Jiménez 2023-12-02 20:49:47 +01:00
parent ea42af766f
commit b152ecda63
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
7 changed files with 35 additions and 75 deletions

View file

@ -139,16 +139,14 @@ impl<Theme> Compositor<Theme> {
pub fn new<Theme, W: HasRawWindowHandle + HasRawDisplayHandle>(
settings: Settings,
compatible_window: Option<&W>,
) -> Result<(Compositor<Theme>, Backend), Error> {
) -> Result<Compositor<Theme>, Error> {
let compositor = futures::executor::block_on(Compositor::request(
settings,
compatible_window,
))
.ok_or(Error::GraphicsAdapterNotFound)?;
let backend = compositor.create_backend();
Ok((compositor, backend))
Ok(compositor)
}
/// Presents the given primitives with the given [`Compositor`] and [`Backend`].
@ -214,20 +212,11 @@ impl<Theme> graphics::Compositor for Compositor<Theme> {
fn new<W: HasRawWindowHandle + HasRawDisplayHandle>(
settings: Self::Settings,
compatible_window: Option<&W>,
) -> Result<(Self, Self::Renderer), Error> {
let (compositor, backend) = new(settings, compatible_window)?;
Ok((
compositor,
Renderer::new(
backend,
settings.default_font,
settings.default_text_size,
),
))
) -> Result<Self, Error> {
new(settings, compatible_window)
}
fn renderer(&self) -> Self::Renderer {
fn create_renderer(&self) -> Self::Renderer {
Renderer::new(
self.create_backend(),
self.settings.default_font,