summaryrefslogtreecommitdiffstats
path: root/graphics/src/geometry.rs
diff options
context:
space:
mode:
Diffstat (limited to 'graphics/src/geometry.rs')
-rw-r--r--graphics/src/geometry.rs14
1 files changed, 5 insertions, 9 deletions
diff --git a/graphics/src/geometry.rs b/graphics/src/geometry.rs
index 2b18243e..cc2359b6 100644
--- a/graphics/src/geometry.rs
+++ b/graphics/src/geometry.rs
@@ -19,32 +19,28 @@ pub use text::Text;
pub use crate::gradient::{self, Gradient};
use crate::core::Size;
+use crate::Cached;
/// A renderer capable of drawing some [`Self::Geometry`].
pub trait Renderer: crate::core::Renderer {
/// The kind of geometry this renderer can draw.
- type Geometry: Geometry;
+ type Geometry: Cached;
/// The kind of [`Frame`] this renderer supports.
type Frame: frame::Backend<Geometry = Self::Geometry>;
+ /// Creates a new [`Self::Frame`].
fn new_frame(&self, size: Size) -> Self::Frame;
/// Draws the given [`Self::Geometry`].
fn draw_geometry(&mut self, geometry: Self::Geometry);
}
+/// The graphics backend of a geometry renderer.
pub trait Backend {
/// The kind of [`Frame`] this backend supports.
type Frame: frame::Backend;
+ /// Creates a new [`Self::Frame`].
fn new_frame(&self, size: Size) -> Self::Frame;
}
-
-pub trait Geometry: Sized {
- type Cache;
-
- fn load(cache: &Self::Cache) -> Self;
-
- fn cache(self) -> Self::Cache;
-}