From 4afdbe89c2bb1820e25b586b52d3f2948f9d1988 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Sun, 15 Apr 2012 21:18:53 -0700 Subject: [PATCH] Use SDL to display a window --- src/servo/servo.rs | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/src/servo/servo.rs b/src/servo/servo.rs index 00abcfba3b7..430622cee64 100644 --- a/src/servo/servo.rs +++ b/src/servo/servo.rs @@ -1,4 +1,44 @@ +import azure::cairo; +fn on_main(f: fn~()) { + let builder = task::builder(); + let opts = { + sched: some({ + mode: task::osmain, + native_stack_size: none + }) + with task::get_opts(builder) + }; + task::set_opts(builder, opts); + task::run(builder, f); +} fn main() { + on_main {|| + sdl::init([ + sdl::init_video + ]); + let screen = sdl::video::set_video_mode( + 320, 200, 32, + [sdl::video::swsurface], + [sdl::video::doublebuf]); + assert ptr::is_not_null(screen); + let surface = sdl::video::create_rgb_surface( + [sdl::video::swsurface], + 320, 200, 32, + 0x00FF0000u32, + 0x0000FF00u32, + 0x000000FFu32, + 0x00000000u32 + ); + assert ptr::is_not_null(surface); + loop { + sdl::video::blit_surface(surface, ptr::null(), + screen, ptr::null()); + sdl::video::flip(screen); + sdl::event::poll_event {|_event| + } + } + sdl::quit(); + } } \ No newline at end of file