citra-emu
/
citra
Archived
1
0
Fork 0

Merge pull request #4579 from xperia64/3d_slider

Change 3D Slider in-game
This commit is contained in:
Weiyi Wang 2019-01-23 20:23:55 -05:00 committed by GitHub
commit 054a97c08b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 16 additions and 3 deletions

View File

@ -438,7 +438,7 @@ void Config::SaveValues() {
qt_config->beginGroup("Layout"); qt_config->beginGroup("Layout");
WriteSetting("toggle_3d", Settings::values.toggle_3d, false); WriteSetting("toggle_3d", Settings::values.toggle_3d, false);
WriteSetting("factor_3d", Settings::values.factor_3d, 0); WriteSetting("factor_3d", Settings::values.factor_3d.load(), 0);
WriteSetting("layout_option", static_cast<int>(Settings::values.layout_option)); WriteSetting("layout_option", static_cast<int>(Settings::values.layout_option));
WriteSetting("swap_screen", Settings::values.swap_screen, false); WriteSetting("swap_screen", Settings::values.swap_screen, false);
WriteSetting("custom_layout", Settings::values.custom_layout, false); WriteSetting("custom_layout", Settings::values.custom_layout, false);

View File

@ -121,6 +121,10 @@ void Handler::Set3DLed(u8 state) {
shared_page.ledstate_3d = state; shared_page.ledstate_3d = state;
} }
void Handler::Set3DSlider(float slidestate) {
shared_page.sliderstate_3d = static_cast<float_le>(slidestate);
}
SharedPageDef& Handler::GetSharedPage() { SharedPageDef& Handler::GetSharedPage() {
return shared_page; return shared_page;
} }

View File

@ -89,6 +89,8 @@ public:
void SetWifiLinkLevel(WifiLinkLevel); void SetWifiLinkLevel(WifiLinkLevel);
void Set3DSlider(float);
void Set3DLed(u8); void Set3DLed(u8);
SharedPageDef& GetSharedPage(); SharedPageDef& GetSharedPage();

View File

@ -12,6 +12,7 @@
#include "core/hle/kernel/event.h" #include "core/hle/kernel/event.h"
#include "core/hle/kernel/handle_table.h" #include "core/hle/kernel/handle_table.h"
#include "core/hle/kernel/shared_memory.h" #include "core/hle/kernel/shared_memory.h"
#include "core/hle/kernel/shared_page.h"
#include "core/hle/service/hid/hid.h" #include "core/hle/service/hid/hid.h"
#include "core/hle/service/hid/hid_spvr.h" #include "core/hle/service/hid/hid_spvr.h"
#include "core/hle/service/hid/hid_user.h" #include "core/hle/service/hid/hid_user.h"
@ -164,6 +165,10 @@ void Module::UpdatePadCallback(u64 userdata, s64 cycles_late) {
event_pad_or_touch_1->Signal(); event_pad_or_touch_1->Signal();
event_pad_or_touch_2->Signal(); event_pad_or_touch_2->Signal();
// TODO(xperia64): How the 3D Slider is updated by the HID module needs to be RE'd
// and possibly moved to its own Core::Timing event.
system.Kernel().GetSharedPageHandler().Set3DSlider(Settings::values.factor_3d / 100.0f);
// Reschedule recurrent event // Reschedule recurrent event
system.CoreTiming().ScheduleEvent(pad_update_ticks - cycles_late, pad_update_event); system.CoreTiming().ScheduleEvent(pad_update_ticks - cycles_late, pad_update_event);
} }

View File

@ -5,6 +5,7 @@
#pragma once #pragma once
#include <array> #include <array>
#include <atomic>
#include <string> #include <string>
#include <unordered_map> #include <unordered_map>
#include <vector> #include <vector>
@ -156,7 +157,7 @@ struct Values {
float bg_blue; float bg_blue;
bool toggle_3d; bool toggle_3d;
u8 factor_3d; std::atomic<u8> factor_3d;
// Audio // Audio
bool enable_dsp_lle; bool enable_dsp_lle;

View File

@ -179,7 +179,8 @@ TelemetrySession::TelemetrySession() {
Settings::values.use_shader_jit); Settings::values.use_shader_jit);
AddField(Telemetry::FieldType::UserConfig, "Renderer_UseVsync", Settings::values.vsync_enabled); AddField(Telemetry::FieldType::UserConfig, "Renderer_UseVsync", Settings::values.vsync_enabled);
AddField(Telemetry::FieldType::UserConfig, "Renderer_Toggle3d", Settings::values.toggle_3d); AddField(Telemetry::FieldType::UserConfig, "Renderer_Toggle3d", Settings::values.toggle_3d);
AddField(Telemetry::FieldType::UserConfig, "Renderer_Factor3d", Settings::values.factor_3d); AddField(Telemetry::FieldType::UserConfig, "Renderer_Factor3d",
Settings::values.factor_3d.load());
AddField(Telemetry::FieldType::UserConfig, "System_IsNew3ds", Settings::values.is_new_3ds); AddField(Telemetry::FieldType::UserConfig, "System_IsNew3ds", Settings::values.is_new_3ds);
AddField(Telemetry::FieldType::UserConfig, "System_RegionValue", Settings::values.region_value); AddField(Telemetry::FieldType::UserConfig, "System_RegionValue", Settings::values.region_value);
} }