hello world

This commit is contained in:
2025-07-01 01:16:35 +02:00
parent 6c78da054f
commit b2a874da29
3 changed files with 62 additions and 45 deletions
+44
View File
@@ -0,0 +1,44 @@
use winit::application::ApplicationHandler;
use winit::dpi::LogicalSize;
use winit::event::WindowEvent;
use winit::event_loop::{ActiveEventLoop, ControlFlow, EventLoop};
use winit::window::{Window, WindowAttributes, WindowId};
struct App {
window: Option<Window>,
attr: WindowAttributes,
}
impl App {
pub fn new(attr: WindowAttributes) -> App {
App { window: None, attr }
}
}
impl ApplicationHandler for App {
fn resumed(&mut self, event_loop: &ActiveEventLoop) {
self.window = Some(event_loop.create_window(self.attr.clone()).unwrap());
}
fn window_event(&mut self, event_loop: &ActiveEventLoop, _id: WindowId, event: WindowEvent) {
match event {
WindowEvent::CloseRequested => {
event_loop.exit();
}
WindowEvent::RedrawRequested => {
self.window.as_ref().unwrap().request_redraw();
}
_ => (),
}
}
}
pub fn run(width: f64, height: f64) {
let event_loop = EventLoop::new().unwrap();
event_loop.set_control_flow(ControlFlow::Poll);
event_loop.set_control_flow(ControlFlow::Wait);
let mut w = WindowAttributes::default();
w.inner_size = Some(winit::dpi::Size::Logical(LogicalSize::new(width, height)));
let mut app = App::new(w);
event_loop.run_app(&mut app).unwrap();
}
+14 -9
View File
@@ -1,14 +1,19 @@
pub fn add(left: u64, right: u64) -> u64 {
left + right
mod app;
pub struct Window {
width: f64,
height: f64,
}
#[cfg(test)]
mod tests {
use super::*;
impl Window {
pub fn new() -> Window {
Window {
width: 1000.0,
height: 650.0,
}
}
#[test]
fn it_works() {
let result = add(2, 2);
assert_eq!(result, 4);
pub fn run(&self) {
app::run(self.width, self.height);
}
}
+4 -36
View File
@@ -1,39 +1,7 @@
use winit::application::ApplicationHandler;
use winit::event::WindowEvent;
use winit::event_loop::{ActiveEventLoop, ControlFlow, EventLoop};
use winit::window::{Window, WindowId};
#[derive(Default)]
struct App {
window: Option<Window>,
}
impl ApplicationHandler for App {
fn resumed(&mut self, event_loop: &ActiveEventLoop) {
self.window = Some(
event_loop
.create_window(Window::default_attributes())
.unwrap(),
);
}
fn window_event(&mut self, event_loop: &ActiveEventLoop, _id: WindowId, event: WindowEvent) {
match event {
WindowEvent::CloseRequested => {
event_loop.exit();
}
WindowEvent::RedrawRequested => {
self.window.as_ref().unwrap().request_redraw();
}
_ => (),
}
}
}
use osgui::Window;
fn main() {
let event_loop = EventLoop::new().unwrap();
event_loop.set_control_flow(ControlFlow::Poll);
event_loop.set_control_flow(ControlFlow::Wait);
let mut app = App::default();
event_loop.run_app(&mut app).unwrap();
let win = Window::new();
win.run();
}