History

Merge branch 'master' of https://github.com/worklist/hifi into 19508

stojce committed 12 years ago

Commit 07282b42 parents 8b6db35 efcd07f55 files · +1211 −685Browse files

Showing the changes to interface/src/Menu.cpp (1 of 55 files). Show all

Unified · Split

interface/src/Menu.cpp+10−7
@@ -62,7 +62,8 @@ Menu* Menu::getInstance() { · 61 unmodified lines
6262 const ViewFrustumOffset DEFAULT_FRUSTUM_OFFSET = {-135.0f, 0.0f, 0.0f, 25.0f, 0.0f};
6363 const float DEFAULT_FACESHIFT_EYE_DEFLECTION = 0.25f;
6464 const float DEFAULT_AVATAR_LOD_DISTANCE_MULTIPLIER = 1.0f;
65−const int FIVE_SECONDS_OF_FRAMES = 5 * 60;
65+const int ONE_SECOND_OF_FRAMES = 60;
66+const int FIVE_SECONDS_OF_FRAMES = 5 * ONE_SECOND_OF_FRAMES;
6667
6768 Menu::Menu() :
6869 _actionHash(),
@@ -82,9 +83,9 @@ Menu::Menu() : · 13 unmodified lines
8283 _lastAdjust(usecTimestampNow()),
8384 _lastAvatarDetailDrop(usecTimestampNow()),
8485 _fpsAverage(FIVE_SECONDS_OF_FRAMES),
86+ _fastFPSAverage(ONE_SECOND_OF_FRAMES),
8587 _loginAction(NULL),
8688 _preferencesDialog(NULL)
87−
8889 {
8990 Application *appInstance = Application::getInstance();
9091
@@ -1050,19 +1051,21 @@ void Menu::autoAdjustLOD(float currentFPS) { · 959 unmodified lines
10501051 currentFPS = ASSUMED_FPS;
10511052 }
10521053 _fpsAverage.updateAverage(currentFPS);
1054+ _fastFPSAverage.updateAverage(currentFPS);
10531055
10541056 quint64 now = usecTimestampNow();
10551057
1056− if (_fpsAverage.getAverage() < ADJUST_LOD_DOWN_FPS) {
1057− if (now - _lastAvatarDetailDrop > ADJUST_LOD_DOWN_DELAY) {
1058+ const quint64 ADJUST_AVATAR_LOD_DOWN_DELAY = 1000 * 1000;
1059+ if (_fastFPSAverage.getAverage() < ADJUST_LOD_DOWN_FPS) {
1060+ if (now - _lastAvatarDetailDrop > ADJUST_AVATAR_LOD_DOWN_DELAY) {
10581061 // attempt to lower the detail in proportion to the fps difference
10591062 float targetFps = (ADJUST_LOD_DOWN_FPS + ADJUST_LOD_UP_FPS) * 0.5f;
1060− _avatarLODDistanceMultiplier *= (targetFps / _fpsAverage.getAverage());
1063+ _avatarLODDistanceMultiplier *= (targetFps / _fastFPSAverage.getAverage());
10611064 _lastAvatarDetailDrop = now;
10621065 }
1063− } else if (_fpsAverage.getAverage() > ADJUST_LOD_UP_FPS) {
1066+ } else if (_fastFPSAverage.getAverage() > ADJUST_LOD_UP_FPS) {
10641067 // let the detail level creep slowly upwards
1065− const float DISTANCE_DECREASE_RATE = 0.01f;
1068+ const float DISTANCE_DECREASE_RATE = 0.02f;
10661069 const float MINIMUM_DISTANCE_MULTIPLIER = 0.1f;
10671070 _avatarLODDistanceMultiplier = qMax(MINIMUM_DISTANCE_MULTIPLIER,
10681071 _avatarLODDistanceMultiplier - DISTANCE_DECREASE_RATE);