bly 0.1.0

Rusty fast cross-platform 2D drawing library
Documentation
#![allow(clippy::single_match)]

extern crate env_logger as logger;

use bly::{Color, Point2};

use std::env;

use winit::{
    event::{Event, WindowEvent},
    event_loop::EventLoop,
    window::WindowBuilder,
};

fn main() {
    env::set_var("RUST_LOG", "info");

    logger::init();
    let event_loop = EventLoop::new();

    let window = WindowBuilder::new()
        .with_title("A fantastic window!")
        .with_inner_size(winit::dpi::LogicalSize::new(520.0, 520.0))
        .build(&event_loop)
        .unwrap();

    let mut canvas = match bly::create_canvas(&window) {
        Ok(b) => b,
        Err(_) => {
            panic!("Can't initialize Bly!");
        }
    };

    event_loop.run(move |event, _, control_flow| {
        control_flow.set_wait();
        match event {
            Event::WindowEvent {
                event: WindowEvent::CloseRequested,
                window_id,
            } if window_id == window.id() => control_flow.set_exit(),

            Event::MainEventsCleared => canvas.draw(|painter| {
                painter.clear(Color::WhiteGray);

                painter.draw_rect(
                    Point2::new(20.0, 20.0),
                    Point2::new(150.0, 150.0),
                    Color::Rgba(1.0, 1.0, 1.0, 1.0),
                );
                painter.draw_rect(
                    Point2::new(180.0, 20.0),
                    Point2::new(150.0, 150.0),
                    Color::Rgba(0.5, 0.5, 0.5, 1.0),
                );
                painter.draw_rect(
                    Point2::new(340.0, 20.0),
                    Point2::new(150.0, 150.0),
                    Color::Rgba(0.0, 0.0, 0.0, 1.0),
                );

                painter.draw_rect(
                    Point2::new(20.0, 180.0),
                    Point2::new(150.0, 150.0),
                    Color::Rgba(1.0, 0.0, 0.0, 1.0),
                );
                painter.draw_rect(
                    Point2::new(180.0, 180.0),
                    Point2::new(150.0, 150.0),
                    Color::Rgba(0.0, 1.0, 0.0, 1.0),
                );
                painter.draw_rect(
                    Point2::new(340.0, 180.0),
                    Point2::new(150.0, 150.0),
                    Color::Rgba(0.0, 0.0, 1.0, 1.0),
                );

                painter.draw_rect(
                    Point2::new(20.0, 340.0),
                    Point2::new(150.0, 150.0),
                    Color::Rgba(1.0, 1.0, 0.0, 1.0),
                );
                painter.draw_rect(
                    Point2::new(180.0, 340.0),
                    Point2::new(150.0, 150.0),
                    Color::Rgba(0.0, 1.0, 1.0, 1.0),
                );
                painter.draw_rect(
                    Point2::new(340.0, 340.0),
                    Point2::new(150.0, 150.0),
                    Color::Rgba(1.0, 0.0, 1.0, 1.0),
                );
            }),
            _ => (),
        }
    });
}