[gnome-games/wip/exalm/3ds: 6/9] flatpak: Bundle Citra patches
- From: Alexander Mikhaylenko <alexm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-games/wip/exalm/3ds: 6/9] flatpak: Bundle Citra patches
- Date: Thu, 10 Dec 2020 23:19:40 +0000 (UTC)
commit 35e608ef736585954f13e6e2a63274c7af3d9d13
Author: Alexander Mikhaylenko <alexm gnome org>
Date: Thu Dec 10 22:20:43 2020 +0500
flatpak: Bundle Citra patches
Include patches for the following pull requests:
* https://github.com/libretro/citra/pull/80
* https://github.com/libretro/citra/pull/81
This should be reverted once they are merged.
.../citra-Add-an-option-to-hide-pointer.patch | 68 ++++++++++++++++++++++
...-when-changing-screen-layout-to-top-botto.patch | 35 +++++++++++
flatpak/libretro-cores/libretro-citra.json | 8 +++
3 files changed, 111 insertions(+)
---
diff --git a/flatpak/libretro-cores/citra-Add-an-option-to-hide-pointer.patch
b/flatpak/libretro-cores/citra-Add-an-option-to-hide-pointer.patch
new file mode 100644
index 00000000..f8e0035b
--- /dev/null
+++ b/flatpak/libretro-cores/citra-Add-an-option-to-hide-pointer.patch
@@ -0,0 +1,68 @@
+From e891bcbc6967738a1fd760350dd6eb718dc121c2 Mon Sep 17 00:00:00 2001
+From: Alexander Mikhaylenko <alexm gnome org>
+Date: Sun, 6 Dec 2020 17:28:24 +0500
+Subject: [PATCH 1/2] Add an option to hide pointer
+
+---
+ src/citra_libretro/citra_libretro.cpp | 3 +++
+ src/citra_libretro/core_settings.h | 1 +
+ src/citra_libretro/emu_window/libretro_window.cpp | 3 ++-
+ 3 files changed, 6 insertions(+), 1 deletion(-)
+
+diff --git a/src/citra_libretro/citra_libretro.cpp b/src/citra_libretro/citra_libretro.cpp
+index 6e9a065f7..212c4c0d8 100644
+--- a/src/citra_libretro/citra_libretro.cpp
++++ b/src/citra_libretro/citra_libretro.cpp
+@@ -102,6 +102,7 @@ void LibRetro::OnConfigureEnvironment() {
+ "Right analog function; C-Stick and Touchscreen Pointer|Touchscreen Pointer|C-Stick"},
+ {"citra_deadzone", "Emulated pointer deadzone (%); 15|20|25|30|35|0|5|10"},
+ {"citra_mouse_touchscreen", "Enable mouse input for touchscreen; enabled|disabled"},
++ {"citra_mouse_show_pointer", "Show mouse pointer for touchscreen; enabled|disabled"},
+ {"citra_use_virtual_sd", "Enable virtual SD card; enabled|disabled"},
+ {"citra_use_libretro_save_path", "Savegame location; LibRetro Default|Citra Default"},
+ {"citra_is_new_3ds", "3DS system model; Old 3DS|New 3DS"},
+@@ -187,6 +188,8 @@ void UpdateSettings() {
+ LibRetro::FetchVariable("citra_use_gdbstub", "disabled") == "enabled";
+ LibRetro::settings.mouse_touchscreen =
+ LibRetro::FetchVariable("citra_mouse_touchscreen", "enabled") == "enabled";
++ LibRetro::settings.mouse_show_pointer =
++ LibRetro::FetchVariable("citra_mouse_show_pointer", "enabled") == "enabled";
+
+ // These values are a bit more hard to define, unfortunately.
+ auto scaling = LibRetro::FetchVariable("citra_resolution_factor", "1x (Native)");
+diff --git a/src/citra_libretro/core_settings.h b/src/citra_libretro/core_settings.h
+index 4bb9f34b1..bac6e014f 100644
+--- a/src/citra_libretro/core_settings.h
++++ b/src/citra_libretro/core_settings.h
+@@ -19,6 +19,7 @@ struct CoreSettings {
+ LibRetro::CStickFunction analog_function;
+
+ bool mouse_touchscreen;
++ bool mouse_show_pointer;
+
+ } extern settings;
+
+diff --git a/src/citra_libretro/emu_window/libretro_window.cpp
b/src/citra_libretro/emu_window/libretro_window.cpp
+index 3e6c66b03..d87fa8a6c 100644
+--- a/src/citra_libretro/emu_window/libretro_window.cpp
++++ b/src/citra_libretro/emu_window/libretro_window.cpp
+@@ -7,6 +7,7 @@
+
+ #include "audio_core/audio_types.h"
+ #include "citra_libretro/citra_libretro.h"
++#include "citra_libretro/core_settings.h"
+ #include "citra_libretro/environment.h"
+ #include "citra_libretro/input/input_factory.h"
+ #include "core/3ds.h"
+@@ -58,7 +59,7 @@ void EmuWindow_LibRetro::SwapBuffers() {
+
+ ResetGLState();
+
+- if (tracker != nullptr) {
++ if (tracker != nullptr && LibRetro::settings.mouse_show_pointer) {
+ tracker->Render(width, height);
+ }
+
+--
+2.29.2
+
diff --git a/flatpak/libretro-cores/citra-Clean-frame-when-changing-screen-layout-to-top-botto.patch
b/flatpak/libretro-cores/citra-Clean-frame-when-changing-screen-layout-to-top-botto.patch
new file mode 100644
index 00000000..7a2c36e9
--- /dev/null
+++ b/flatpak/libretro-cores/citra-Clean-frame-when-changing-screen-layout-to-top-botto.patch
@@ -0,0 +1,35 @@
+From 536e19b9e35fd88f60a979bcf2ff118f673b0332 Mon Sep 17 00:00:00 2001
+From: Alexander Mikhaylenko <alexm gnome org>
+Date: Sun, 6 Dec 2020 17:50:09 +0500
+Subject: [PATCH 2/2] Clean frame when changing screen layout to top/bottom or
+ large/small
+
+These layouts have empty areas which will contain leftover pixels otherwise.
+---
+ src/citra_libretro/emu_window/libretro_window.cpp | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/src/citra_libretro/emu_window/libretro_window.cpp
b/src/citra_libretro/emu_window/libretro_window.cpp
+index d87fa8a6c..4094ca10a 100644
+--- a/src/citra_libretro/emu_window/libretro_window.cpp
++++ b/src/citra_libretro/emu_window/libretro_window.cpp
+@@ -164,6 +164,8 @@ void EmuWindow_LibRetro::UpdateLayout() {
+ baseX *= scaling;
+ baseY *= scaling;
+ }
++
++ doCleanFrame = true;
+ break;
+ case Settings::LayoutOption::SideScreen:
+ baseX = Core::kScreenBottomWidth + Core::kScreenTopWidth;
+@@ -181,6 +183,7 @@ void EmuWindow_LibRetro::UpdateLayout() {
+ baseY = Core::kScreenTopHeight + Core::kScreenBottomHeight;
+ baseX *= scaling;
+ baseY *= scaling;
++ doCleanFrame = true;
+ break;
+ }
+
+--
+2.29.2
+
diff --git a/flatpak/libretro-cores/libretro-citra.json b/flatpak/libretro-cores/libretro-citra.json
index bd37b54b..f533cc9a 100644
--- a/flatpak/libretro-cores/libretro-citra.json
+++ b/flatpak/libretro-cores/libretro-citra.json
@@ -22,6 +22,14 @@
{
"type": "git",
"url": "https://github.com/libretro/citra.git"
+ },
+ {
+ "type": "patch",
+ "path": "citra-Add-an-option-to-hide-pointer.patch"
+ },
+ {
+ "type": "patch",
+ "path": "citra-Clean-frame-when-changing-screen-layout-to-top-botto.patch"
}
],
"modules" : [
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]