#include "dll_loader.hpp" #include "command_client.hpp" #include #include namespace Presenter = ::Basalt::Presenter; namespace Kernel = ::Basalt::Shared::Kernel; int main(int argc, char* argv[]) { auto engine_dll = Presenter::DllLoader(Presenter::DllKind::Engine, BSTEXT("BasaltDirectX11Engine")); auto deliver_dll = Presenter::DllLoader(Presenter::DllKind::Deliver, BSTEXT("BasaltPipeDeliver")); auto client = Presenter::CommandClient(); auto payload = client.WaitHandshake(); auto* engine = engine_dll.CreateInstance(); auto* deliver = deliver_dll.CreateInstance(); Kernel::EngineConfig engine_config{.headless = false, .title = BSTEXT("Fuck You"), .width = payload.width, .height = payload.height}; engine->Startup(std::move(engine_config)); while (true) { auto req_stop = engine->Tick(); auto can_stop = client.Tick(req_stop); if (can_stop) break; } engine->Shutdown(); engine_dll.DestroyInstance(engine); }