aboutsummaryrefslogtreecommitdiff
path: root/light-client/src/bin/bunnymark.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2024-07-16 16:28:59 +0200
committermetamuffin <metamuffin@disroot.org>2024-07-16 16:28:59 +0200
commit12a4da7b1ecf4b751a749d49df0696ae5df92ba5 (patch)
tree28212775f51bf13751a97fb3371794d57aee6c07 /light-client/src/bin/bunnymark.rs
parent3c16211e2a2f0c3dbe741da20c8499e8e6a15f85 (diff)
downloadhurrycurry-12a4da7b1ecf4b751a749d49df0696ae5df92ba5.tar
hurrycurry-12a4da7b1ecf4b751a749d49df0696ae5df92ba5.tar.bz2
hurrycurry-12a4da7b1ecf4b751a749d49df0696ae5df92ba5.tar.zst
move bunnymark
Diffstat (limited to 'light-client/src/bin/bunnymark.rs')
-rw-r--r--light-client/src/bin/bunnymark.rs104
1 files changed, 0 insertions, 104 deletions
diff --git a/light-client/src/bin/bunnymark.rs b/light-client/src/bin/bunnymark.rs
deleted file mode 100644
index 12c18d66..00000000
--- a/light-client/src/bin/bunnymark.rs
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- Hurry Curry! - a game about cooking
- Copyright 2024 metamuffin
-
- This program is free software: you can redistribute it and/or modify
- it under the terms of the GNU Affero General Public License as published by
- the Free Software Foundation, version 3 of the License only.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU Affero General Public License for more details.
-
- You should have received a copy of the GNU Affero General Public License
- along with this program. If not, see <https://www.gnu.org/licenses/>.
-
-*/
-use hurrycurry_protocol::glam::IVec2;
-use sdl2::{
- event::Event,
- image::{InitFlag, LoadTexture},
- keyboard::Keycode,
- pixels::Color,
- rect::Rect,
-};
-use std::time::Instant;
-
-const WIDTH: i32 = 1920;
-const HEIGHT: i32 = 1080;
-
-pub fn main() {
- let amount = std::env::args().skip(1).next().unwrap().parse().unwrap();
-
- let sdl_context = sdl2::init().unwrap();
- let video_subsystem = sdl_context.video().unwrap();
- let _image_context = sdl2::image::init(InitFlag::WEBP | InitFlag::PNG).unwrap();
- let window = video_subsystem
- .window("Hurry Curry! Light Client", WIDTH as u32, HEIGHT as u32)
- .position_centered()
- .build()
- .map_err(|e| e.to_string())
- .unwrap();
-
- let mut canvas = window
- .into_canvas()
- .accelerated()
- .build()
- .map_err(|e| e.to_string())
- .unwrap();
- let texture_creator = canvas.texture_creator();
- let texture = texture_creator.load_texture("client/icon.png").unwrap();
-
- let mut bunnies = vec![(IVec2::ZERO, IVec2::ONE); amount];
-
- for (i, (pos, vel)) in bunnies.iter_mut().enumerate() {
- let mut r = xorshift(i as i32);
- pos.x = r % WIDTH;
- r = xorshift(r);
- pos.y = r % HEIGHT;
- r = xorshift(r);
- vel.x = r % 7 - 3;
- r = xorshift(r);
- vel.y = r % 7 - 3;
- }
-
- let mut last = Instant::now();
- 'mainloop: loop {
- canvas.set_draw_color(Color::BLACK);
- canvas.clear();
- for (pos, vel) in &mut bunnies {
- *pos += *vel;
- if pos.x < 0 || pos.x > WIDTH {
- vel.x *= -1
- }
- if pos.y < 0 || pos.y > HEIGHT {
- vel.y *= -1
- }
- canvas
- .copy(&texture, None, Some(Rect::new(pos.x, pos.y, 30, 30)))
- .unwrap();
- }
- canvas.present();
-
- for event in sdl_context.event_pump().unwrap().poll_iter() {
- match event {
- Event::Quit { .. }
- | Event::KeyDown {
- keycode: Option::Some(Keycode::Escape),
- ..
- } => break 'mainloop,
- _ => {}
- }
- }
- println!("frame time: {:?}", last.elapsed());
- last = Instant::now();
- }
-}
-
-fn xorshift(mut x: i32) -> i32 {
- x ^= x << 13;
- x ^= x >> 17;
- x ^= x << 5;
- x
-}