#include "dll_loader.hpp" #include "cmd_client.hpp" #include #include #include namespace engine = ::basalt::shared::engine; using engine::EngineConfig; using engine::IEngine; namespace deliver = ::basalt::shared::deliver; using deliver::DeliverConfig; using deliver::IDeliver; namespace dll_loader = ::basalt::presenter::dll_loader; using dll_loader::DllKind; using dll_loader::DllLoader; using ::basalt::presenter::cmd_client::CmdClient; int main(int argc, char* argv[]) { auto engine_dll = DllLoader(DllKind::Engine, BSTEXT("BasaltDirectX11Engine")); auto deliver_dll = DllLoader(DllKind::Deliver, BSTEXT("BasaltPipeDeliver")); auto client = CmdClient(); auto payload = client.wait_handshake(); auto* engine = engine_dll.create_instance(); //auto* deliver = deliver_dll.create_instance(); EngineConfig engine_config{.headless = false, .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.destroy_instance(engine); }