summaryrefslogtreecommitdiff
path: root/src/renderer/backend.rs
diff options
context:
space:
mode:
authorJSDurand <mmemmew@gmail.com>2025-06-21 13:32:55 +0800
committerJSDurand <mmemmew@gmail.com>2025-06-21 13:32:55 +0800
commit9b36d712e25fb1d209df848281b9913b61a6ec45 (patch)
treee7a126af70f71a02b2e63292b07b8458effb7da5 /src/renderer/backend.rs
init commit
A basic window is available. Now we shall try to render texts and some auxiliary functionalities.
Diffstat (limited to 'src/renderer/backend.rs')
-rw-r--r--src/renderer/backend.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/renderer/backend.rs b/src/renderer/backend.rs
new file mode 100644
index 0000000..0aa994a
--- /dev/null
+++ b/src/renderer/backend.rs
@@ -0,0 +1,13 @@
+use winit::application::ApplicationHandler;
+
+use super::text::TextSpan;
+
+/// Trait that all renderer backends must implement.
+pub trait RendererBackend: ApplicationHandler {
+ fn name(&self) -> &str;
+ fn init(&mut self, width: i32, height: i32) -> bool;
+ fn clear(&mut self);
+ fn draw_text(&mut self, span: &TextSpan);
+ fn present(&mut self);
+ fn shutdown(&mut self);
+}