Showing the changes to interface/src/Menu.cpp (1 of 6 files). Show all
Unified · Split
| @@ -373,7 +373,23 @@ Menu::Menu() : · 372 unmodified lines | ||
| 373 | 373 | shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, MenuOption::SimpleShadows, 0, false)); |
| 374 | 374 | shadowGroup->addAction(addCheckableActionToQMenuAndActionHash(shadowMenu, MenuOption::CascadedShadows, 0, false)); |
| 375 | 375 | |
| 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 | + | |
| 377 | 393 | |
| 378 | 394 | QMenu* resolutionMenu = renderOptionsMenu->addMenu(MenuOption::RenderResolution); |
| 379 | 395 | QActionGroup* resolutionGroup = new QActionGroup(resolutionMenu); |
| @@ -1237,11 +1253,30 @@ void Menu::muteEnvironment() { · 857 unmodified lines | ||
| 1237 | 1253 | free(packet); |
| 1238 | 1254 | } |
| 1239 | 1255 | |
| 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); | |
| 1245 | 1280 | } |
| 1246 | 1281 | } |
| 1247 | 1282 | |