You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
1.7 KiB
65 lines
1.7 KiB
#include "system/ui/raylib/util.h"
|
|
|
|
#include <array>
|
|
#include <filesystem>
|
|
|
|
#undef GREEN
|
|
#undef RED
|
|
#undef YELLOW
|
|
#include "common/swaglog.h"
|
|
#include "system/hardware/hw.h"
|
|
|
|
constexpr std::array<const char *, static_cast<int>(FontWeight::Count)> FONT_FILE_PATHS = {
|
|
"../../selfdrive/assets/fonts/Inter-Black.ttf",
|
|
"../../selfdrive/assets/fonts/Inter-Bold.ttf",
|
|
"../../selfdrive/assets/fonts/Inter-ExtraBold.ttf",
|
|
"../../selfdrive/assets/fonts/Inter-ExtraLight.ttf",
|
|
"../../selfdrive/assets/fonts/Inter-Medium.ttf",
|
|
"../../selfdrive/assets/fonts/Inter-Regular.ttf",
|
|
"../../selfdrive/assets/fonts/Inter-SemiBold.ttf",
|
|
"../../selfdrive/assets/fonts/Inter-Thin.ttf",
|
|
};
|
|
|
|
Texture2D LoadTextureResized(const char *fileName, int size) {
|
|
Image img = LoadImage(fileName);
|
|
ImageResize(&img, size, size);
|
|
Texture2D texture = LoadTextureFromImage(img);
|
|
return texture;
|
|
}
|
|
|
|
App *pApp = nullptr;
|
|
|
|
App::App(const char *title, int fps) {
|
|
// Ensure the current dir matches the exectuable's directory
|
|
auto self_path = util::readlink("/proc/self/exe");
|
|
auto exe_dir = std::filesystem::path(self_path).parent_path();
|
|
chdir(exe_dir.c_str());
|
|
|
|
Hardware::set_display_power(true);
|
|
Hardware::set_brightness(65);
|
|
|
|
// SetTraceLogLevel(LOG_NONE);
|
|
InitWindow(2160, 1080, title);
|
|
SetTargetFPS(fps);
|
|
|
|
// Load fonts
|
|
fonts_.reserve(FONT_FILE_PATHS.size());
|
|
for (int i = 0; i < FONT_FILE_PATHS.size(); ++i) {
|
|
fonts_.push_back(LoadFontEx(FONT_FILE_PATHS[i], 120, nullptr, 250));
|
|
}
|
|
|
|
pApp = this;
|
|
}
|
|
|
|
App::~App() {
|
|
for (auto &font : fonts_) {
|
|
UnloadFont(font);
|
|
}
|
|
|
|
CloseWindow();
|
|
pApp = nullptr;
|
|
}
|
|
|
|
const Font &App::getFont(FontWeight weight) const {
|
|
return fonts_[static_cast<int>(weight)];
|
|
}
|
|
|