Convert Renderer::Theme to generic Widget type

This commit is contained in:
Héctor Ramón Jiménez 2024-01-21 17:56:01 +01:00
parent 545cc909c9
commit 7a50e9e8fb
No known key found for this signature in database
GPG key ID: 7CC46565708259A7
88 changed files with 1219 additions and 1153 deletions

View file

@ -5,10 +5,10 @@ use crate::{Renderer, Settings};
use std::env;
pub enum Compositor<Theme> {
TinySkia(iced_tiny_skia::window::Compositor<Theme>),
pub enum Compositor {
TinySkia(iced_tiny_skia::window::Compositor),
#[cfg(feature = "wgpu")]
Wgpu(iced_wgpu::window::Compositor<Theme>),
Wgpu(iced_wgpu::window::Compositor),
}
pub enum Surface {
@ -17,9 +17,9 @@ pub enum Surface {
Wgpu(iced_wgpu::window::Surface<'static>),
}
impl<Theme> crate::graphics::Compositor for Compositor<Theme> {
impl crate::graphics::Compositor for Compositor {
type Settings = Settings;
type Renderer = Renderer<Theme>;
type Renderer = Renderer;
type Surface = Surface;
fn new<W: Window + Clone>(
@ -225,11 +225,11 @@ impl Candidate {
)
}
fn build<Theme, W: Window>(
fn build<W: Window>(
self,
settings: Settings,
_compatible_window: W,
) -> Result<Compositor<Theme>, Error> {
) -> Result<Compositor, Error> {
match self {
Self::TinySkia => {
let compositor = iced_tiny_skia::window::compositor::new(

View file

@ -29,7 +29,7 @@ macro_rules! delegate {
}
impl Frame {
pub fn new<Theme>(renderer: &Renderer<Theme>, size: Size) -> Self {
pub fn new(renderer: &Renderer, size: Size) -> Self {
match renderer {
Renderer::TinySkia(_) => {
Frame::TinySkia(iced_tiny_skia::geometry::Frame::new(size))

View file

@ -54,9 +54,9 @@ impl Cache {
/// Otherwise, the previously stored [`Geometry`] will be returned. The
/// [`Cache`] is not cleared in this case. In other words, it will keep
/// returning the stored [`Geometry`] if needed.
pub fn draw<Theme>(
pub fn draw(
&self,
renderer: &Renderer<Theme>,
renderer: &Renderer,
bounds: Size,
draw_fn: impl FnOnce(&mut Frame),
) -> Geometry {

View file

@ -32,10 +32,10 @@ use std::borrow::Cow;
/// The default graphics renderer for [`iced`].
///
/// [`iced`]: https://github.com/iced-rs/iced
pub enum Renderer<Theme> {
TinySkia(iced_tiny_skia::Renderer<Theme>),
pub enum Renderer {
TinySkia(iced_tiny_skia::Renderer),
#[cfg(feature = "wgpu")]
Wgpu(iced_wgpu::Renderer<Theme>),
Wgpu(iced_wgpu::Renderer),
}
macro_rules! delegate {
@ -48,7 +48,7 @@ macro_rules! delegate {
};
}
impl<T> Renderer<T> {
impl Renderer {
pub fn draw_mesh(&mut self, mesh: Mesh) {
match self {
Self::TinySkia(_) => {
@ -64,9 +64,7 @@ impl<T> Renderer<T> {
}
}
impl<T> core::Renderer for Renderer<T> {
type Theme = T;
impl core::Renderer for Renderer {
fn with_layer(&mut self, bounds: Rectangle, f: impl FnOnce(&mut Self)) {
match self {
Self::TinySkia(renderer) => {
@ -148,15 +146,14 @@ impl<T> core::Renderer for Renderer<T> {
}
}
impl<T> text::Renderer for Renderer<T> {
impl text::Renderer for Renderer {
type Font = Font;
type Paragraph = Paragraph;
type Editor = Editor;
const ICON_FONT: Font = iced_tiny_skia::Renderer::<T>::ICON_FONT;
const CHECKMARK_ICON: char = iced_tiny_skia::Renderer::<T>::CHECKMARK_ICON;
const ARROW_DOWN_ICON: char =
iced_tiny_skia::Renderer::<T>::ARROW_DOWN_ICON;
const ICON_FONT: Font = iced_tiny_skia::Renderer::ICON_FONT;
const CHECKMARK_ICON: char = iced_tiny_skia::Renderer::CHECKMARK_ICON;
const ARROW_DOWN_ICON: char = iced_tiny_skia::Renderer::ARROW_DOWN_ICON;
fn default_font(&self) -> Self::Font {
delegate!(self, renderer, renderer.default_font())
@ -214,7 +211,7 @@ impl<T> text::Renderer for Renderer<T> {
}
#[cfg(feature = "image")]
impl<T> crate::core::image::Renderer for Renderer<T> {
impl crate::core::image::Renderer for Renderer {
type Handle = crate::core::image::Handle;
fn dimensions(
@ -235,7 +232,7 @@ impl<T> crate::core::image::Renderer for Renderer<T> {
}
#[cfg(feature = "svg")]
impl<T> crate::core::svg::Renderer for Renderer<T> {
impl crate::core::svg::Renderer for Renderer {
fn dimensions(&self, handle: &crate::core::svg::Handle) -> core::Size<u32> {
delegate!(self, renderer, renderer.dimensions(handle))
}
@ -251,7 +248,7 @@ impl<T> crate::core::svg::Renderer for Renderer<T> {
}
#[cfg(feature = "geometry")]
impl<T> crate::graphics::geometry::Renderer for Renderer<T> {
impl crate::graphics::geometry::Renderer for Renderer {
type Geometry = crate::Geometry;
fn draw(&mut self, layers: Vec<Self::Geometry>) {
@ -283,7 +280,7 @@ impl<T> crate::graphics::geometry::Renderer for Renderer<T> {
}
#[cfg(feature = "wgpu")]
impl<T> iced_wgpu::primitive::pipeline::Renderer for Renderer<T> {
impl iced_wgpu::primitive::pipeline::Renderer for Renderer {
fn draw_pipeline_primitive(
&mut self,
bounds: Rectangle,