Files
BGG2026/src/Application.cpp
2026-08-23 22:37:40 -05:00

58 lines
1.2 KiB
C++

#include "Application.h"
#include "Game.h"
#include "backend/RaylibInput.h"
#include <raylib.h>
#include <RmlUi/Core.h>
#include <RmlUi/Debugger.h>
Game game;
bool Application::Init(int width, int height, const char* title, const char* documentPath) {
InitWindow(width, height, title);
SetTargetFPS(60);
Rml::SetSystemInterface(&system_interface);
Rml::SetRenderInterface(&render_interface);
Rml::Initialise();
context = Rml::CreateContext("main", Rml::Vector2i(width, height));
Rml::Debugger::Initialise(context);
// TODO: load a real font
if (Rml::ElementDocument* document = context->LoadDocument(documentPath)) {
document->Show();
} else {
TraceLog(LOG_WARNING, "Failed to load %s", documentPath);
}
game.Init(context);
return true;
}
void Application::Frame() {
if (WindowShouldClose()) {
running = false;
return;
}
ForwardInputToRml(context);
context->Update();
game.Update();
BeginDrawing();
ClearBackground(DARKGRAY);
game.Draw2D();
context->Render();
EndDrawing();
}
void Application::Shutdown() {
Rml::Shutdown();
CloseWindow();
}