51 lines
1.3 KiB
Rust
51 lines
1.3 KiB
Rust
// SPDX-License-Identifier: MIT
|
|
|
|
use orbclient::{Color, EventOption, Renderer, Window};
|
|
|
|
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 mut window = Window::new(10, 10, 800, 600, "RECTANGLE BENCHMARK").unwrap();
|
|
|
|
time!("set", { window.set(Color::rgb(255, 255, 255)) });
|
|
|
|
time!("rect 400x400", {
|
|
window.rect(0, 0, 400, 400, Color::rgb(0, 0, 255))
|
|
});
|
|
|
|
time!("rect 200x200", {
|
|
window.rect(0, 0, 200, 200, Color::rgb(0, 255, 0))
|
|
});
|
|
|
|
time!("rect 100x100", {
|
|
window.rect(0, 0, 100, 100, Color::rgb(255, 0, 0))
|
|
});
|
|
|
|
time!("sync", {
|
|
window.sync();
|
|
});
|
|
|
|
'events: loop {
|
|
for event in window.events() {
|
|
#[allow(clippy::single_match)]
|
|
match event.to_option() {
|
|
EventOption::Quit(_quit_event) => break 'events,
|
|
_ => (),
|
|
}
|
|
}
|
|
}
|
|
}
|