summaryrefslogtreecommitdiff
path: root/src/main.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/main.rs
init commit
A basic window is available. Now we shall try to render texts and some auxiliary functionalities.
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs
new file mode 100644
index 0000000..0fbf198
--- /dev/null
+++ b/src/main.rs
@@ -0,0 +1,31 @@
+#![allow(unused)]
+
+mod renderer;
+
+use renderer::backend::RendererBackend;
+use renderer::dummy::DummyRenderer;
+use renderer::text::{TextSpan, TextStyle};
+use renderer::vulkan::VulkanRenderer;
+
+use winit::{application::ApplicationHandler, event_loop::EventLoop};
+
+fn main() {
+ // Dummy content
+ let span = TextSpan::new("Hello, Emacs!\nThis is a test", TextStyle::default_bold());
+
+ // Initialize backend
+ let mut backend: Box<dyn RendererBackend> = Box::new(VulkanRenderer::new());
+ backend.init(128, 128);
+ println!("The backend is {}", backend.name());
+
+ // Create loop
+
+ let mut event_loop = EventLoop::new().unwrap();
+
+ event_loop.run_app(&mut backend).unwrap();
+
+ backend.draw_text(&span);
+ backend.present();
+ backend.clear();
+ backend.shutdown();
+}