void ScriptedAnimationController::serviceScriptedAnimations(double monotonicTimeNow) { if (!hasScheduledItems()) return; RefPtrWillBeRawPtr<ScriptedAnimationController> protect(this); callMediaQueryListListeners(); dispatchEvents(); executeCallbacks(monotonicTimeNow); scheduleAnimationIfNeeded(); }
void ScriptedAnimationController::serviceScriptedAnimations(double monotonicTimeNow) { if (!m_callbacks.size() && !m_eventQueue.size()) return; if (m_suspendCount) return; RefPtr<ScriptedAnimationController> protect(this); dispatchEvents(); executeCallbacks(monotonicTimeNow); scheduleAnimationIfNeeded(); }
void ScriptedAnimationController::serviceScriptedAnimations(double monotonicTimeNow) { if (m_callbackCollection.isEmpty() && !m_eventQueue.size() && !m_mediaQueryListListeners.size()) return; if (m_suspendCount) return; RefPtrWillBeRawPtr<ScriptedAnimationController> protect(this); callMediaQueryListListeners(); dispatchEvents(); executeCallbacks(monotonicTimeNow); scheduleAnimationIfNeeded(); }
void ScriptedAnimationController::serviceScriptedAnimations(double monotonicTimeNow) { WTF_LOG(ScriptedAnimationController, "serviceScriptedAnimations: #callbacks = %d, #events = %d, #mediaQueryListListeners = %d, count = %d", static_cast<int>(m_callbacks.size()), static_cast<int>(m_eventQueue.size()), static_cast<int>(m_mediaQueryListListeners.size()), m_suspendCount); if (!m_callbacks.size() && !m_eventQueue.size() && !m_mediaQueryListListeners.size()) return; if (m_suspendCount) return; RefPtr<ScriptedAnimationController> protect(this); callMediaQueryListListeners(); dispatchEvents(); executeCallbacks(monotonicTimeNow); scheduleAnimationIfNeeded(); }
void Streamer::performPlayerUpdate(Player &player, bool automatic) { Eigen::Vector3f delta = Eigen::Vector3f::Zero(), position = player.position; int state = GetPlayerState(player.playerID); bool update = true; if (automatic) { player.interiorID = GetPlayerInterior(player.playerID); player.worldID = GetPlayerVirtualWorld(player.playerID); GetPlayerPos(player.playerID, &player.position[0], &player.position[1], &player.position[2]); if (state != PLAYER_STATE_NONE && state != PLAYER_STATE_WASTED) { if (player.position != position) { position = player.position; Eigen::Vector3f velocity = Eigen::Vector3f::Zero(); if (state == PLAYER_STATE_ONFOOT) { GetPlayerVelocity(player.playerID, &velocity[0], &velocity[1], &velocity[2]); } else if (state == PLAYER_STATE_DRIVER || state == PLAYER_STATE_PASSENGER) { GetVehicleVelocity(GetPlayerVehicleID(player.playerID), &velocity[0], &velocity[1], &velocity[2]); } float velocityNorm = velocity.squaredNorm(); if (velocityNorm >= velocityBoundaries.get<0>() && velocityNorm <= velocityBoundaries.get<1>()) { delta = velocity * averageUpdateTime; player.position += delta; } } else { update = player.updateWhenIdle; } } else { update = false; } } std::vector<SharedCell> cells; if (update) { core->getGrid()->findAllCells(player, cells); if (!cells.empty()) { if (!core->getData()->objects.empty() && player.enabledItems[STREAMER_TYPE_OBJECT] && !IsPlayerNPC(player.playerID)) { processObjects(player, cells); } if (!core->getData()->checkpoints.empty() && player.enabledItems[STREAMER_TYPE_CP]) { processCheckpoints(player, cells); } if (!core->getData()->raceCheckpoints.empty() && player.enabledItems[STREAMER_TYPE_RACE_CP]) { processRaceCheckpoints(player, cells); } if (!core->getData()->mapIcons.empty() && player.enabledItems[STREAMER_TYPE_MAP_ICON] && !IsPlayerNPC(player.playerID)) { processMapIcons(player, cells); } if (!core->getData()->textLabels.empty() && player.enabledItems[STREAMER_TYPE_3D_TEXT_LABEL] && !IsPlayerNPC(player.playerID)) { processTextLabels(player, cells); } if (!core->getData()->areas.empty() && player.enabledItems[STREAMER_TYPE_AREA]) { if (!delta.isZero()) { player.position = position; } processAreas(player, cells); if (!delta.isZero()) { player.position += delta; } } } } if (automatic) { if (!core->getData()->pickups.empty()) { if (!update) { core->getGrid()->findMinimalCells(player, cells); } processPickups(player, cells); } if (!delta.isZero()) { player.position = position; } executeCallbacks(); } }