From 334d7cdd6b95bbba50cc20043890ce14f6458c2d Mon Sep 17 00:00:00 2001 From: Rosalie Wanders Date: Mon, 3 Jun 2024 16:47:45 +0200 Subject: [PATCH] 3rdParty: update mupen64plus-video-angrylion-plus --- .../mupen64plus-video-angrylion-plus/.gitrepo | 4 +-- .../mupen64plus/UserInterface/MainDialog.cpp | 18 +++++----- .../mupen64plus/UserInterface/MainDialog.ui | 34 +++++++++---------- .../src/plugin/mupen64plus/gfx_m64p.cpp | 2 ++ .../src/plugin/mupen64plus/gfx_m64p.h | 2 ++ .../src/plugin/mupen64plus/screen.c | 4 +-- 6 files changed, 33 insertions(+), 31 deletions(-) diff --git a/Source/3rdParty/mupen64plus-video-angrylion-plus/.gitrepo b/Source/3rdParty/mupen64plus-video-angrylion-plus/.gitrepo index cdd994d1..9ea76d45 100644 --- a/Source/3rdParty/mupen64plus-video-angrylion-plus/.gitrepo +++ b/Source/3rdParty/mupen64plus-video-angrylion-plus/.gitrepo @@ -6,7 +6,7 @@ [subrepo] remote = git@github.com:/Rosalie241/angrylion-rdp-plus.git branch = RMG - commit = c48015782853ac017e862f2e5c8f2c81d1afa327 - parent = ec9f4f9806f7c53e78eba7b3306e1951b1acd97d + commit = cc7f72699623fc02a08d372b310f0cab3472c4d4 + parent = 525c7a4b608bc0457e73fbb5daadbb8834e1cd62 method = merge cmdver = 0.4.6 diff --git a/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/UserInterface/MainDialog.cpp b/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/UserInterface/MainDialog.cpp index a68521d5..c17d029b 100644 --- a/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/UserInterface/MainDialog.cpp +++ b/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/UserInterface/MainDialog.cpp @@ -50,6 +50,7 @@ MainDialog::MainDialog(QWidget* parent) : QDialog(parent) this->viWidescreenCheckBox->setChecked(ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_WIDESCREEN)); this->viHideOverscanCheckBox->setChecked(ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_HIDE_OVERSCAN)); this->viIntegerScalingCheckBox->setChecked(ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_INTEGER_SCALING)); + this->viVsyncCheckBox->setChecked(ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_VSYNC)); } MainDialog::~MainDialog() @@ -89,16 +90,13 @@ void MainDialog::on_buttonBox_clicked(QAbstractButton* button) ConfigSetParameter(configVideoAngrylionPlus, KEY_DP_COMPAT, M64TYPE_INT, &dpCompatValue); // checkboxes -// int fullscreenValue = this->fullscreenCheckBox->isChecked() ? 1 : 0; //(ConfigGetParamBool(configVideoAngrylionPlus, KEY_FULLSCREEN)); + int parallelValue = this->parallelCheckBox->isChecked() ? 1 : 0; + int busyLoopValue = this->busyLoopCheckBox->isChecked() ? 1 : 0; - int parallelValue = this->parallelCheckBox->isChecked() ? 1 : 0; //(ConfigGetParamBool(configVideoAngrylionPlus, KEY_PARALLEL)); - int busyLoopValue = this->busyLoopCheckBox->isChecked() ? 1 : 0; //(ConfigGetParamBool(configVideoAngrylionPlus, KEY_BUSY_LOOP)); - - int viWidescreenValue = this->viWidescreenCheckBox->isChecked() ? 1 : 0; //(ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_WIDESCREEN)); - int viHideOverscanValue = this->viHideOverscanCheckBox->isChecked() ? 1 : 0; //(ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_HIDE_OVERSCAN)); - int viIntegerScalingValue = this->viIntegerScalingCheckBox->isChecked() ? 1 : 0; //(ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_INTEGER_SCALING)); - -// ConfigSetParameter(configVideoAngrylionPlus, KEY_FULLSCREEN, M64TYPE_BOOL, &fullscreenValue); + int viWidescreenValue = this->viWidescreenCheckBox->isChecked() ? 1 : 0; + int viHideOverscanValue = this->viHideOverscanCheckBox->isChecked() ? 1 : 0; + int viIntegerScalingValue = this->viIntegerScalingCheckBox->isChecked() ? 1 : 0; + int viVsyncValue = this->viVsyncCheckBox->isChecked() ? 1 : 0; ConfigSetParameter(configVideoAngrylionPlus, KEY_PARALLEL, M64TYPE_BOOL, ¶llelValue); ConfigSetParameter(configVideoAngrylionPlus, KEY_BUSY_LOOP, M64TYPE_BOOL, &busyLoopValue); @@ -106,7 +104,7 @@ void MainDialog::on_buttonBox_clicked(QAbstractButton* button) ConfigSetParameter(configVideoAngrylionPlus, KEY_VI_WIDESCREEN, M64TYPE_BOOL, &viWidescreenValue); ConfigSetParameter(configVideoAngrylionPlus, KEY_VI_HIDE_OVERSCAN, M64TYPE_BOOL, &viHideOverscanValue); ConfigSetParameter(configVideoAngrylionPlus, KEY_VI_INTEGER_SCALING, M64TYPE_BOOL, &viIntegerScalingValue); - + ConfigSetParameter(configVideoAngrylionPlus, KEY_VI_VSYNC, M64TYPE_BOOL, &viVsyncValue); ConfigSaveSection("Video-AngrylionPlus"); } diff --git a/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/UserInterface/MainDialog.ui b/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/UserInterface/MainDialog.ui index 6a96c9d6..be0cc3eb 100644 --- a/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/UserInterface/MainDialog.ui +++ b/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/UserInterface/MainDialog.ui @@ -245,6 +245,13 @@ + + + + Multithreaded rendering + + + @@ -266,28 +273,21 @@ + + + + Enable Vsync + + + - - - - 0 - - - - - Multithreaded rendering - - - - - - Qt::Vertical + Qt::Orientation::Vertical @@ -306,10 +306,10 @@ - Qt::Horizontal + Qt::Orientation::Horizontal - QDialogButtonBox::Cancel|QDialogButtonBox::Ok + QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok diff --git a/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/gfx_m64p.cpp b/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/gfx_m64p.cpp index cbb0943b..0ec2d09f 100644 --- a/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/gfx_m64p.cpp +++ b/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/gfx_m64p.cpp @@ -106,6 +106,7 @@ EXPORT m64p_error CALL PluginStartup(m64p_dynlib_handle _CoreLibHandle, void *Co ConfigSetDefaultBool(configVideoAngrylionPlus, KEY_VI_WIDESCREEN, config.vi.widescreen, "Use anamorphic 16:9 output mode if True"); ConfigSetDefaultBool(configVideoAngrylionPlus, KEY_VI_HIDE_OVERSCAN, config.vi.hide_overscan, "Hide overscan area in filteded mode if True"); ConfigSetDefaultBool(configVideoAngrylionPlus, KEY_VI_INTEGER_SCALING, config.vi.integer_scaling, "Display upscaled pixels as groups of 1x1, 2x2, 3x3, etc. if True"); + ConfigSetDefaultBool(configVideoAngrylionPlus, KEY_VI_VSYNC, config.vi.vsync, "Enable vsync to prevent tearing"); ConfigSetDefaultInt(configVideoAngrylionPlus, KEY_DP_COMPAT, config.dp.compat, "Compatibility mode (0=Fast 1=Moderate 2=Slow"); ConfigSaveSection("Video-AngrylionPlus"); @@ -210,6 +211,7 @@ EXPORT int CALL RomOpen (void) config.vi.widescreen = ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_WIDESCREEN); config.vi.hide_overscan = ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_HIDE_OVERSCAN); config.vi.integer_scaling = ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_INTEGER_SCALING); + config.vi.vsync = ConfigGetParamBool(configVideoAngrylionPlus, KEY_VI_VSYNC); config.dp.compat = (dp_compat_profile)ConfigGetParamInt(configVideoAngrylionPlus, KEY_DP_COMPAT); diff --git a/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/gfx_m64p.h b/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/gfx_m64p.h index cb5a8836..b9eb3477 100644 --- a/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/gfx_m64p.h +++ b/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/gfx_m64p.h @@ -39,5 +39,7 @@ extern ptr_PluginGetVersion CoreGetVersion; #define KEY_VI_WIDESCREEN "ViWidescreen" #define KEY_VI_HIDE_OVERSCAN "ViHideOverscan" #define KEY_VI_INTEGER_SCALING "ViIntegerScaling" +#define KEY_VI_VSYNC "ViVsync" + #define KEY_DP_COMPAT "DpCompat" diff --git a/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/screen.c b/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/screen.c index 6d69afbb..dd8bab2b 100644 --- a/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/screen.c +++ b/Source/3rdParty/mupen64plus-video-angrylion-plus/src/plugin/mupen64plus/screen.c @@ -34,8 +34,6 @@ void* IntGetProcAddress(const char *name) void screen_init(struct n64video_config* config) { - UNUSED(config); - /* Get the core Video Extension function pointers from the library handle */ CoreVideo_Init = (ptr_VidExt_Init) DLSYM(CoreLibHandle, "VidExt_Init"); CoreVideo_Quit = (ptr_VidExt_Quit) DLSYM(CoreLibHandle, "VidExt_Quit"); @@ -62,6 +60,8 @@ void screen_init(struct n64video_config* config) CoreVideo_GL_SetAttribute(M64P_GL_CONTEXT_MINOR_VERSION, 0); #endif + CoreVideo_GL_SetAttribute(M64P_GL_SWAP_CONTROL, config->vi.vsync); + CoreVideo_SetVideoMode(win_width, win_height, 0, win_fullscreen ? M64VIDEO_FULLSCREEN : M64VIDEO_WINDOWED, M64VIDEOFLAG_SUPPORT_RESIZING); }