use hotline::{FireLine, FireParams, FireRenderer};
use sdl3::event::Event;
use sdl3::pixels::Color;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let sdl = sdl3::init()?;
let video = sdl.video()?;
let window = video
.window("Hotline - Basic Example", 800, 600)
.position_centered()
.build()
.map_err(|e| e.to_string())?;
let canvas = window.into_canvas();
let mut renderer = FireRenderer::new(canvas);
let fire_line = FireLine::new(
100.0,
300.0,
700.0,
300.0,
FireParams {
flame_height: 80.0,
intensity: 1.0,
flicker_speed: 2.0,
particle_density: 1.0,
flame_width: 25.0,
},
);
let mut event_pump = sdl.event_pump()?;
'running: loop {
for event in event_pump.poll_iter() {
match event {
Event::Quit { .. } => break 'running,
_ => {}
}
}
renderer.canvas_mut().set_draw_color(Color::RGB(0, 0, 0));
renderer.canvas_mut().clear();
renderer.render(&fire_line, 0.0)?;
renderer.present();
std::thread::sleep(std::time::Duration::from_millis(16));
}
Ok(())
}