vsync, integer scale

This commit is contained in:
2026-04-05 01:31:02 +02:00
parent 788a883c71
commit 22ee9538a2
7 changed files with 24 additions and 0 deletions

View File

@@ -136,6 +136,14 @@ namespace Menu {
[] { return onOff(Options::video.supersampling); },
[](int) { Screen::get()->toggleSupersampling(); }, nullptr});
p.items.push_back({Locale::get("menu.items.vsync"), ItemKind::Toggle,
[] { return onOff(Options::video.vsync); },
[](int) { Screen::get()->toggleVSync(); }, nullptr});
p.items.push_back({Locale::get("menu.items.integer_scale"), ItemKind::Toggle,
[] { return onOff(Options::video.integer_scale); },
[](int) { Screen::get()->toggleIntegerScale(); }, nullptr});
p.items.push_back({Locale::get("menu.items.shader_type"), ItemKind::Cycle,
[] { return std::string(Screen::get()->getActiveShaderName()); }, [](int dir) {
if (dir < 0) Screen::get()->prevShaderType();

View File

@@ -88,6 +88,7 @@ void Screen::initShaders() {
// Aplica opcions de vídeo
shader_backend_->setScaleMode(Options::video.integer_scale);
shader_backend_->setVSync(Options::video.vsync);
shader_backend_->setStretchFilter(Options::video.stretch_filter_linear);
shader_backend_->setStretch4_3(Options::video.aspect_ratio_4_3);
shader_backend_->setLinearUpscale(Options::video.linear_upscale);
@@ -203,6 +204,13 @@ void Screen::toggleIntegerScale() {
}
}
void Screen::toggleVSync() {
Options::video.vsync = !Options::video.vsync;
if (shader_backend_) {
shader_backend_->setVSync(Options::video.vsync);
}
}
void Screen::toggleStretchFilter() {
Options::video.stretch_filter_linear = !Options::video.stretch_filter_linear;
if (shader_backend_) {

View File

@@ -27,6 +27,7 @@ class Screen {
void toggleSupersampling();
void toggleAspectRatio();
void toggleIntegerScale();
void toggleVSync();
void toggleStretchFilter();
void nextShaderType(); // Cicla PostFX ↔ CrtPi (F7)
void prevShaderType(); // Cicla al revés