on-deck/src/utils.rs

46 lines
1.2 KiB
Rust

use crate::text_drawer::{TextConfig, TextConfigBuilder};
use macroquad::color::Color;
use macroquad::math::Vec2;
use macroquad::miniquad::window::screen_size;
use macroquad::prelude::draw_rectangle;
pub fn screen_center() -> Vec2 {
Vec2::from(screen_size()) * 0.5
}
pub fn draw_rectangle_with_border(
rect_pos: Vec2,
rect_size: Vec2,
border_width: f32,
fg_color: Color,
bg_color: Color,
) {
let border_pos = rect_pos - border_width;
let border_size = rect_size + 2.0 * border_width;
draw_rectangle(
border_pos.x,
border_pos.y,
border_size.x,
border_size.y,
bg_color,
);
draw_rectangle(rect_pos.x, rect_pos.y, rect_size.x, rect_size.y, fg_color);
}
pub fn draw_text_with_background<'a>(
text: &str,
pos: Vec2,
base_config: &TextConfig<'a>,
fg_color: Color,
bg_color: Color,
) {
let title_builder: TextConfigBuilder = base_config.clone().into();
let shadow_style = title_builder.clone().color(bg_color).build();
let title_style = title_builder.color(fg_color).build();
let offset = pos + (pos * 0.005);
shadow_style.draw_text(text, offset);
title_style.draw_text(text, pos);
}