Showing the changes to interface/src/Application.cpp (1 of 177 files). Show all
Unified · Split
| @@ -1860,6 +1860,9 @@ Application::Application(int& argc, char** argv, QElapsedTimer& startupTimer, bo · 1859 unmodified lines | ||
| 1860 | 1860 | DependencyManager::get<PickManager>()->setPrecisionPicking(rayPickID, value); |
| 1861 | 1861 | }); |
| 1862 | 1862 | |
| 1863 | + // Preload Tablet sounds | |
| 1864 | + DependencyManager::get<TabletScriptingInterface>()->preloadSounds(); | |
| 1865 | + | |
| 1863 | 1866 | qCDebug(interfaceapp) << "Metaverse session ID is" << uuidStringWithoutCurlyBraces(accountManager->getSessionID()); |
| 1864 | 1867 | } |
| 1865 | 1868 | |
| @@ -2268,7 +2271,7 @@ void Application::initializeUi() { · 402 unmodified lines | ||
| 2268 | 2271 | offscreenUi->setBaseUrl(QUrl::fromLocalFile(PathUtils::resourcesPath() + "/qml/")); |
| 2269 | 2272 | // OffscreenUi is a subclass of OffscreenQmlSurface specifically designed to |
| 2270 | 2273 | // support the window management and scripting proxies for VR use |
| 2271 | − offscreenUi->createDesktop(QString("hifi/Desktop.qml")); | |
| 2274 | + offscreenUi->createDesktop(QString("qrc:///qml/hifi/Desktop.qml")); | |
| 2272 | 2275 | |
| 2273 | 2276 | // FIXME either expose so that dialogs can set this themselves or |
| 2274 | 2277 | // do better detection in the offscreen UI of what has focus |
| @@ -2337,6 +2340,8 @@ void Application::initializeUi() { · 62 unmodified lines | ||
| 2337 | 2340 | |
| 2338 | 2341 | surfaceContext->setContextProperty("Account", AccountScriptingInterface::getInstance()); |
| 2339 | 2342 | surfaceContext->setContextProperty("Tablet", DependencyManager::get<TabletScriptingInterface>().data()); |
| 2343 | + // Tablet inteference with Tablet.qml. Need to avoid this in QML space | |
| 2344 | + surfaceContext->setContextProperty("tabletInterface", DependencyManager::get<TabletScriptingInterface>().data()); | |
| 2340 | 2345 | surfaceContext->setContextProperty("DialogsManager", _dialogsManagerScriptingInterface); |
| 2341 | 2346 | surfaceContext->setContextProperty("GlobalServices", GlobalServicesScriptingInterface::getInstance()); |
| 2342 | 2347 | surfaceContext->setContextProperty("FaceTracker", DependencyManager::get<DdeFaceTracker>().data()); |
| @@ -2405,8 +2410,8 @@ void Application::initializeUi() { · 62 unmodified lines | ||
| 2405 | 2410 | } |
| 2406 | 2411 | |
| 2407 | 2412 | void Application::updateCamera(RenderArgs& renderArgs) { |
| 2408 | − PROFILE_RANGE(render, "/updateCamera"); | |
| 2409 | − PerformanceTimer perfTimer("CameraUpdates"); | |
| 2413 | + PROFILE_RANGE(render, __FUNCTION__); | |
| 2414 | + PerformanceTimer perfTimer("updateCamera"); | |
| 2410 | 2415 | |
| 2411 | 2416 | glm::vec3 boomOffset; |
| 2412 | 2417 | auto myAvatar = getMyAvatar(); |
| @@ -2622,7 +2627,7 @@ void Application::resizeGL() { · 209 unmodified lines | ||
| 2622 | 2627 | } |
| 2623 | 2628 | |
| 2624 | 2629 | void Application::handleSandboxStatus(QNetworkReply* reply) { |
| 2625 | − PROFILE_RANGE(render, "HandleSandboxStatus"); | |
| 2630 | + PROFILE_RANGE(render, __FUNCTION__); | |
| 2626 | 2631 | |
| 2627 | 2632 | bool sandboxIsRunning = SandboxUtils::readStatus(reply->readAll()); |
| 2628 | 2633 | qDebug() << "HandleSandboxStatus" << sandboxIsRunning; |
| @@ -4651,7 +4656,6 @@ void Application::updateDialogs(float deltaTime) const { · 2022 unmodified lines | ||
| 4651 | 4656 | static bool domainLoadingInProgress = false; |
| 4652 | 4657 | |
| 4653 | 4658 | void Application::update(float deltaTime) { |
| 4654 | − | |
| 4655 | 4659 | PROFILE_RANGE_EX(app, __FUNCTION__, 0xffff0000, (uint64_t)_renderFrameCount + 1); |
| 4656 | 4660 | |
| 4657 | 4661 | if (!_physicsEnabled) { |
| @@ -4846,11 +4850,11 @@ void Application::update(float deltaTime) { · 188 unmodified lines | ||
| 4846 | 4850 | QSharedPointer<AvatarManager> avatarManager = DependencyManager::get<AvatarManager>(); |
| 4847 | 4851 | |
| 4848 | 4852 | { |
| 4849 | − PROFILE_RANGE_EX(simulation_physics, "Physics", 0xffff0000, (uint64_t)getActiveDisplayPlugin()->presentCount()); | |
| 4853 | + PROFILE_RANGE(simulation_physics, "Physics"); | |
| 4850 | 4854 | PerformanceTimer perfTimer("physics"); |
| 4851 | 4855 | if (_physicsEnabled) { |
| 4852 | 4856 | { |
| 4853 | − PROFILE_RANGE_EX(simulation_physics, "UpdateStates", 0xffffff00, (uint64_t)getActiveDisplayPlugin()->presentCount()); | |
| 4857 | + PROFILE_RANGE(simulation_physics, "PreStep"); | |
| 4854 | 4858 | |
| 4855 | 4859 | PerformanceTimer perfTimer("updateStates)"); |
| 4856 | 4860 | static VectorOfMotionStates motionStates; |
| @@ -4884,14 +4888,14 @@ void Application::update(float deltaTime) { · 27 unmodified lines | ||
| 4884 | 4888 | }); |
| 4885 | 4889 | } |
| 4886 | 4890 | { |
| 4887 | − PROFILE_RANGE_EX(simulation_physics, "StepSimulation", 0xffff8000, (uint64_t)getActiveDisplayPlugin()->presentCount()); | |
| 4891 | + PROFILE_RANGE(simulation_physics, "Step"); | |
| 4888 | 4892 | PerformanceTimer perfTimer("stepSimulation"); |
| 4889 | 4893 | getEntities()->getTree()->withWriteLock([&] { |
| 4890 | 4894 | _physicsEngine->stepSimulation(); |
| 4891 | 4895 | }); |
| 4892 | 4896 | } |
| 4893 | 4897 | { |
| 4894 | − PROFILE_RANGE_EX(simulation_physics, "HarvestChanges", 0xffffff00, (uint64_t)getActiveDisplayPlugin()->presentCount()); | |
| 4898 | + PROFILE_RANGE(simulation_physics, "PostStep"); | |
| 4895 | 4899 | PerformanceTimer perfTimer("harvestChanges"); |
| 4896 | 4900 | if (_physicsEngine->hasOutgoingChanges()) { |
| 4897 | 4901 | // grab the collision events BEFORE handleOutgoingChanges() because at this point |
| @@ -4899,6 +4903,7 @@ void Application::update(float deltaTime) { · 1 unmodified line | ||
| 4899 | 4903 | auto& collisionEvents = _physicsEngine->getCollisionEvents(); |
| 4900 | 4904 | |
| 4901 | 4905 | getEntities()->getTree()->withWriteLock([&] { |
| 4906 | + PROFILE_RANGE(simulation_physics, "Harvest"); | |
| 4902 | 4907 | PerformanceTimer perfTimer("handleOutgoingChanges"); |
| 4903 | 4908 | |
| 4904 | 4909 | const VectorOfMotionStates& outgoingChanges = _physicsEngine->getChangedMotionStates(); |
| @@ -4911,18 +4916,25 @@ void Application::update(float deltaTime) { · 6 unmodified lines | ||
| 4911 | 4916 | |
| 4912 | 4917 | if (!_aboutToQuit) { |
| 4913 | 4918 | // handleCollisionEvents() AFTER handleOutgoinChanges() |
| 4914 | − PerformanceTimer perfTimer("entities"); | |
| 4915 | − avatarManager->handleCollisionEvents(collisionEvents); | |
| 4916 | − // Collision events (and their scripts) must not be handled when we're locked, above. (That would risk | |
| 4917 | − // deadlock.) | |
| 4918 | − _entitySimulation->handleCollisionEvents(collisionEvents); | |
| 4919 | + { | |
| 4920 | + PROFILE_RANGE(simulation_physics, "CollisionEvents"); | |
| 4921 | + PerformanceTimer perfTimer("entities"); | |
| 4922 | + avatarManager->handleCollisionEvents(collisionEvents); | |
| 4923 | + // Collision events (and their scripts) must not be handled when we're locked, above. (That would risk | |
| 4924 | + // deadlock.) | |
| 4925 | + _entitySimulation->handleCollisionEvents(collisionEvents); | |
| 4926 | + } | |
| 4919 | 4927 | |
| 4928 | + PROFILE_RANGE(simulation_physics, "UpdateEntities"); | |
| 4920 | 4929 | // NOTE: the getEntities()->update() call below will wait for lock |
| 4921 | 4930 | // and will simulate entity motion (the EntityTree has been given an EntitySimulation). |
| 4922 | 4931 | getEntities()->update(true); // update the models... |
| 4923 | 4932 | } |
| 4924 | 4933 | |
| 4925 | − myAvatar->harvestResultsFromPhysicsSimulation(deltaTime); | |
| 4934 | + { | |
| 4935 | + PROFILE_RANGE(simulation_physics, "MyAvatar"); | |
| 4936 | + myAvatar->harvestResultsFromPhysicsSimulation(deltaTime); | |
| 4937 | + } | |
| 4926 | 4938 | |
| 4927 | 4939 | if (Menu::getInstance()->isOptionChecked(MenuOption::DisplayDebugTimingDetails) && |
| 4928 | 4940 | Menu::getInstance()->isOptionChecked(MenuOption::ExpandPhysicsSimulationTiming)) { |
| @@ -4941,13 +4953,13 @@ void Application::update(float deltaTime) { · 12 unmodified lines | ||
| 4941 | 4953 | // AvatarManager update |
| 4942 | 4954 | { |
| 4943 | 4955 | { |
| 4956 | + PROFILE_RANGE(simulation, "OtherAvatars"); | |
| 4944 | 4957 | PerformanceTimer perfTimer("otherAvatars"); |
| 4945 | − PROFILE_RANGE_EX(simulation, "OtherAvatars", 0xffff00ff, (uint64_t)getActiveDisplayPlugin()->presentCount()); | |
| 4946 | 4958 | avatarManager->updateOtherAvatars(deltaTime); |
| 4947 | 4959 | } |
| 4948 | 4960 | |
| 4949 | 4961 | { |
| 4950 | − PROFILE_RANGE_EX(simulation, "MyAvatar", 0xffff00ff, (uint64_t)getActiveDisplayPlugin()->presentCount()); | |
| 4962 | + PROFILE_RANGE(simulation, "MyAvatar"); | |
| 4951 | 4963 | PerformanceTimer perfTimer("MyAvatar"); |
| 4952 | 4964 | qApp->updateMyAvatarLookAtPosition(); |
| 4953 | 4965 | avatarManager->updateMyAvatar(deltaTime); |
| @@ -5091,6 +5103,7 @@ void Application::update(float deltaTime) { · 137 unmodified lines | ||
| 5091 | 5103 | } |
| 5092 | 5104 | |
| 5093 | 5105 | this->updateCamera(appRenderArgs._renderArgs); |
| 5106 | + appRenderArgs._eyeToWorld = _myCamera.getTransform(); | |
| 5094 | 5107 | appRenderArgs._isStereo = false; |
| 5095 | 5108 | |
| 5096 | 5109 | { |
| @@ -5818,6 +5831,8 @@ void Application::registerScriptEngineWithApplicationServices(ScriptEnginePointe · 721 unmodified lines | ||
| 5818 | 5831 | qScriptRegisterMetaType(scriptEngine.data(), wrapperToScriptValue<TabletProxy>, wrapperFromScriptValue<TabletProxy>); |
| 5819 | 5832 | qScriptRegisterMetaType(scriptEngine.data(), |
| 5820 | 5833 | wrapperToScriptValue<TabletButtonProxy>, wrapperFromScriptValue<TabletButtonProxy>); |
| 5834 | + // Tablet inteference with Tablet.qml. Need to avoid this in QML space | |
| 5835 | + scriptEngine->registerGlobalObject("tabletInterface", DependencyManager::get<TabletScriptingInterface>().data()); | |
| 5821 | 5836 | scriptEngine->registerGlobalObject("Tablet", DependencyManager::get<TabletScriptingInterface>().data()); |
| 5822 | 5837 | |
| 5823 | 5838 | auto toolbarScriptingInterface = DependencyManager::get<ToolbarScriptingInterface>().data(); |