glerminal 0.3.0

A lightweight OpenGL terminal
Documentation
use glerminal::{TerminalBuilder, TextBuffer, TextStyle};

fn main() {
    let terminal = TerminalBuilder::new().build();
    let mut text_buffer;
    match TextBuffer::create(&terminal, (80, 24)) {
        Ok(buffer) => text_buffer = buffer,
        Err(error) => panic!(format!("Failed to initialize text buffer: {}", error)),
    }

    for _ in 0..1920 {
        text_buffer.cursor.style = TextStyle {
            fg_color: [1.0, 0.0, 0.0, 1.0],
            bg_color: [0.0, 1.0, 0.0, 1.0],
            ..Default::default()
        };
        text_buffer.put_char('a');
    }

    let mut frames = 0;
    let mut timer = 0.0;
    let fps_update = 1.0 / 20.0;

    while terminal.refresh() {
        timer += terminal.delta_time();
        frames += 1;
        if timer > fps_update {
            text_buffer.cursor.move_to(0, 0);
            text_buffer.write(format!("{:.6}", frames as f32 / fps_update));
            timer -= fps_update;
            frames = 0;

            terminal.flush(&mut text_buffer);
        }

        terminal.draw(&text_buffer);
    }
}