mirror of
https://github.com/J-D-K/JKSV.git
synced 2026-03-24 02:34:16 -05:00
53 lines
2.1 KiB
C++
53 lines
2.1 KiB
C++
#include "ui/render_functions.hpp"
|
|
#include "colors.hpp"
|
|
|
|
namespace
|
|
{
|
|
sdl::SharedTexture s_dialogCorners = nullptr;
|
|
sdl::SharedTexture s_menuBoundingCorners = nullptr;
|
|
} // namespace
|
|
|
|
void ui::render_dialog_box(SDL_Texture *target, int x, int y, int width, int height)
|
|
{
|
|
if (!s_dialogCorners)
|
|
{
|
|
s_dialogCorners =
|
|
sdl::TextureManager::create_load_texture("DialogCorners", "romfs:/Textures/DialogCorners.png");
|
|
}
|
|
|
|
// Top
|
|
s_dialogCorners->render_part(target, x, y, 0, 0, 16, 16);
|
|
sdl::render_rect_fill(target, x + 16, y, width - 32, 16, colors::DIALOG_BOX);
|
|
s_dialogCorners->render_part(target, (x + width) - 16, y, 16, 0, 16, 16);
|
|
// Middle
|
|
sdl::render_rect_fill(NULL, x, y + 16, width, height - 32, colors::DIALOG_BOX);
|
|
// Bottom
|
|
s_dialogCorners->render_part(target, x, (y + height) - 16, 0, 16, 16, 16);
|
|
sdl::render_rect_fill(NULL, x + 16, (y + height) - 16, width - 32, 16, colors::DIALOG_BOX);
|
|
s_dialogCorners->render_part(NULL, (x + width) - 16, (y + height) - 16, 16, 16, 16, 16);
|
|
}
|
|
|
|
void ui::render_bounding_box(SDL_Texture *target, int x, int y, int width, int height, const ui::ColorMod &colorMod)
|
|
{
|
|
if (!s_menuBoundingCorners)
|
|
{
|
|
s_menuBoundingCorners =
|
|
sdl::TextureManager::create_load_texture("MenuBoundingCorners", "romfs:/Textures/MenuBounding.png");
|
|
}
|
|
|
|
// This shouldn't fail, but I don't really care if it does.
|
|
s_menuBoundingCorners->set_color_mod(colorMod);
|
|
|
|
// Top
|
|
s_menuBoundingCorners->render_part(target, x, y, 0, 0, 8, 8);
|
|
sdl::render_rect_fill(target, x + 8, y, width - 16, 4, colorMod);
|
|
s_menuBoundingCorners->render_part(target, (x + width) - 8, y, 8, 0, 8, 8);
|
|
// Middle
|
|
sdl::render_rect_fill(target, x, y + 8, 4, height - 16, colorMod);
|
|
sdl::render_rect_fill(target, (x + width) - 4, y + 8, 4, height - 16, colorMod);
|
|
// Bottom
|
|
s_menuBoundingCorners->render_part(target, x, (y + height) - 8, 0, 8, 8, 8);
|
|
sdl::render_rect_fill(target, x + 8, (y + height) - 4, width - 16, 4, colorMod);
|
|
s_menuBoundingCorners->render_part(target, (x + width) - 8, (y + height) - 8, 8, 8, 8, 8);
|
|
}
|