void ETHEngine::Start(VideoPtr video, InputPtr input, AudioPtr audio) { Platform::FileIOHubPtr fileIOHub = video->GetFileIOHub(); ETHAppEnmlFile file(fileIOHub->GetResourceDirectory() + ETH_APP_PROPERTIES_FILE, fileIOHub->GetFileManager(), video->GetPlatformName()); m_richLighting = file.IsRichLightingEnabled(); m_provider = ETHResourceProviderPtr(new ETHResourceProvider( ETHGraphicResourceManagerPtr(new ETHGraphicResourceManager(file.GetDensityManager())), ETHAudioResourceManagerPtr(new ETHAudioResourceManager()), ETHShaderManagerPtr(new ETHShaderManager(video, fileIOHub->GetStartResourceDirectory() + ETHDirectories::GetShaderDirectory(), m_richLighting)), video, audio, input, fileIOHub, false)); m_ethInput.SetProvider(m_provider); CreateDynamicBackBuffer(file); if (!m_pASEngine) { video->SetBGColor(gs2d::constant::BLACK); if (!PrepareScriptingEngine(file.GetDefinedWords())) { Abort(); return; } if (m_compileAndRun) { if (!RunMainFunction(GetMainFunctionId())) { Abort(); return; } video->EnableQuitShortcuts(true); m_v2LastCamPos = video->GetCameraPos(); } } else { video->SetBGColor(m_lastBGColor); m_pScene->RecoverResources(); } }