1
0
Files
BasaltMeter/BasaltPresenter/Presenter/main.cpp

31 lines
1.0 KiB
C++
Raw Normal View History

2026-01-04 23:11:58 +08:00
#include "dll_loader.hpp"
2026-01-06 21:24:47 +08:00
#include "command_client.hpp"
2026-01-06 16:27:19 +08:00
#include <basalt/char_types.hpp>
#include <basalt/kernel.hpp>
2026-01-04 23:11:58 +08:00
namespace Presenter = ::Basalt::Presenter;
2026-01-06 16:27:19 +08:00
namespace Kernel = ::Basalt::Shared::Kernel;
2025-11-25 13:38:17 +08:00
int main(int argc, char* argv[]) {
2026-01-04 23:11:58 +08:00
auto engine_dll = Presenter::DllLoader(Presenter::DllKind::Engine, BSTEXT("BasaltDirectX11Engine"));
2026-01-06 16:27:19 +08:00
auto deliver_dll = Presenter::DllLoader(Presenter::DllKind::Deliver, BSTEXT("BasaltPipeDeliver"));
2026-01-06 21:24:47 +08:00
auto client = Presenter::CommandClient();
auto payload = client.WaitHandshake();
2026-01-06 16:27:19 +08:00
auto* engine = engine_dll.CreateInstance<Kernel::IEngine>();
auto* deliver = deliver_dll.CreateInstance<Kernel::IDeliver>();
2026-01-05 16:51:58 +08:00
2026-01-06 21:24:47 +08:00
Kernel::EngineConfig engine_config{.headless = false, .title = BSTEXT("Fuck You"), .width = payload.width, .height = payload.height};
2026-01-04 23:11:58 +08:00
engine->Startup(std::move(engine_config));
while (true) {
2026-01-06 21:24:47 +08:00
auto req_stop = engine->Tick();
auto can_stop = client.Tick(req_stop);
if (can_stop) break;
2026-01-04 23:11:58 +08:00
}
engine->Shutdown();
2026-01-05 16:51:58 +08:00
engine_dll.DestroyInstance(engine);
2025-11-25 13:38:17 +08:00
}