summaryrefslogtreecommitdiffstats
path: root/glow/src
diff options
context:
space:
mode:
authorLibravatar Héctor Ramón <hector0193@gmail.com>2022-07-09 02:28:52 +0200
committerLibravatar GitHub <noreply@github.com>2022-07-09 02:28:52 +0200
commite053e25d2ccb17f7a162685a106a8bbd915a873f (patch)
tree5304f3ea2712e8889c7278ec5e57418f484d8f6c /glow/src
parent66eb6263003c1bbedd1fd14d6b12f172d20a6211 (diff)
parent7105db97a53d90adf429091298f31c90974d8f08 (diff)
downloadiced-e053e25d2ccb17f7a162685a106a8bbd915a873f.tar.gz
iced-e053e25d2ccb17f7a162685a106a8bbd915a873f.tar.bz2
iced-e053e25d2ccb17f7a162685a106a8bbd915a873f.zip
Merge pull request #1362 from iced-rs/theming
Theming
Diffstat (limited to 'glow/src')
-rw-r--r--glow/src/lib.rs4
-rw-r--r--glow/src/window/compositor.rs19
2 files changed, 17 insertions, 6 deletions
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<Backend>;
+pub type Renderer<Theme = iced_native::Theme> =
+ iced_graphics::Renderer<Backend, Theme>;
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<Theme> {
gl: glow::Context,
+ theme: PhantomData<Theme>,
}
-impl iced_graphics::window::GLCompositor for Compositor {
+impl<Theme> iced_graphics::window::GLCompositor for Compositor<Theme> {
type Settings = Settings;
- type Renderer = Renderer;
+ type Renderer = Renderer<Theme>;
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 {