hotline 0.0.1

Draw lines that are on fire using SDL3
Documentation
use hotline::{FireLine, FireParams, FireRenderer};
use sdl3::event::Event;
use sdl3::pixels::Color;

fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Initialize SDL3
    let sdl = sdl3::init()?;
    let video = sdl.video()?;

    // Create window
    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);

    // Create a horizontal fire line
    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 {
        // Handle events
        for event in event_pump.poll_iter() {
            match event {
                Event::Quit { .. } => break 'running,
                _ => {}
            }
        }

        // Clear canvas
        renderer.canvas_mut().set_draw_color(Color::RGB(0, 0, 0));
        renderer.canvas_mut().clear();

        // Render fire line (static, no animation)
        renderer.render(&fire_line, 0.0)?;

        // Present
        renderer.present();

        // Small delay
        std::thread::sleep(std::time::Duration::from_millis(16));
    }

    Ok(())
}