Permalink
Please sign in to comment.
Showing
with
798 additions
and 550 deletions.
- +7 −6 examples/animation.rs
- +4 −4 examples/demo.rs
- +8 −9 examples/gfx_demo.rs
- +5 −4 examples/image_demo.rs
- +5 −5 examples/message-box.rs
- +53 −0 examples/renderer-target.rs
- +7 −6 examples/renderer-texture.rs
- +6 −5 examples/renderer-yuv.rs
- +153 −0 examples/resource_manager.rs
- +8 −7 examples/ttf_demo.rs
- +5 −5 examples/window-properties.rs
- +2 −2 src/sdl2/gfx/primitives.rs
- +4 −4 src/sdl2/image/mod.rs
- +3 −3 src/sdl2/messagebox.rs
- +1 −1 src/sdl2/mouse/mod.rs
- +397 −364 src/sdl2/render.rs
- +32 −21 src/sdl2/surface.rs
- +98 −104 src/sdl2/video.rs
| @@ -0,0 +1,53 @@ | |||
| extern crate sdl2; | |||
|
|
|||
| use sdl2::event::Event; | |||
| use sdl2::keyboard::Keycode; | |||
| use sdl2::pixels::{Color, PixelFormatEnum}; | |||
| use sdl2::rect::{Point, Rect}; | |||
|
|
|||
| fn main() { | |||
| let sdl_context = sdl2::init().unwrap(); | |||
| let video_subsystem = sdl_context.video().unwrap(); | |||
| let window = video_subsystem | |||
| .window("rust-sdl2 resource-manager demo", 800, 600) | |||
| .position_centered() | |||
| .build() | |||
| .unwrap(); | |||
| let mut canvas = window.into_canvas().software().build().unwrap(); | |||
| let creator = canvas.texture_creator(); | |||
| let mut texture = creator | |||
| .create_texture_target(PixelFormatEnum::RGBA8888, 400, 300) | |||
| .unwrap(); | |||
|
|
|||
| let mut angle = 0.0; | |||
|
|
|||
| 'mainloop: loop { | |||
| for event in sdl_context.event_pump().unwrap().poll_iter() { | |||
| match event { | |||
| Event::Quit { .. } => break 'mainloop, | |||
| Event::KeyDown { keycode: Some(Keycode::Escape), .. } => break 'mainloop, | |||
| _ => {} | |||
| } | |||
| } | |||
| angle = (angle + 0.5) % 360.; | |||
| { | |||
| let mut target = canvas.with_target(&mut texture).unwrap(); | |||
| target.clear(); | |||
| target.set_draw_color(Color::RGBA(255, 0, 0, 255)); | |||
| target.fill_rect(Rect::new(0, 0, 400, 300)).unwrap(); | |||
| } // <- drops the `target` so that the `canvas` can be used again | |||
| canvas.set_draw_color(Color::RGBA(0, 0, 0, 255)); | |||
| let dst = Some(Rect::new(0, 0, 400, 300)); | |||
| canvas.clear(); | |||
| canvas | |||
| .copy_ex(&texture, | |||
| None, | |||
| dst, | |||
| angle, | |||
| Some(Point::new(400, 300)), | |||
| false, | |||
| false) | |||
| .unwrap(); | |||
| canvas.present(); | |||
| } | |||
| } | |||
Oops, something went wrong.
0 comments on commit
19c5d12