History

framerate is as fast as the display can go

Sam Gateau committed 12 years ago

Commit 80a87b31 parent 5b0fd996 files · +114 −27Browse files

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

Unified · Split

interface/src/Menu.cpp+41−6
@@ -373,7 +373,23 @@ Menu::Menu() : · 372 unmodified lines
373373 shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, MenuOption::SimpleShadows, 0, false));
374374 shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, MenuOption::CascadedShadows, 0, false));
375375
376− addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::RenderUnleashFramerate, 0, false, this, SLOT(toggleUnleashFramerate()));
376+ {
377+ QMenu* framerateMenu = renderOptionsMenu->addMenu(MenuOption::RenderTargetFramerate);
378+ QActionGroup* framerateGroup = new QActionGroup(framerateMenu);
379+
380+ framerateGroup->addAction(addCheckableActionToQMenuAndActionHash(framerateMenu, MenuOption::RenderTargetFramerateUnlimited, 0, true));
381+ framerateGroup->addAction(addCheckableActionToQMenuAndActionHash(framerateMenu, MenuOption::RenderTargetFramerate60, 0, false));
382+ framerateGroup->addAction(addCheckableActionToQMenuAndActionHash(framerateMenu, MenuOption::RenderTargetFramerate50, 0, false));
383+ framerateGroup->addAction(addCheckableActionToQMenuAndActionHash(framerateMenu, MenuOption::RenderTargetFramerate40, 0, false));
384+ framerateGroup->addAction(addCheckableActionToQMenuAndActionHash(framerateMenu, MenuOption::RenderTargetFramerate30, 0, false));
385+ connect(framerateMenu, SIGNAL(triggered(QAction*)), this, SLOT(changeRenderTargetFramerate(QAction*)));
386+
387+#if defined(Q_OS_MAC)
388+#else
389+ QAction* vsyncAction = addCheckableActionToQMenuAndActionHash(renderOptionsMenu, MenuOption::RenderTargetFramerateVSyncOn, 0, true, this, SLOT(changeVSync()));
390+#endif
391+ }
392+
377393
378394 QMenu* resolutionMenu = renderOptionsMenu->addMenu(MenuOption::RenderResolution);
379395 QActionGroup* resolutionGroup = new QActionGroup(resolutionMenu);
@@ -1237,11 +1253,30 @@ void Menu::muteEnvironment() { · 857 unmodified lines
12371253 free(packet);
12381254 }
12391255
1240−void Menu::toggleUnleashFramerate() {
1241− if (isOptionChecked(MenuOption::RenderUnleashFramerate)) {
1242− Application::getInstance()->setRenderTargetFramerate(0);
1243− } else {
1244− Application::getInstance()->setRenderTargetFramerate(-1);
1256+void Menu::changeVSync() {
1257+ Application::getInstance()->setRenderTargetFramerate(
1258+ Application::getInstance()->getRenderTargetFramerate(),
1259+ isOptionChecked(MenuOption::RenderTargetFramerateVSyncOn));
1260+}
1261+void Menu::changeRenderTargetFramerate(QAction* action) {
1262+ bool vsynOn = Application::getInstance()->isVSyncOn();
1263+ unsigned int framerate = Application::getInstance()->getRenderTargetFramerate();
1264+
1265+ QString text = action->text();
1266+ if (text == MenuOption::RenderTargetFramerateUnlimited) {
1267+ Application::getInstance()->setRenderTargetFramerate(0, vsynOn);
1268+ }
1269+ else if (text == MenuOption::RenderTargetFramerate60) {
1270+ Application::getInstance()->setRenderTargetFramerate(60, vsynOn);
1271+ }
1272+ else if (text == MenuOption::RenderTargetFramerate50) {
1273+ Application::getInstance()->setRenderTargetFramerate(50, vsynOn);
1274+ }
1275+ else if (text == MenuOption::RenderTargetFramerate40) {
1276+ Application::getInstance()->setRenderTargetFramerate(40, vsynOn);
1277+ }
1278+ else if (text == MenuOption::RenderTargetFramerate30) {
1279+ Application::getInstance()->setRenderTargetFramerate(30, vsynOn);
12451280 }
12461281 }
12471282