[Rust/Winit] 기본 창 만들기
거두절미하고 이렇게 짜면 된다.
| 123456789101112131415161718192021222324252627282930313233343536 | extern crate winit; //winit 사용! fn main() { use winit::{Event,EventsLoop, WindowEvent, Window}; let mut events_loop = EventsLoop::new(); let window = Window::new(&events_loop).ok().unwrap(); window.set_title("hello"); window.show(); //안하면 창이 투명해짐 let mut loop_continue =true; while loop_continue //윈도우 창 루프임 { events_loop.poll_events(|event| { match event { Event::WindowEvent { event: WindowEvent::CloseRequested,..} => { loop_continue=false; //종료 이벤트 뜨면 false 찍고 루프탈출 println!("나감"); }, Event::WindowEvent { event: WindowEvent::Resized(w, h),..} => { println!("The window was resized to {}x{}", w, h); //크기 바뀌면 알려줌 }, _ => (), //다른 이벤트는 먹고 씹기 } } ); } } Colored by Color Scripter | cs |
대략 해야할 작업의 순서와 원리를 적어보자면
1.이벤트루프 객체 생성
2.윈도우 객체 생성(이벤트루프 객체 전달)
3.윈도우 객체 상태 셋팅
4.루프를 돌리면서 이벤트루프 객체와 클로저로 이벤트를 받음
5.나가든 뭘하든 루프 안에서 match문을 통해 분기 넣고 해결함.
이렇게 되겠다.
그리고 위의 코드를 돌려보면
텅텅 비어있다는 것 빼고는 모든게 정상적으로 잘 된다.