Draft first-class Theme support

RFC: https://github.com/iced-rs/rfcs/pull/6
This commit is contained in:
Héctor Ramón Jiménez 2022-05-14 01:47:55 +02:00
parent 5de337f214
commit 664251f3f5
No known key found for this signature in database
GPG key ID: 140CC052C94F138E
113 changed files with 767 additions and 878 deletions

View file

@ -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 {