add reload

This commit is contained in:
2026-01-06 23:44:42 +01:00
parent 2d8cba9012
commit 1f8f06de2a
2 changed files with 26 additions and 4 deletions

Binary file not shown.

View File

@@ -1,12 +1,13 @@
#include <print> #include <print>
#include <thread> #include <thread>
#include <chrono> #include <chrono>
#include <filesystem>
#include <RmlUi/Core.h> #include <RmlUi/Core.h>
#include <RmlUi/Debugger.h> #include <RmlUi/Debugger.h>
#include <RmlUi_Backend.h> #include <RmlUi_Backend.h>
#include <RmlUi_Include_Windows.h> #include <RmlUi_Include_Windows.h>
void LoadFonts() void load_fonts()
{ {
const Rml::String directory = "assets/"; const Rml::String directory = "assets/";
@@ -48,17 +49,38 @@ int main()
return -1; return -1;
} }
LoadFonts(); load_fonts();
if (Rml::ElementDocument* document = context->LoadDocument("assets/demo.rml")) Rml::ElementDocument* document = context->LoadDocument("assets/demo.rml");
if (document)
{ {
document->Show(); document->Show();
} }
const std::wstring assets_path = std::filesystem::absolute(
std::filesystem::current_path() / "assets").wstring();
HANDLE hNotif = FindFirstChangeNotification(assets_path.c_str(),
TRUE, FILE_NOTIFY_CHANGE_LAST_WRITE);
bool running = true; bool running = true;
while (running) while (running)
{ {
// Handle input and window events. if (const DWORD wait_result = WaitForSingleObject(hNotif, 100);
wait_result == WAIT_OBJECT_0)
{
if (document)
context->UnloadDocument(document);
context->Update();
std::this_thread::sleep_for(std::chrono::milliseconds(100));
document = context->LoadDocument("assets/demo.rml");
if (document)
{
document->ReloadStyleSheet();
document->Show();
}
FindNextChangeNotification(hNotif);
}
running = Backend::ProcessEvents(context); running = Backend::ProcessEvents(context);
context->Update(); context->Update();
Backend::BeginFrame(); Backend::BeginFrame();