Make all examples work and all tests pass after the error/rect changes

This commit is contained in:
Machtan
2016-02-11 21:15:31 +01:00
parent f0ff571806
commit 877bb42cbb
14 changed files with 52 additions and 33 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ name = "sdl2"
description = "SDL2 bindings for Rust"
repository = "https://github.com/AngryLawyer/rust-sdl2"
documentation = "http://angrylawyer.github.io/rust-sdl2/sdl2/"
version = "0.14.0"
version = "0.15.0"
license = "MIT"
authors = [ "Tony Aldridge <tony@angry-lawyer.com>" ]
keywords = ["SDL", "windowing", "graphics"]
+1 -1
View File
@@ -98,7 +98,7 @@ download through Crates.io:
```toml
[dependencies]
sdl2 = "0.14"
sdl2 = "0.15"
```
Alternatively, pull it from GitHub
+2 -1
View File
@@ -1,6 +1,7 @@
extern crate sdl2;
use sdl2::audio::{AudioCallback, AudioSpecDesired};
use std::time::Duration;
struct SquareWave {
phase_inc: f32,
@@ -49,7 +50,7 @@ fn main() {
device.resume();
// Play for 2 seconds
std::thread::sleep_ms(2000);
std::thread::sleep(Duration::from_millis(2000));
// Device is automatically closed when dropped
}
+2 -1
View File
@@ -1,6 +1,7 @@
extern crate sdl2;
use sdl2::audio::{AudioCallback, AudioSpecDesired,AudioSpecWAV,AudioCVT};
use std::time::Duration;
// NOTE: You probably want to investigate SDL_Mixer
// (https://github.com/andelf/rust-sdl2_mixer) for real use cases.
@@ -57,7 +58,7 @@ fn main() {
device.resume();
// Play for a second
std::thread::sleep_ms(1000);
std::thread::sleep(Duration::from_millis(1000));
// Device is automatically closed when dropped
}
+3 -2
View File
@@ -2,6 +2,7 @@ extern crate sdl2;
extern crate rand;
use sdl2::audio::{AudioCallback, AudioSpecDesired};
use std::time::Duration;
struct MyCallback {
volume: f32
@@ -42,7 +43,7 @@ fn main() {
device.resume();
// Play for 1 second
std::thread::sleep_ms(1000);
std::thread::sleep(Duration::from_millis(1000));
{
// Acquire a lock. This lets us read and modify callback data.
@@ -52,7 +53,7 @@ fn main() {
}
// Play for another second
std::thread::sleep_ms(1000);
std::thread::sleep(Duration::from_millis(1000));
// Device is automatically closed when dropped
}
+2 -1
View File
@@ -3,6 +3,7 @@ extern crate sdl2;
use sdl2::event::Event;
use sdl2::keyboard::Keycode;
use std::collections::HashSet;
use std::time::Duration;
pub fn main() {
let sdl_context = sdl2::init().unwrap();
@@ -38,6 +39,6 @@ pub fn main() {
prev_keys = keys;
std::thread::sleep_ms(100);
std::thread::sleep(Duration::from_millis(100));
}
}
+7 -4
View File
@@ -17,7 +17,8 @@ pub fn main() {
let mut renderer = window.renderer().build().unwrap();
let mut texture = renderer.create_texture_streaming(PixelFormatEnum::RGB24, (256, 256)).unwrap();
let mut texture = renderer.create_texture_streaming(
PixelFormatEnum::RGB24, 256, 256).unwrap();
// Create a red-green gradient
texture.with_lock(None, |buffer: &mut [u8], pitch: usize| {
for y in 0..256 {
@@ -31,8 +32,9 @@ pub fn main() {
}).unwrap();
renderer.clear();
renderer.copy(&texture, None, Some(Rect::new(100, 100, 256, 256).unwrap()));
renderer.copy_ex(&texture, None, Some(Rect::new(450, 100, 256, 256).unwrap()), 30.0, None, (false, false));
renderer.copy(&texture, None, Some(Rect::new(100, 100, 256, 256)));
renderer.copy_ex(&texture, None,
Some(Rect::new(450, 100, 256, 256)), 30.0, None, false, false).unwrap();
renderer.present();
let mut event_pump = sdl_context.event_pump().unwrap();
@@ -40,7 +42,8 @@ pub fn main() {
'running: loop {
for event in event_pump.poll_iter() {
match event {
Event::Quit {..} | Event::KeyDown { keycode: Some(Keycode::Escape), .. } => {
Event::Quit {..}
| Event::KeyDown { keycode: Some(Keycode::Escape), .. } => {
break 'running
},
_ => {}
+3 -2
View File
@@ -17,7 +17,8 @@ pub fn main() {
let mut renderer = window.renderer().build().unwrap();
let mut texture = renderer.create_texture_streaming(PixelFormatEnum::IYUV, (256, 256)).unwrap();
let mut texture = renderer.create_texture_streaming(
PixelFormatEnum::IYUV, 256, 256).unwrap();
// Create a U-V gradient
texture.with_lock(None, |buffer: &mut [u8], pitch: usize| {
// `pitch` is the width of the Y component
@@ -48,7 +49,7 @@ pub fn main() {
}).unwrap();
renderer.clear();
renderer.copy(&texture, None, Some(Rect::new(100, 100, 256, 256).unwrap()));
renderer.copy(&texture, None, Some(Rect::new(100, 100, 256, 256)));
renderer.present();
let mut event_pump = sdl_context.event_pump().unwrap();
+3 -2
View File
@@ -22,7 +22,8 @@ pub fn main() {
'running: loop {
for event in event_pump.poll_iter() {
match event {
Event::Quit {..} | Event::KeyDown { keycode: Some(Keycode::Escape), .. } => {
Event::Quit {..}
| Event::KeyDown { keycode: Some(Keycode::Escape), .. } => {
break 'running
},
_ => {}
@@ -36,7 +37,7 @@ pub fn main() {
let position = window.position();
let size = window.size();
let title = format!("Window - pos({}x{}), size({}x{}): {}", position.0, position.1, size.0, size.1, tick);
window.set_title(&title);
window.set_title(&title).unwrap();
tick += 1;
}
+2 -1
View File
@@ -3,6 +3,7 @@
//! # Example
//! ```no_run
//! use sdl2::audio::{AudioCallback, AudioSpecDesired};
//! use std::time::Duration;
//!
//! struct SquareWave {
//! phase_inc: f32,
@@ -47,7 +48,7 @@
//! device.resume();
//!
//! // Play for 2 seconds
//! std::thread::sleep_ms(2000);
//! std::thread::sleep(Duration::from_millis(2000));
//! ```
use std::ffi::{CStr, CString};
use num::FromPrimitive;
+1 -1
View File
@@ -159,7 +159,7 @@ impl ::EventSubsystem {
///
/// Returns an error, if no more user events can be created.
pub unsafe fn register_events(&self, nr: u32) -> Result<Vec<u32>, String> {
let result = unsafe { ll::SDL_RegisterEvents(nr as ::libc::c_int) };
let result = ll::SDL_RegisterEvents(nr as ::libc::c_int);
const ERR_NR:u32 = ::std::u32::MAX - 1;
match result {
+2 -2
View File
@@ -870,12 +870,12 @@ impl<'a> Renderer<'a> {
/// fn draw_to_texture(r: &mut Renderer) -> Texture {
/// r.render_target()
/// .expect("This platform doesn't support render targets")
/// .create_and_set(PixelFormatEnum::RGBA8888, (512, 512));
/// .create_and_set(PixelFormatEnum::RGBA8888, 512, 512);
///
/// // Start drawing
/// r.clear();
/// r.set_draw_color(Color::RGB(255, 0, 0));
/// r.fill_rect(Rect::new(100, 100, 256, 256).unwrap());
/// r.fill_rect(Rect::new(100, 100, 256, 256));
///
/// let texture: Option<Texture> = r.render_target().unwrap().reset().unwrap();
/// texture.unwrap()
+10 -4
View File
@@ -89,6 +89,8 @@ extern "C" fn c_timer_callback(_interval: u32, param: *mut c_void) -> uint32_t {
#[cfg(test)]
fn test_timer_runs_multiple_times() {
use std::sync::{Arc, Mutex};
use std::time::Duration;
let sdl_context = ::sdl::init().unwrap();
let timer_subsystem = sdl_context.timer().unwrap();
@@ -106,7 +108,7 @@ fn test_timer_runs_multiple_times() {
} else { 0 }
}));
::std::thread::sleep_ms(250); // tick the timer at least 10 times w/ 200ms of "buffer"
::std::thread::sleep(Duration::from_millis(250)); // tick the timer at least 10 times w/ 200ms of "buffer"
let num = local_num.lock().unwrap(); // read the number back
assert_eq!(*num, 9); // it should have incremented at least 10 times...
}
@@ -114,6 +116,8 @@ fn test_timer_runs_multiple_times() {
#[cfg(test)]
fn test_timer_runs_at_least_once() {
use std::sync::{Arc, Mutex};
use std::time::Duration;
let sdl_context = ::sdl::init().unwrap();
let timer_subsystem = sdl_context.timer().unwrap();
@@ -125,14 +129,16 @@ fn test_timer_runs_at_least_once() {
*flag = true; 0
}));
::std::thread::sleep_ms(50);
::std::thread::sleep(Duration::from_millis(50));
let flag = local_flag.lock().unwrap();
assert_eq!(*flag, true);
}
#[cfg(test)]
fn test_timer_can_be_recreated() {
use std::time::Duration;
use std::sync::{Arc, Mutex};
let sdl_context = ::sdl::init().unwrap();
let timer_subsystem = sdl_context.timer().unwrap();
@@ -147,12 +153,12 @@ fn test_timer_can_be_recreated() {
}));
// reclaim closure after timer runs
::std::thread::sleep_ms(50);
::std::thread::sleep(Duration::from_millis(50));
let closure = timer_1.into_inner();
// create a second timer and increment again
let _timer_2 = timer_subsystem.add_timer(20, closure);
::std::thread::sleep_ms(50);
::std::thread::sleep(Duration::from_millis(50));
// check that timer was incremented twice
let num = local_num.lock().unwrap();
+13 -10
View File
@@ -48,32 +48,35 @@ fn test2(ev: &sdl2::EventSubsystem, ep: &mut sdl2::EventPump) {
}
}
struct SomeEventType_test3 {
#[allow(unused)]
struct SomeEventTypeTest3 {
a: u32
}
struct SomeOtherEventType_test3 {
#[allow(unused)]
struct SomeOtherEventTypeTest3 {
b: u32
}
fn test3(ev: &sdl2::EventSubsystem) {
ev.register_custom_event::<SomeEventType_test3>().unwrap();
ev.register_custom_event::<SomeOtherEventType_test3>().unwrap();
ev.register_custom_event::<SomeEventTypeTest3>().unwrap();
ev.register_custom_event::<SomeOtherEventTypeTest3>().unwrap();
assert!(ev.register_custom_event::<SomeEventType_test3>().is_err());
assert!(ev.register_custom_event::<SomeEventTypeTest3>().is_err());
}
struct SomeEventType_test4 {
struct SomeEventTypeTest4 {
a: u32
}
fn test4(ev: &sdl2::EventSubsystem, ep: &mut sdl2::EventPump) {
ev.register_custom_event::<SomeEventType_test4>().unwrap();
let event = SomeEventType_test4 { a: 42 };
ev.push_custom_event(event);
ev.register_custom_event::<SomeEventTypeTest4>().unwrap();
let event = SomeEventTypeTest4 { a: 42 };
ev.push_custom_event(event).unwrap();
let received = ep.poll_event().unwrap();
if received.is_user_event() {
let e2 = received.as_user_event_type::<SomeEventType_test4>().unwrap();
let e2 = received.as_user_event_type::<SomeEventTypeTest4>().unwrap();
assert_eq!(e2.a, 42);
}
}