46 lines
1.2 KiB
Rust
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);
|
|
}
|