mirror of
https://github.com/vcmi/vcmi.git
synced 2025-08-13 19:54:17 +02:00
Add VSync to settings
This commit is contained in:
@@ -274,8 +274,14 @@ void ScreenHandler::initializeWindow()
|
||||
handleFatalError(message, true);
|
||||
}
|
||||
|
||||
//create first available renderer if preferred not set. Use no flags, so HW accelerated will be preferred but SW renderer also will possible
|
||||
mainRenderer = SDL_CreateRenderer(mainWindow, getPreferredRenderingDriver(), SDL_RENDERER_PRESENTVSYNC);
|
||||
// create first available renderer if no preferred one is set
|
||||
// use no SDL_RENDERER_SOFTWARE or SDL_RENDERER_ACCELERATED flag, so HW accelerated will be preferred but SW renderer will also be possible
|
||||
uint32_t rendererFlags = 0;
|
||||
if(settings["video"]["vsync"].Bool())
|
||||
{
|
||||
rendererFlags |= SDL_RENDERER_PRESENTVSYNC;
|
||||
}
|
||||
mainRenderer = SDL_CreateRenderer(mainWindow, getPreferredRenderingDriver(), rendererFlags);
|
||||
|
||||
if(mainRenderer == nullptr)
|
||||
throw std::runtime_error("Unable to create renderer\n");
|
||||
|
@@ -149,7 +149,8 @@
|
||||
"driver",
|
||||
"displayIndex",
|
||||
"showfps",
|
||||
"targetfps"
|
||||
"targetfps",
|
||||
"vsync"
|
||||
],
|
||||
"properties" : {
|
||||
"resolution" : {
|
||||
@@ -207,6 +208,10 @@
|
||||
"targetfps" : {
|
||||
"type" : "number",
|
||||
"default" : 60
|
||||
},
|
||||
"vsync" : {
|
||||
"type" : "boolean",
|
||||
"default" : true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@@ -83,6 +83,7 @@ void CSettingsView::loadSettings()
|
||||
|
||||
ui->spinBoxInterfaceScaling->setValue(settings["video"]["resolution"]["scaling"].Float());
|
||||
ui->spinBoxFramerateLimit->setValue(settings["video"]["targetfps"].Float());
|
||||
ui->checkBoxVSync->setChecked(settings["video"]["vsync"].Bool());
|
||||
ui->spinBoxReservedArea->setValue(std::round(settings["video"]["reservedWidth"].Float() * 100));
|
||||
|
||||
ui->comboBoxFriendlyAI->setCurrentText(QString::fromStdString(settings["server"]["friendlyAI"].String()));
|
||||
@@ -494,6 +495,12 @@ void CSettingsView::on_spinBoxFramerateLimit_valueChanged(int arg1)
|
||||
node->Float() = arg1;
|
||||
}
|
||||
|
||||
void CSettingsView::on_checkBoxVSync_stateChanged(int arg1)
|
||||
{
|
||||
Settings node = settings.write["video"]["vsync"];
|
||||
node->Bool() = arg1;
|
||||
}
|
||||
|
||||
void CSettingsView::on_comboBoxEnemyPlayerAI_currentTextChanged(const QString &arg1)
|
||||
{
|
||||
Settings node = settings.write["server"]["playerAI"];
|
||||
|
@@ -62,6 +62,8 @@ private slots:
|
||||
|
||||
void on_spinBoxFramerateLimit_valueChanged(int arg1);
|
||||
|
||||
void on_checkBoxVSync_stateChanged(int arg1);
|
||||
|
||||
void on_comboBoxEnemyPlayerAI_currentTextChanged(const QString &arg1);
|
||||
|
||||
void on_comboBoxAlliedPlayerAI_currentTextChanged(const QString &arg1);
|
||||
|
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user