Vendor things
This commit is contained in:
parent
5deceec006
commit
977e3c17e5
19434 changed files with 10682014 additions and 0 deletions
79
third-party/vendor/orbclient/examples/image_bench.rs
vendored
Normal file
79
third-party/vendor/orbclient/examples/image_bench.rs
vendored
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
// SPDX-License-Identifier: MIT
|
||||
|
||||
use orbclient::{Color, EventOption, Renderer, Window};
|
||||
|
||||
const TIMES: usize = 10;
|
||||
|
||||
macro_rules! time {
|
||||
($msg:tt, $block: block) => ({
|
||||
let _time_instant = ::std::time::Instant::now();
|
||||
$block
|
||||
let _time_duration = _time_instant.elapsed();
|
||||
let _time_fractional = _time_duration.as_secs() as f64
|
||||
+ (_time_duration.subsec_nanos() as f64)/1000000000.0;
|
||||
println!(
|
||||
"{}: {} ms",
|
||||
$msg,
|
||||
_time_fractional * 1000.0
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
fn main() {
|
||||
//let (width, height) = orbclient::get_display_size().unwrap();
|
||||
|
||||
let mut window = Window::new(10, 10, 800, 600, "IMAGE BENCHMARK").unwrap();
|
||||
|
||||
window.set(Color::rgb(255, 255, 255));
|
||||
|
||||
//create image data : a green square
|
||||
let data = vec![Color::rgba(100, 200, 10, 20); 412500];
|
||||
let data2 = vec![Color::rgba(200, 100, 10, 20); 412500];
|
||||
let data3 = vec![Color::rgba(10, 100, 100, 20); 412500];
|
||||
let data4 = vec![Color::rgba(10, 100, 200, 20); 480000];
|
||||
|
||||
//draw image benchmarking
|
||||
println!("Benchmarking implementations to draw an image on window:");
|
||||
|
||||
time!("image_legacy", {
|
||||
for _i in 0..TIMES {
|
||||
window.image_legacy(15, 15, 750, 550, &data[..]);
|
||||
}
|
||||
});
|
||||
|
||||
time!("image_fast", {
|
||||
for _i in 0..TIMES {
|
||||
window.image_fast(20, 20, 750, 550, &data2[..]);
|
||||
}
|
||||
});
|
||||
|
||||
time!("image_opaque", {
|
||||
for _i in 0..TIMES {
|
||||
window.image_opaque(50, 50, 750, 550, &data3[..]);
|
||||
}
|
||||
});
|
||||
|
||||
time!("image_over", {
|
||||
for _i in 0..TIMES {
|
||||
window.image_over(50, &data4[..360000]);
|
||||
}
|
||||
});
|
||||
|
||||
println!("------------------------------------------------");
|
||||
|
||||
window.sync();
|
||||
|
||||
'events: loop {
|
||||
for event in window.events() {
|
||||
match event.to_option() {
|
||||
EventOption::Quit(_quit_event) => break 'events,
|
||||
EventOption::Mouse(evt) => println!(
|
||||
"At position {:?} pixel color is : {:?}",
|
||||
(evt.x, evt.y),
|
||||
window.getpixel(evt.x, evt.y)
|
||||
),
|
||||
event_option => println!("{:?}", event_option),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue