#include "system/ui/raylib/util.h" #include #include #undef GREEN #undef RED #undef YELLOW #include "common/swaglog.h" #include "system/hardware/hw.h" constexpr std::array(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(weight)]; }