Convert Renderer::Theme to generic Widget type
This commit is contained in:
parent
545cc909c9
commit
7a50e9e8fb
88 changed files with 1219 additions and 1153 deletions
|
|
@ -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(
|
||||
|
|
|
|||
|
|
@ -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))
|
||||
|
|
|
|||
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue