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
62const ViewFrustumOffset DEFAULT_FRUSTUM_OFFSET = {-135.0f, 0.0f, 0.0f, 25.0f, 0.0f};62const ViewFrustumOffset DEFAULT_FRUSTUM_OFFSET = {-135.0f, 0.0f, 0.0f, 25.0f, 0.0f};
63const float DEFAULT_FACESHIFT_EYE_DEFLECTION = 0.25f;63const float DEFAULT_FACESHIFT_EYE_DEFLECTION = 0.25f;
64const float DEFAULT_AVATAR_LOD_DISTANCE_MULTIPLIER = 1.0f;64const float DEFAULT_AVATAR_LOD_DISTANCE_MULTIPLIER = 1.0f;
65const int FIVE_SECONDS_OF_FRAMES = 5 * 60;65const int ONE_SECOND_OF_FRAMES = 60;
66const int FIVE_SECONDS_OF_FRAMES = 5 * ONE_SECOND_OF_FRAMES;
66 67
67Menu::Menu() :68Menu::Menu() :
68 _actionHash(),69 _actionHash(),
@@ -82,9 +83,9 @@ Menu::Menu() : · 13 unmodified lines
82 _lastAdjust(usecTimestampNow()),83 _lastAdjust(usecTimestampNow()),
83 _lastAvatarDetailDrop(usecTimestampNow()),84 _lastAvatarDetailDrop(usecTimestampNow()),
84 _fpsAverage(FIVE_SECONDS_OF_FRAMES),85 _fpsAverage(FIVE_SECONDS_OF_FRAMES),
86 _fastFPSAverage(ONE_SECOND_OF_FRAMES),
85 _loginAction(NULL),87 _loginAction(NULL),
86 _preferencesDialog(NULL)88 _preferencesDialog(NULL)
87
88{89{
89 Application *appInstance = Application::getInstance();90 Application *appInstance = Application::getInstance();
90 91
@@ -1050,19 +1051,21 @@ void Menu::autoAdjustLOD(float currentFPS) { · 959 unmodified lines
1050 currentFPS = ASSUMED_FPS;1051 currentFPS = ASSUMED_FPS;
1051 }1052 }
1052 _fpsAverage.updateAverage(currentFPS);1053 _fpsAverage.updateAverage(currentFPS);
1054 _fastFPSAverage.updateAverage(currentFPS);
1053 1055
1054 quint64 now = usecTimestampNow();1056 quint64 now = usecTimestampNow();
1055 1057
1056 if (_fpsAverage.getAverage() < ADJUST_LOD_DOWN_FPS) {1058 const quint64 ADJUST_AVATAR_LOD_DOWN_DELAY = 1000 * 1000;
1057 if (now - _lastAvatarDetailDrop > ADJUST_LOD_DOWN_DELAY) {1059 if (_fastFPSAverage.getAverage() < ADJUST_LOD_DOWN_FPS) {
1060 if (now - _lastAvatarDetailDrop > ADJUST_AVATAR_LOD_DOWN_DELAY) {
1058 // attempt to lower the detail in proportion to the fps difference1061 // attempt to lower the detail in proportion to the fps difference
1059 float targetFps = (ADJUST_LOD_DOWN_FPS + ADJUST_LOD_UP_FPS) * 0.5f;1062 float targetFps = (ADJUST_LOD_DOWN_FPS + ADJUST_LOD_UP_FPS) * 0.5f;
1060 _avatarLODDistanceMultiplier *= (targetFps / _fpsAverage.getAverage()); 1063 _avatarLODDistanceMultiplier *= (targetFps / _fastFPSAverage.getAverage());
1061 _lastAvatarDetailDrop = now;1064 _lastAvatarDetailDrop = now;
1062 }1065 }
1063 } else if (_fpsAverage.getAverage() > ADJUST_LOD_UP_FPS) {1066 } else if (_fastFPSAverage.getAverage() > ADJUST_LOD_UP_FPS) {
1064 // let the detail level creep slowly upwards1067 // let the detail level creep slowly upwards
1065 const float DISTANCE_DECREASE_RATE = 0.01f;1068 const float DISTANCE_DECREASE_RATE = 0.02f;
1066 const float MINIMUM_DISTANCE_MULTIPLIER = 0.1f;1069 const float MINIMUM_DISTANCE_MULTIPLIER = 0.1f;
1067 _avatarLODDistanceMultiplier = qMax(MINIMUM_DISTANCE_MULTIPLIER,1070 _avatarLODDistanceMultiplier = qMax(MINIMUM_DISTANCE_MULTIPLIER,
1068 _avatarLODDistanceMultiplier - DISTANCE_DECREASE_RATE);1071 _avatarLODDistanceMultiplier - DISTANCE_DECREASE_RATE);