void ClockworkPlayerApp::Start() { Application::Start(); // Instantiate and register NETCore subsystem context_->RegisterSubsystem(new NETCore(context_)); // Instantiate and register the Javascript subsystem Javascript* javascript = new Javascript(context_); context_->RegisterSubsystem(javascript); vm_ = javascript->InstantiateVM("MainVM"); vm_->InitJSContext(); UI* ui = GetSubsystem<UI>(); ui->Initialize("DefaultUI/language/lng_en.tb.txt"); ui->LoadDefaultPlayerSkin(); vm_->SetModuleSearchPaths("Modules"); // Instantiate and register the Player subsystem context_->RegisterSubsystem(new ClockworkPlayer::Player(context_)); ClockworkPlayer::jsapi_init_clockworkplayer(vm_); JSVM* vm = JSVM::GetJSVM(0); if (!vm->ExecuteMain()) { SendEvent(E_EXITREQUESTED); } return; }
void AEPlayerApplication::Start() { AEEditorCommon::Start(); UI* ui = GetSubsystem<UI>(); ui->Initialize("DefaultUI/language/lng_en.tb.txt"); ui->LoadDefaultPlayerSkin(); context_->RegisterSubsystem(new PlayerMode(context_)); PlayerMode* playerMode = GetSubsystem<PlayerMode>(); playerMode->ProcessArguments(); SubscribeToEvent(E_JSERROR, HANDLER(AEPlayerApplication, HandleJSError)); #ifdef ATOMIC_DOTNET if (debugPlayer_) { GetSubsystem<NETCore>()->WaitForDebuggerConnect(); } #endif vm_->SetModuleSearchPaths("Modules"); // Instantiate and register the Player subsystem context_->RegisterSubsystem(new AtomicPlayer::Player(context_)); AtomicPlayer::jsapi_init_atomicplayer(vm_); #ifdef ATOMIC_DOTNET // Initialize Scripting Subsystem NETScript* netScript = new NETScript(context_); context_->RegisterSubsystem(netScript); netScript->Initialize(); netScript->ExecMainAssembly(); #endif if (!playerMode->launchedByEditor()) { JSVM* vm = JSVM::GetJSVM(0); if (!vm->ExecuteMain()) { SendEvent(E_EXITREQUESTED); } } SubscribeToEvent(E_PLAYERQUIT, HANDLER(AEPlayerApplication, HandleQuit)); return; }
void IPCPlayerApp::Start() { if (subprocess_) { // do not execute main in the player app executeJSMain_ = false; } PlayerApp::Start(); int id = -1; if (IPC::ProcessArguments(arguments_, id, fd_[0], fd_[1])) { SubscribeToEvent(E_IPCINITIALIZE, ATOMIC_HANDLER(IPCPlayerApp, HandleIPCInitialize)); SubscribeToEvent(E_LOGMESSAGE, ATOMIC_HANDLER(IPCPlayerApp, HandleLogMessage)); SubscribeToEvent(E_JSERROR, ATOMIC_HANDLER(IPCPlayerApp, HandleJSError)); SubscribeToEvent(E_EXITREQUESTED, ATOMIC_HANDLER(IPCPlayerApp, HandleExitRequest)); SubscribeToEvent(E_SCREENMODE, ATOMIC_HANDLER(IPCPlayerApp, HandlePlayerWindowChanged)); SubscribeToEvent(E_WINDOWPOS, ATOMIC_HANDLER(IPCPlayerApp, HandlePlayerWindowChanged)); SubscribeToEvent(E_UPDATESPAUSEDRESUMED, ATOMIC_HANDLER(IPCPlayerApp, HandleUpdatesPausedResumed)); if (ipc_->InitWorker((unsigned)id, fd_[0], fd_[1])) { brokerActive_ = true; } else if (subprocess_) { ATOMIC_LOGERROR("IPCPlayerApp::Start() - Unable to initialize IPC Worker"); } } if (subprocess_) { JSVM* vm = JSVM::GetJSVM(0); if (!vm->ExecuteMain()) { SendEvent(E_EXITREQUESTED); } SubscribeToEvent(E_PLAYERQUIT, ATOMIC_HANDLER(IPCPlayerApp, HandleQuit)); } GetSubsystem<Graphics>()->RaiseWindow(); }
void PlayerMode::HandleIPCInitialize(StringHash eventType, VariantMap& eventData) { brokerActive_ = true; JSVM* vm = JSVM::GetJSVM(0); if (!vm->ExecuteMain()) { SendEvent(E_EXITREQUESTED); } // BEGIN LICENSE MANAGEMENT licenseModule3D_ = eventData["license3D"].GetBool(); // END LICENSE MANAGEMENT SystemUI::DebugHud* debugHud = GetSubsystem<SystemUI::DebugHud>(); if (debugHud) debugHud->SetMode(eventData["debugHudMode"].GetUInt()); }