From 664251f3f5c7b76f69a97683af1468094bba887f Mon Sep 17 00:00:00 2001 From: Héctor Ramón Jiménez Date: Sat, 14 May 2022 01:47:55 +0200 Subject: Draft first-class `Theme` support RFC: https://github.com/iced-rs/rfcs/pull/6 --- glow/src/lib.rs | 4 +++- glow/src/window/compositor.rs | 19 ++++++++++++++----- 2 files changed, 17 insertions(+), 6 deletions(-) (limited to 'glow') diff --git a/glow/src/lib.rs b/glow/src/lib.rs index d7c0854d..043c5b13 100644 --- a/glow/src/lib.rs +++ b/glow/src/lib.rs @@ -30,6 +30,7 @@ pub use settings::Settings; pub(crate) use iced_graphics::Transformation; pub use iced_graphics::{Error, Viewport}; +pub use iced_native::Theme; pub use iced_native::alignment; pub use iced_native::{Alignment, Background, Color, Command, Length, Vector}; @@ -38,4 +39,5 @@ pub use iced_native::{Alignment, Background, Color, Command, Length, Vector}; /// /// [`glow`]: https://github.com/grovesNL/glow /// [`iced`]: https://github.com/iced-rs/iced -pub type Renderer = iced_graphics::Renderer; +pub type Renderer = + iced_graphics::Renderer; diff --git a/glow/src/window/compositor.rs b/glow/src/window/compositor.rs index 622d7fc0..f6afaa68 100644 --- a/glow/src/window/compositor.rs +++ b/glow/src/window/compositor.rs @@ -1,18 +1,21 @@ use crate::{Backend, Color, Error, Renderer, Settings, Viewport}; -use core::ffi::c_void; use glow::HasContext; use iced_graphics::{compositor, Antialiasing, Size}; +use core::ffi::c_void; +use std::marker::PhantomData; + /// A window graphics backend for iced powered by `glow`. #[allow(missing_debug_implementations)] -pub struct Compositor { +pub struct Compositor { gl: glow::Context, + theme: PhantomData, } -impl iced_graphics::window::GLCompositor for Compositor { +impl iced_graphics::window::GLCompositor for Compositor { type Settings = Settings; - type Renderer = Renderer; + type Renderer = Renderer; unsafe fn new( settings: Self::Settings, @@ -46,7 +49,13 @@ impl iced_graphics::window::GLCompositor for Compositor { let renderer = Renderer::new(Backend::new(&gl, settings)); - Ok((Self { gl }, renderer)) + Ok(( + Self { + gl, + theme: PhantomData, + }, + renderer, + )) } fn sample_count(settings: &Settings) -> u32 { -- cgit