mirror of
https://github.com/izzy2lost/WeeU.git
synced 2026-07-06 00:19:59 -07:00
Update wxgui
This commit is contained in:
+7
-13
@@ -42,11 +42,7 @@ add_compile_definitions(VK_NO_PROTOTYPES)
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
|
||||
add_subdirectory(Common)
|
||||
if(ANDROID)
|
||||
add_subdirectory(android/app/src/main/cpp)
|
||||
else()
|
||||
add_subdirectory(gui)
|
||||
endif()
|
||||
add_subdirectory(gui)
|
||||
add_subdirectory(Cafe)
|
||||
add_subdirectory(Cemu)
|
||||
add_subdirectory(config)
|
||||
@@ -57,10 +53,11 @@ add_subdirectory(imgui)
|
||||
add_subdirectory(resource)
|
||||
|
||||
if(ANDROID)
|
||||
add_library(CemuBin STATIC
|
||||
main.cpp
|
||||
mainLLE.cpp
|
||||
)
|
||||
add_library(CemuBin STATIC
|
||||
main.cpp
|
||||
mainLLE.cpp
|
||||
)
|
||||
add_subdirectory(android/app/src/main/cpp)
|
||||
else()
|
||||
add_executable(CemuBin
|
||||
main.cpp
|
||||
@@ -145,16 +142,13 @@ target_link_libraries(CemuBin PRIVATE
|
||||
CemuAudio
|
||||
CemuCafe
|
||||
CemuCommon
|
||||
CemuGui
|
||||
CemuComponents
|
||||
CemuConfig
|
||||
CemuInput
|
||||
CemuUtil
|
||||
)
|
||||
|
||||
if(NOT ANDROID)
|
||||
target_link_libraries(CemuBin PRIVATE CemuGui)
|
||||
endif()
|
||||
|
||||
if(ENABLE_OPENGL)
|
||||
target_link_libraries(CemuBin PRIVATE OpenGL::GL)
|
||||
endif()
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
|
||||
class IAudioAPI
|
||||
{
|
||||
friend class GeneralSettings2;
|
||||
|
||||
public:
|
||||
class DeviceDescription
|
||||
{
|
||||
@@ -70,7 +68,7 @@ public:
|
||||
static void PrintLogging();
|
||||
static void InitializeStatic();
|
||||
static bool IsAudioAPIAvailable(AudioAPI api);
|
||||
static void SetAudioDelay(uint32 audioDelay) { s_audioDelay = audioDelay; }
|
||||
static void SetAudioDelay(uint32 audioDelay) { s_audioDelay = audioDelay; }
|
||||
static std::unique_ptr<IAudioAPI> CreateDeviceFromConfig(AudioType type, sint32 rate, sint32 samples_per_block, sint32 bits_per_sample);
|
||||
static std::unique_ptr<IAudioAPI> CreateDeviceFromConfig(AudioType type, sint32 rate, sint32 channels, sint32 samples_per_block, sint32 bits_per_sample);
|
||||
static std::unique_ptr<IAudioAPI> CreateDevice(AudioAPI api, const DeviceDescriptionPtr& device, sint32 samplerate, sint32 channels, sint32 samples_per_block, sint32 bits_per_sample);
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
#include "wxgui.h"
|
||||
<<<<<<<< HEAD:src/gui/wxgui/debugger/AudioDebuggerWindow.cpp
|
||||
#include "debugger/AudioDebuggerWindow.h"
|
||||
========
|
||||
#include "AudioDebuggerWindow.h"
|
||||
>>>>>>>> public/main:src/gui/wxgui/AudioDebuggerWindow.cpp
|
||||
|
||||
#include "Cafe/OS/libs/snd_core/ax.h"
|
||||
#include "Cafe/OS/libs/snd_core/ax_internal.h"
|
||||
|
||||
@@ -1,28 +1,12 @@
|
||||
<<<<<<< HEAD:src/gui/CemuApp.cpp
|
||||
#include "CemuApp.h"
|
||||
#include "MainWindow.h"
|
||||
#include "wxgui.h"
|
||||
=======
|
||||
#include "wxgui/CemuApp.h"
|
||||
#include "wxCemuConfig.h"
|
||||
#include "wxgui/MainWindow.h"
|
||||
#include "wxgui/wxgui.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/CemuApp.cpp
|
||||
#include "config/CemuConfig.h"
|
||||
#include "Cafe/HW/Latte/Renderer/Vulkan/VulkanAPI.h"
|
||||
#include "Cafe/HW/Latte/Core/LatteOverlay.h"
|
||||
#include "config/ActiveSettings.h"
|
||||
#include "config/LaunchSettings.h"
|
||||
<<<<<<< HEAD:src/gui/CemuApp.cpp
|
||||
#include "GettingStartedDialog.h"
|
||||
#include "input/InputManager.h"
|
||||
#include "helpers/wxHelpers.h"
|
||||
#include "Cemu/ncrypto/ncrypto.h"
|
||||
#include "Cemu/GuiSystem/GuiSystem.h"
|
||||
|
||||
#if BOOST_OS_LINUX && HAS_WAYLAND
|
||||
#include "helpers/wxWayland.h"
|
||||
=======
|
||||
#include "wxgui/GettingStartedDialog.h"
|
||||
#include "input/InputManager.h"
|
||||
#include "wxgui/helpers/wxHelpers.h"
|
||||
@@ -32,7 +16,6 @@
|
||||
|
||||
#if BOOST_OS_LINUX && HAS_WAYLAND
|
||||
#include "wxgui/helpers/wxWayland.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/CemuApp.cpp
|
||||
#endif
|
||||
#if __WXGTK__
|
||||
#include <glib.h>
|
||||
@@ -48,12 +31,8 @@
|
||||
|
||||
wxIMPLEMENT_APP_NO_MAIN(CemuApp);
|
||||
|
||||
<<<<<<< HEAD:src/gui/CemuApp.cpp
|
||||
// defined in guiWrapper.cpp
|
||||
=======
|
||||
// defined in wxWindowSystem.cpp
|
||||
extern WindowSystem::WindowInfo g_window_info;
|
||||
>>>>>>> public/main:src/gui/wxgui/CemuApp.cpp
|
||||
extern std::shared_mutex g_mutex;
|
||||
|
||||
// forward declarations from main.cpp
|
||||
@@ -278,7 +257,6 @@ std::string TranslationCallback(std::string_view msgId)
|
||||
|
||||
bool CemuApp::OnInit()
|
||||
{
|
||||
GuiSystem::registerKeyCodeToStringCallback(rawKeyCodeToString);
|
||||
#if __WXGTK__
|
||||
GTKSuppressDiagnostics(G_LOG_LEVEL_MASK & ~G_LOG_FLAG_FATAL);
|
||||
#endif
|
||||
@@ -361,7 +339,8 @@ bool CemuApp::OnInit()
|
||||
|
||||
m_mainFrame = new MainWindow();
|
||||
|
||||
GuiSystem::getWindowInfo().app_active = true;
|
||||
std::unique_lock lock(g_mutex);
|
||||
g_window_info.app_active = true;
|
||||
|
||||
HotkeySettings::Init(m_mainFrame);
|
||||
|
||||
@@ -422,28 +401,21 @@ void CemuApp::OnAssertFailure(const wxChar* file, int line, const wxChar* func,
|
||||
|
||||
int CemuApp::FilterEvent(wxEvent& event)
|
||||
{
|
||||
auto& windowInfo = GuiSystem::getWindowInfo();
|
||||
if(event.GetEventType() == wxEVT_KEY_DOWN)
|
||||
{
|
||||
const auto& key_event = (wxKeyEvent&)event;
|
||||
windowInfo.set_keystate(fix_raw_keycode(key_event.GetRawKeyCode(), key_event.GetRawKeyFlags()), true);
|
||||
auto platformKeyCode = rawKeyCodeToPlatformKeyCode(key_event.GetRawKeyCode());
|
||||
if (platformKeyCode.has_value())
|
||||
windowInfo.set_keystate(platformKeyCode.value(), true);
|
||||
g_window_info.set_keystate(fix_raw_keycode(key_event.GetRawKeyCode(), key_event.GetRawKeyFlags()), true);
|
||||
}
|
||||
else if(event.GetEventType() == wxEVT_KEY_UP)
|
||||
{
|
||||
const auto& key_event = (wxKeyEvent&)event;
|
||||
windowInfo.set_keystate(fix_raw_keycode(key_event.GetRawKeyCode(), key_event.GetRawKeyFlags()), false);
|
||||
auto platformKeyCode = rawKeyCodeToPlatformKeyCode(key_event.GetRawKeyCode());
|
||||
if (platformKeyCode.has_value())
|
||||
windowInfo.set_keystate(platformKeyCode.value(), false);
|
||||
g_window_info.set_keystate(fix_raw_keycode(key_event.GetRawKeyCode(), key_event.GetRawKeyFlags()), false);
|
||||
}
|
||||
else if(event.GetEventType() == wxEVT_ACTIVATE_APP)
|
||||
{
|
||||
const auto& activate_event = (wxActivateEvent&)event;
|
||||
if(!activate_event.GetActive())
|
||||
windowInfo.set_keystates_up();
|
||||
g_window_info.set_keystatesup();
|
||||
}
|
||||
|
||||
return wxApp::FilterEvent(event);
|
||||
@@ -605,29 +577,8 @@ void CemuApp::CreateDefaultCemuFiles()
|
||||
|
||||
void CemuApp::ActivateApp(wxActivateEvent& event)
|
||||
{
|
||||
GuiSystem::getWindowInfo().app_active = event.GetActive();
|
||||
g_window_info.app_active = event.GetActive();
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
#if BOOST_OS_WINDOWS
|
||||
void _wxLaunch()
|
||||
{
|
||||
SetThreadName("MainThread_UI");
|
||||
wxEntry();
|
||||
}
|
||||
#endif
|
||||
|
||||
void gui_create()
|
||||
{
|
||||
SetThreadName("cemu");
|
||||
#if BOOST_OS_WINDOWS
|
||||
// on Windows wxWidgets there is a bug where wxDirDialog->ShowModal will deadlock in Windows internals somehow
|
||||
// moving the UI thread off the main thread fixes this
|
||||
std::thread t = std::thread(_wxLaunch);
|
||||
t.join();
|
||||
#else
|
||||
int argc = 0;
|
||||
char* argv[1]{};
|
||||
wxEntry(argc, argv);
|
||||
#endif
|
||||
}
|
||||
@@ -1,8 +1,4 @@
|
||||
<<<<<<< HEAD:src/gui/CemuUpdateWindow.cpp
|
||||
#include "CemuUpdateWindow.h"
|
||||
=======
|
||||
#include "wxgui/CemuUpdateWindow.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/CemuUpdateWindow.cpp
|
||||
|
||||
#include "Common/version.h"
|
||||
#include "util/helpers/helpers.h"
|
||||
|
||||
@@ -1,12 +1,3 @@
|
||||
<<<<<<< HEAD:src/gui/ChecksumTool.cpp
|
||||
#include "ChecksumTool.h"
|
||||
|
||||
#include "Cafe/TitleList/GameInfo.h"
|
||||
#include "helpers/wxCustomEvents.h"
|
||||
#include "util/helpers/helpers.h"
|
||||
#include "helpers/wxHelpers.h"
|
||||
#include "wxHelper.h"
|
||||
=======
|
||||
#include "wxgui/ChecksumTool.h"
|
||||
|
||||
#include "Cafe/TitleList/GameInfo.h"
|
||||
@@ -14,7 +5,6 @@
|
||||
#include "util/helpers/helpers.h"
|
||||
#include "wxgui/helpers/wxHelpers.h"
|
||||
#include "wxgui/wxHelper.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/ChecksumTool.cpp
|
||||
#include "Cafe/Filesystem/WUD/wud.h"
|
||||
|
||||
#include <zip.h>
|
||||
|
||||
@@ -1,10 +1,6 @@
|
||||
#pragma once
|
||||
#include <wx/dialog.h>
|
||||
<<<<<<< HEAD:src/gui/ChecksumTool.h
|
||||
#include "components/wxTitleManagerList.h"
|
||||
=======
|
||||
#include "wxgui/components/wxTitleManagerList.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/ChecksumTool.h
|
||||
#include "Cafe/TitleList/TitleInfo.h"
|
||||
#include <rapidjson/document.h>
|
||||
|
||||
|
||||
@@ -1,10 +1,5 @@
|
||||
<<<<<<< HEAD:src/gui/DownloadGraphicPacksWindow.cpp
|
||||
#include "wxgui.h"
|
||||
#include "DownloadGraphicPacksWindow.h"
|
||||
=======
|
||||
#include "wxgui/wxgui.h"
|
||||
#include "wxgui/DownloadGraphicPacksWindow.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/DownloadGraphicPacksWindow.cpp
|
||||
|
||||
#include <filesystem>
|
||||
#include <curl/curl.h>
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
<<<<<<< HEAD:src/gui/GameProfileWindow.cpp
|
||||
#include "GameProfileWindow.h"
|
||||
=======
|
||||
#include "wxgui/GameProfileWindow.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/GameProfileWindow.cpp
|
||||
|
||||
#include <wx/statbox.h>
|
||||
#include <wx/sizer.h>
|
||||
@@ -12,11 +8,7 @@
|
||||
#include <wx/wupdlock.h>
|
||||
#include <wx/slider.h>
|
||||
|
||||
<<<<<<< HEAD:src/gui/GameProfileWindow.cpp
|
||||
#include "helpers/wxHelpers.h"
|
||||
=======
|
||||
#include "wxgui/helpers/wxHelpers.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/GameProfileWindow.cpp
|
||||
#include "input/InputManager.h"
|
||||
|
||||
#if BOOST_OS_LINUX || BOOST_OS_MACOS
|
||||
|
||||
@@ -1,24 +1,13 @@
|
||||
<<<<<<< HEAD:src/gui/GameUpdateWindow.cpp
|
||||
#include "wxgui.h"
|
||||
#include "GameUpdateWindow.h"
|
||||
=======
|
||||
#include "wxgui/wxgui.h"
|
||||
#include "wxgui/GameUpdateWindow.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/GameUpdateWindow.cpp
|
||||
#include "util/helpers/helpers.h"
|
||||
|
||||
#include <filesystem>
|
||||
#include <sstream>
|
||||
#include "util/helpers/SystemException.h"
|
||||
<<<<<<< HEAD:src/gui/GameUpdateWindow.cpp
|
||||
#include "CemuApp.h"
|
||||
#include "Cafe/TitleList/GameInfo.h"
|
||||
#include "helpers/wxHelpers.h"
|
||||
=======
|
||||
#include "wxgui/CemuApp.h"
|
||||
#include "Cafe/TitleList/GameInfo.h"
|
||||
#include "wxgui/helpers/wxHelpers.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/GameUpdateWindow.cpp
|
||||
#include "wxHelper.h"
|
||||
|
||||
wxString _GetTitleIdTypeStr(TitleId titleId)
|
||||
|
||||
@@ -1,15 +1,8 @@
|
||||
<<<<<<< HEAD:src/gui/GeneralSettings2.cpp
|
||||
#include "wxgui.h"
|
||||
#include "GeneralSettings2.h"
|
||||
#include "CemuApp.h"
|
||||
#include "helpers/wxControlObject.h"
|
||||
=======
|
||||
#include "wxCemuConfig.h"
|
||||
#include "wxgui/wxgui.h"
|
||||
#include "wxgui/GeneralSettings2.h"
|
||||
#include "wxgui/CemuApp.h"
|
||||
#include "wxgui/helpers/wxControlObject.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/GeneralSettings2.cpp
|
||||
|
||||
#include "util/helpers/helpers.h"
|
||||
|
||||
@@ -39,11 +32,7 @@
|
||||
|
||||
#include <boost/tokenizer.hpp>
|
||||
#include "util/helpers/SystemException.h"
|
||||
<<<<<<< HEAD:src/gui/GeneralSettings2.cpp
|
||||
#include "dialogs/CreateAccount/wxCreateAccountDialog.h"
|
||||
=======
|
||||
#include "wxgui/dialogs/CreateAccount/wxCreateAccountDialog.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/GeneralSettings2.cpp
|
||||
|
||||
#if BOOST_OS_WINDOWS
|
||||
#include <VersionHelpers.h>
|
||||
@@ -51,11 +40,7 @@
|
||||
|
||||
#include "config/LaunchSettings.h"
|
||||
#include "config/ActiveSettings.h"
|
||||
<<<<<<< HEAD:src/gui/GeneralSettings2.cpp
|
||||
#include "helpers/wxHelpers.h"
|
||||
=======
|
||||
#include "wxgui/helpers/wxHelpers.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/GeneralSettings2.cpp
|
||||
|
||||
#include "resource/embedded/resources.h"
|
||||
|
||||
@@ -1164,7 +1149,7 @@ void GeneralSettings2::DisableSettings(bool game_launched)
|
||||
|
||||
void GeneralSettings2::OnAudioLatencyChanged(wxCommandEvent& event)
|
||||
{
|
||||
IAudioAPI::s_audioDelay = event.GetInt();
|
||||
IAudioAPI::SetAudioDelay(event.GetInt());
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,8 +1,4 @@
|
||||
<<<<<<< HEAD:src/gui/GettingStartedDialog.cpp
|
||||
#include "GettingStartedDialog.h"
|
||||
=======
|
||||
#include "wxgui/GettingStartedDialog.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/GettingStartedDialog.cpp
|
||||
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/filepicker.h>
|
||||
@@ -12,18 +8,11 @@
|
||||
#include <wx/button.h>
|
||||
|
||||
#include "config/ActiveSettings.h"
|
||||
<<<<<<< HEAD:src/gui/GettingStartedDialog.cpp
|
||||
#include "CemuApp.h"
|
||||
#include "DownloadGraphicPacksWindow.h"
|
||||
#include "GraphicPacksWindow2.h"
|
||||
#include "input/InputSettings2.h"
|
||||
=======
|
||||
#include "wxCemuConfig.h"
|
||||
#include "wxgui/CemuApp.h"
|
||||
#include "wxgui/DownloadGraphicPacksWindow.h"
|
||||
#include "wxgui/GraphicPacksWindow2.h"
|
||||
#include "wxgui/input/InputSettings2.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/GettingStartedDialog.cpp
|
||||
#include "config/CemuConfig.h"
|
||||
|
||||
#include "Cafe/TitleList/TitleList.h"
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
<<<<<<< HEAD:src/gui/GraphicPacksWindow2.cpp
|
||||
#include "wxgui.h"
|
||||
#include "GraphicPacksWindow2.h"
|
||||
#include "DownloadGraphicPacksWindow.h"
|
||||
=======
|
||||
#include "wxgui/wxgui.h"
|
||||
#include "wxgui/GraphicPacksWindow2.h"
|
||||
#include "wxgui/DownloadGraphicPacksWindow.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/GraphicPacksWindow2.cpp
|
||||
#include "Cafe/GraphicPack/GraphicPack2.h"
|
||||
#include "config/CemuConfig.h"
|
||||
#include "config/ActiveSettings.h"
|
||||
|
||||
@@ -1,29 +1,17 @@
|
||||
<<<<<<< HEAD:src/gui/LoggingWindow.cpp
|
||||
#include "LoggingWindow.h"
|
||||
|
||||
#include "helpers/wxLogEvent.h"
|
||||
=======
|
||||
#include "wxgui/LoggingWindow.h"
|
||||
|
||||
#include "Cemu/Logging/CemuLogging.h"
|
||||
#include "wxgui/helpers/wxLogEvent.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/LoggingWindow.cpp
|
||||
|
||||
#include <wx/sizer.h>
|
||||
#include <wx/stattext.h>
|
||||
#include <wx/wupdlock.h>
|
||||
|
||||
<<<<<<< HEAD:src/gui/LoggingWindow.cpp
|
||||
#include "helpers/wxHelpers.h"
|
||||
|
||||
=======
|
||||
>>>>>>> public/main:src/gui/wxgui/LoggingWindow.cpp
|
||||
wxDEFINE_EVENT(EVT_LOG, wxLogEvent);
|
||||
|
||||
LoggingWindow::LoggingWindow(wxFrame* parent)
|
||||
: wxFrame(parent, wxID_ANY, _("Logging window"), wxDefaultPosition, wxSize(800, 600), wxDEFAULT_FRAME_STYLE | wxTAB_TRAVERSAL)
|
||||
{
|
||||
cemuLog_registerLogCallbacks(this);
|
||||
auto* sizer = new wxBoxSizer( wxVERTICAL );
|
||||
{
|
||||
auto filter_row = new wxBoxSizer( wxHORIZONTAL );
|
||||
@@ -50,49 +38,33 @@ LoggingWindow::LoggingWindow(wxFrame* parent)
|
||||
this->Layout();
|
||||
|
||||
this->Bind(EVT_LOG, &LoggingWindow::OnLogMessage, this);
|
||||
<<<<<<< HEAD:src/gui/LoggingWindow.cpp
|
||||
=======
|
||||
|
||||
cemuLog_setCallbacks(this);
|
||||
>>>>>>> public/main:src/gui/wxgui/LoggingWindow.cpp
|
||||
}
|
||||
|
||||
LoggingWindow::~LoggingWindow()
|
||||
{
|
||||
cemuLog_unregisterLogCallbacks();
|
||||
this->Unbind(EVT_LOG, &LoggingWindow::OnLogMessage, this);
|
||||
<<<<<<< HEAD:src/gui/LoggingWindow.cpp
|
||||
=======
|
||||
|
||||
cemuLog_clearCallbacks();
|
||||
>>>>>>> public/main:src/gui/wxgui/LoggingWindow.cpp
|
||||
}
|
||||
|
||||
void LoggingWindow::Log(std::string_view filter, std::string_view message)
|
||||
{
|
||||
<<<<<<< HEAD:src/gui/LoggingWindow.cpp
|
||||
|
||||
wxLogEvent event(std::string {filter}, std::string{ message });
|
||||
OnLogMessage(event);
|
||||
=======
|
||||
wxLogEvent event(std::string {filter}, std::string{ message });
|
||||
OnLogMessage(event);
|
||||
|
||||
//const auto log_event = new wxLogEvent(filter, message);
|
||||
//wxQueueEvent(s_instance, log_event);
|
||||
>>>>>>> public/main:src/gui/wxgui/LoggingWindow.cpp
|
||||
}
|
||||
|
||||
void LoggingWindow::Log(std::string_view filter, std::wstring_view message)
|
||||
{
|
||||
wxLogEvent event(std::string {filter}, std::wstring{ message });
|
||||
OnLogMessage(event);
|
||||
<<<<<<< HEAD:src/gui/LoggingWindow.cpp
|
||||
=======
|
||||
|
||||
//const auto log_event = new wxLogEvent(filter, message);
|
||||
//wxQueueEvent(s_instance, log_event);
|
||||
>>>>>>> public/main:src/gui/wxgui/LoggingWindow.cpp
|
||||
}
|
||||
|
||||
void LoggingWindow::OnLogMessage(wxLogEvent& event)
|
||||
|
||||
+25
-291
@@ -1,29 +1,12 @@
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
#include "wxgui.h"
|
||||
#include "MainWindow.h"
|
||||
=======
|
||||
#include "Cafe/HW/Latte/Renderer/Renderer.h"
|
||||
#include "interface/WindowSystem.h"
|
||||
#include "wxCemuConfig.h"
|
||||
#include "wxgui/wxgui.h"
|
||||
#include "wxgui/MainWindow.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
|
||||
#include <wx/mstream.h>
|
||||
#include <wx/clipbrd.h>
|
||||
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
#include "GameUpdateWindow.h"
|
||||
#include "PadViewFrame.h"
|
||||
#include "windows/TextureRelationViewer/TextureRelationWindow.h"
|
||||
#include "windows/PPCThreadsViewer/DebugPPCThreadsWindow.h"
|
||||
#include "canvas/OpenGLCanvas.h"
|
||||
#include "canvas/VulkanCanvas.h"
|
||||
#include "Cafe/OS/libs/nfc/nfc.h"
|
||||
#include "Cafe/OS/libs/swkbd/swkbd.h"
|
||||
#include "debugger/DebuggerWindow2.h"
|
||||
#include "debugger/AudioDebuggerWindow.h"
|
||||
=======
|
||||
#include "wxgui/GameUpdateWindow.h"
|
||||
#include "wxgui/PadViewFrame.h"
|
||||
#include "wxgui/windows/TextureRelationViewer/TextureRelationWindow.h"
|
||||
@@ -34,57 +17,32 @@
|
||||
#include "Cafe/OS/libs/nfc/nfc.h"
|
||||
#include "Cafe/OS/libs/swkbd/swkbd.h"
|
||||
#include "wxgui/debugger/DebuggerWindow2.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
#include "util/helpers/helpers.h"
|
||||
#include "config/CemuConfig.h"
|
||||
#include "Cemu/DiscordPresence/DiscordPresence.h"
|
||||
#include "util/ScreenSaver/ScreenSaver.h"
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
#include "GeneralSettings2.h"
|
||||
#include "GraphicPacksWindow2.h"
|
||||
#include "GameProfileWindow.h"
|
||||
#include "CemuApp.h"
|
||||
#include "CemuUpdateWindow.h"
|
||||
#include "helpers/wxCustomData.h"
|
||||
#include "LoggingWindow.h"
|
||||
=======
|
||||
#include "wxgui/GeneralSettings2.h"
|
||||
#include "wxgui/GraphicPacksWindow2.h"
|
||||
#include "wxgui/CemuApp.h"
|
||||
#include "wxgui/CemuUpdateWindow.h"
|
||||
#include "wxgui/LoggingWindow.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
#include "config/ActiveSettings.h"
|
||||
#include "config/LaunchSettings.h"
|
||||
#include "Cemu/GuiSystem/GuiSystem.h"
|
||||
|
||||
#include "Cafe/Filesystem/FST/FST.h"
|
||||
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
#include "TitleManager.h"
|
||||
#include "gui/EmulatedUSBDevices/EmulatedUSBDeviceFrame.h"
|
||||
=======
|
||||
#include "wxgui/TitleManager.h"
|
||||
#include "wxgui/EmulatedUSBDevices/EmulatedUSBDeviceFrame.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
|
||||
#include "Cafe/CafeSystem.h"
|
||||
|
||||
#include "util/helpers/SystemException.h"
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
#include "DownloadGraphicPacksWindow.h"
|
||||
#include "GettingStartedDialog.h"
|
||||
#include "helpers/wxHelpers.h"
|
||||
#include "Cafe/HW/Latte/Renderer/Vulkan/VsyncDriver.h"
|
||||
#include "input/InputSettings2.h"
|
||||
=======
|
||||
#include "wxgui/DownloadGraphicPacksWindow.h"
|
||||
#include "wxgui/GettingStartedDialog.h"
|
||||
#include "wxgui/helpers/wxHelpers.h"
|
||||
#include "Cafe/HW/Latte/Renderer/Vulkan/VsyncDriver.h"
|
||||
#include "wxgui/input/InputSettings2.h"
|
||||
#include "wxgui/input/HotkeySettings.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
#include "input/InputManager.h"
|
||||
|
||||
#if BOOST_OS_WINDOWS
|
||||
@@ -98,11 +56,7 @@
|
||||
#endif
|
||||
|
||||
#if BOOST_OS_LINUX && HAS_WAYLAND
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
#include "helpers/wxWayland.h"
|
||||
=======
|
||||
#include "wxgui/helpers/wxWayland.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
#endif
|
||||
|
||||
//GameMode support
|
||||
@@ -114,12 +68,8 @@
|
||||
#include "Cafe/TitleList/TitleList.h"
|
||||
#include "wxHelper.h"
|
||||
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
MainWindow* g_mainFrame;
|
||||
=======
|
||||
extern WindowSystem::WindowInfo g_window_info;
|
||||
extern std::shared_mutex g_mutex;
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
|
||||
enum
|
||||
{
|
||||
@@ -346,18 +296,13 @@ private:
|
||||
MainWindow::MainWindow()
|
||||
: wxFrame(nullptr, wxID_ANY, GetInitialWindowTitle(), wxDefaultPosition, wxSize(1280, 720), wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxSYSTEM_MENU | wxCAPTION | wxCLOSE_BOX | wxCLIP_CHILDREN | wxRESIZE_BORDER)
|
||||
{
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
GuiSystem::getWindowInfo().window_main = get_window_handle_info_for_wxWindow(this);
|
||||
=======
|
||||
#ifdef __WXMAC__
|
||||
// Not necessary to set wxApp::s_macExitMenuItemId as automatically handled
|
||||
wxApp::s_macAboutMenuItemId = MAINFRAME_MENU_ID_HELP_ABOUT;
|
||||
wxApp::s_macPreferencesMenuItemId = MAINFRAME_MENU_ID_OPTIONS_MAC_SETTINGS;
|
||||
#endif
|
||||
g_window_info.window_main = initHandleContextFromWxWidgetsWindow(this);
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
g_mainFrame = this;
|
||||
DownloadManager::GetInstance()->setOnGameListRefreshRequested([this](){RequestGameListRefresh();});
|
||||
CafeSystem::SetImplementation(this);
|
||||
|
||||
RecreateMenu();
|
||||
@@ -431,12 +376,10 @@ MainWindow::MainWindow()
|
||||
{
|
||||
g_gdbstub = std::make_unique<GDBServer>(GetConfig().gdb_port);
|
||||
}
|
||||
CafeSystem::registerCafeSystemCallbacks(this);
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
CafeSystem::unregisterCafeSystemCallbacks();
|
||||
if (m_padView)
|
||||
{
|
||||
m_padView->Destroy();
|
||||
@@ -445,93 +388,10 @@ MainWindow::~MainWindow()
|
||||
|
||||
m_timer->Stop();
|
||||
|
||||
std::unique_lock lock(g_mutex);
|
||||
g_mainFrame = nullptr;
|
||||
}
|
||||
|
||||
void MainWindow::updateWindowTitles(bool isIdle, bool isLoading, double fps)
|
||||
{
|
||||
std::string windowText;
|
||||
windowText = BUILD_VERSION_WITH_NAME_STRING;
|
||||
|
||||
if (isIdle)
|
||||
{
|
||||
if (g_mainFrame)
|
||||
g_mainFrame->AsyncSetTitle(windowText);
|
||||
return;
|
||||
}
|
||||
if (isLoading)
|
||||
{
|
||||
windowText.append(" - loading...");
|
||||
if (g_mainFrame)
|
||||
g_mainFrame->AsyncSetTitle(windowText);
|
||||
return;
|
||||
}
|
||||
|
||||
const char* renderer = "";
|
||||
if(g_renderer)
|
||||
{
|
||||
switch(g_renderer->GetType())
|
||||
{
|
||||
case RendererAPI::OpenGL:
|
||||
renderer = "[OpenGL]";
|
||||
break;
|
||||
case RendererAPI::Vulkan:
|
||||
renderer = "[Vulkan]";
|
||||
break;
|
||||
default: ;
|
||||
}
|
||||
}
|
||||
|
||||
// get GPU vendor/mode
|
||||
const char* graphicMode = "[Generic]";
|
||||
if (LatteGPUState.glVendor == GLVENDOR_AMD)
|
||||
graphicMode = "[AMD GPU]";
|
||||
else if (LatteGPUState.glVendor == GLVENDOR_INTEL)
|
||||
graphicMode = "[Intel GPU]";
|
||||
else if (LatteGPUState.glVendor == GLVENDOR_NVIDIA)
|
||||
graphicMode = "[NVIDIA GPU]";
|
||||
else if (LatteGPUState.glVendor == GLVENDOR_APPLE)
|
||||
graphicMode = "[Apple GPU]";
|
||||
|
||||
const uint64 titleId = CafeSystem::GetForegroundTitleId();
|
||||
windowText.append(fmt::format(" - FPS: {:.2f} {} {} [TitleId: {:08x}-{:08x}]", (double)fps, renderer, graphicMode, (uint32)(titleId >> 32), (uint32)(titleId & 0xFFFFFFFF)));
|
||||
|
||||
if (ActiveSettings::IsOnlineEnabled())
|
||||
{
|
||||
if (ActiveSettings::GetNetworkService() == NetworkService::Nintendo)
|
||||
windowText.append(" [Online]");
|
||||
else if (ActiveSettings::GetNetworkService() == NetworkService::Pretendo)
|
||||
windowText.append(" [Online-Pretendo]");
|
||||
else if (ActiveSettings::GetNetworkService() == NetworkService::Custom)
|
||||
windowText.append(" [Online-" + GetNetworkConfig().networkname.GetValue() + "]");
|
||||
}
|
||||
windowText.append(" ");
|
||||
windowText.append(CafeSystem::GetForegroundTitleName());
|
||||
// append region
|
||||
CafeConsoleRegion region = CafeSystem::GetForegroundTitleRegion();
|
||||
uint16 titleVersion = CafeSystem::GetForegroundTitleVersion();
|
||||
if (region == CafeConsoleRegion::JPN)
|
||||
windowText.append(fmt::format(" [JP v{}]", titleVersion));
|
||||
else if (region == CafeConsoleRegion::USA)
|
||||
windowText.append(fmt::format(" [US v{}]", titleVersion));
|
||||
else if (region == CafeConsoleRegion::EUR)
|
||||
windowText.append(fmt::format(" [EU v{}]", titleVersion));
|
||||
else
|
||||
windowText.append(fmt::format(" [v{}]", titleVersion));
|
||||
|
||||
AsyncSetTitle(windowText);
|
||||
auto* pad = GetPadView();
|
||||
if (pad)
|
||||
pad->AsyncSetTitle(fmt::format("GamePad View - FPS: {:.02f}", fps));
|
||||
}
|
||||
|
||||
void MainWindow::notifyGameLoaded()
|
||||
{
|
||||
OnGameLoaded();
|
||||
UpdateSettingsAfterGameLaunch();
|
||||
}
|
||||
|
||||
|
||||
void MainWindow::CreateGameListAndStatusBar()
|
||||
{
|
||||
if(m_main_panel)
|
||||
@@ -578,11 +438,7 @@ void MainWindow::OnClose(wxCloseEvent& event)
|
||||
if(m_game_list)
|
||||
m_game_list->OnClose(event);
|
||||
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
if (!IsMaximized() && !IsFullScreen())
|
||||
=======
|
||||
if (!IsMaximized() && !WindowSystem::IsFullScreen())
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
m_restored_size = GetSize();
|
||||
|
||||
SaveSettings();
|
||||
@@ -1450,19 +1306,19 @@ void MainWindow::LoadSettings()
|
||||
if (config.window_maximized)
|
||||
this->Maximize();
|
||||
}
|
||||
auto& windowInfo = GuiSystem::getWindowInfo();
|
||||
|
||||
if (config.pad_position != Vector2i{ -1,-1 })
|
||||
{
|
||||
windowInfo.restored_pad_x = config.pad_position.x;
|
||||
windowInfo.restored_pad_y = config.pad_position.y;
|
||||
g_window_info.restored_pad_x = config.pad_position.x;
|
||||
g_window_info.restored_pad_y = config.pad_position.y;
|
||||
}
|
||||
|
||||
if (config.pad_size != Vector2i{ -1,-1 })
|
||||
{
|
||||
windowInfo.restored_pad_width = config.pad_size.x;
|
||||
windowInfo.restored_pad_height = config.pad_size.y;
|
||||
g_window_info.restored_pad_width = config.pad_size.x;
|
||||
g_window_info.restored_pad_height = config.pad_size.y;
|
||||
|
||||
windowInfo.pad_maximized = config.pad_maximized;
|
||||
g_window_info.pad_maximized = config.pad_maximized;
|
||||
}
|
||||
|
||||
this->TogglePadView();
|
||||
@@ -1473,14 +1329,8 @@ void MainWindow::LoadSettings()
|
||||
|
||||
void MainWindow::SaveSettings()
|
||||
{
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
auto lock = g_config.Lock();
|
||||
auto& config = GetConfig();
|
||||
auto& windowInfo = GuiSystem::getWindowInfo();
|
||||
=======
|
||||
auto lock = GetConfigHandle().Lock();
|
||||
auto& config = GetWxGUIConfig();
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
|
||||
if (config.window_position != Vector2i{ -1,-1 })
|
||||
{
|
||||
@@ -1500,16 +1350,16 @@ void MainWindow::SaveSettings()
|
||||
|
||||
config.pad_open = m_padView != nullptr;
|
||||
|
||||
if (config.pad_position != Vector2i{ -1,-1 } && windowInfo.restored_pad_x != -1)
|
||||
if (config.pad_position != Vector2i{ -1,-1 } && g_window_info.restored_pad_x != -1)
|
||||
{
|
||||
config.pad_position.x = windowInfo.restored_pad_x;
|
||||
config.pad_position.y = windowInfo.restored_pad_y;
|
||||
config.pad_position.x = g_window_info.restored_pad_x;
|
||||
config.pad_position.y = g_window_info.restored_pad_y;
|
||||
}
|
||||
if (config.pad_size != Vector2i{ -1,-1 } && windowInfo.restored_pad_width != -1)
|
||||
if (config.pad_size != Vector2i{ -1,-1 } && g_window_info.restored_pad_width != -1)
|
||||
{
|
||||
config.pad_size.x = windowInfo.restored_pad_width;
|
||||
config.pad_size.y = windowInfo.restored_pad_height;
|
||||
config.pad_maximized = windowInfo.pad_maximized;
|
||||
config.pad_size.x = g_window_info.restored_pad_width;
|
||||
config.pad_size.y = g_window_info.restored_pad_height;
|
||||
config.pad_maximized = g_window_info.pad_maximized;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1599,102 +1449,6 @@ void MainWindow::OnSetWindowTitle(wxCommandEvent& event)
|
||||
this->SetTitle(event.GetString());
|
||||
}
|
||||
|
||||
static std::optional<fs::path> GenerateScreenshotFilename(bool isDRC)
|
||||
{
|
||||
fs::path screendir = ActiveSettings::GetUserDataPath("screenshots");
|
||||
// build screenshot name with format Screenshot_YYYY-MM-DD_HH-MM-SS[_GamePad].png
|
||||
// if the file already exists add a suffix counter (_2.png, _3.png etc)
|
||||
std::time_t time_t = std::chrono::system_clock::to_time_t(std::chrono::system_clock::now());
|
||||
std::tm* tm = std::localtime(&time_t);
|
||||
|
||||
std::string screenshotFileName = fmt::format("Screenshot_{:04}-{:02}-{:02}_{:02}-{:02}-{:02}", tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday, tm->tm_hour, tm->tm_min, tm->tm_sec);
|
||||
if (isDRC)
|
||||
screenshotFileName.append("_GamePad");
|
||||
|
||||
fs::path screenshotPath;
|
||||
for(sint32 i=0; i<999; i++)
|
||||
{
|
||||
screenshotPath = screendir;
|
||||
if (i == 0)
|
||||
screenshotPath.append(fmt::format("{}.png", screenshotFileName));
|
||||
else
|
||||
screenshotPath.append(fmt::format("{}_{}.png", screenshotFileName, i + 1));
|
||||
|
||||
std::error_code ec;
|
||||
bool exists = fs::exists(screenshotPath, ec);
|
||||
|
||||
if (!ec && !exists)
|
||||
return screenshotPath;
|
||||
}
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
bool SaveScreenshotToFile(const fs::path& imagePath, const wxImage& image)
|
||||
{
|
||||
|
||||
std::error_code ec;
|
||||
fs::create_directories(imagePath.parent_path(), ec);
|
||||
if (ec) return false;
|
||||
|
||||
// suspend wxWidgets logging for the lifetime this object, to prevent a message box if wxImage::SaveFile fails
|
||||
wxLogNull _logNo;
|
||||
return image.SaveFile(imagePath.wstring());
|
||||
}
|
||||
|
||||
bool SaveScreenshotToClipboard(const wxImage& image)
|
||||
{
|
||||
static std::mutex s_clipboardMutex;
|
||||
bool success = false;
|
||||
|
||||
s_clipboardMutex.lock();
|
||||
if (wxTheClipboard->Open())
|
||||
{
|
||||
wxTheClipboard->SetData(new wxImageDataObject(image));
|
||||
wxTheClipboard->Close();
|
||||
success = true;
|
||||
}
|
||||
s_clipboardMutex.unlock();
|
||||
|
||||
return success;
|
||||
}
|
||||
|
||||
std::optional<std::string> SaveScreenshot(std::vector<uint8> data, int width, int height, bool mainWindow)
|
||||
{
|
||||
#if BOOST_OS_WINDOWS
|
||||
// on Windows wxWidgets uses OLE API for the clipboard
|
||||
// to make this work we need to call OleInitialize() on the same thread
|
||||
OleInitialize(nullptr);
|
||||
#endif
|
||||
bool save_screenshot = g_config.data().save_screenshot;
|
||||
wxImage image(width, height, data.data(), true);
|
||||
if (mainWindow)
|
||||
{
|
||||
if(SaveScreenshotToClipboard(image))
|
||||
{
|
||||
if (!save_screenshot)
|
||||
return "Screenshot saved to clipboard";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "Failed to open clipboard";
|
||||
}
|
||||
}
|
||||
if (save_screenshot)
|
||||
{
|
||||
auto imagePath = GenerateScreenshotFilename(mainWindow);
|
||||
if (imagePath.has_value() && SaveScreenshotToFile(imagePath.value(), image))
|
||||
{
|
||||
if (mainWindow)
|
||||
return "Screenshot saved";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "Failed to save screenshot to file";
|
||||
}
|
||||
}
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
void MainWindow::OnKeyUp(wxKeyEvent& event)
|
||||
{
|
||||
event.Skip();
|
||||
@@ -1702,17 +1456,7 @@ void MainWindow::OnKeyUp(wxKeyEvent& event)
|
||||
if (swkbd::hasKeyboardInputHook())
|
||||
return;
|
||||
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
const auto code = event.GetKeyCode();
|
||||
if (code == WXK_ESCAPE)
|
||||
SetFullScreen(false);
|
||||
else if (code == WXK_RETURN && event.AltDown() || code == WXK_F11)
|
||||
SetFullScreen(!IsFullScreen());
|
||||
else if (code == WXK_F12 && g_renderer)
|
||||
g_renderer->RequestScreenshot(SaveScreenshot); // async screenshot request
|
||||
=======
|
||||
HotkeySettings::CaptureInput(event);
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
}
|
||||
|
||||
void MainWindow::OnKeyDown(wxKeyEvent& event)
|
||||
@@ -1897,20 +1641,15 @@ void MainWindow::DestroyCanvas()
|
||||
|
||||
void MainWindow::OnSizeEvent(wxSizeEvent& event)
|
||||
{
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
if (!IsMaximized() && !IsFullScreen())
|
||||
=======
|
||||
if (!IsMaximized() && !WindowSystem::IsFullScreen())
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
m_restored_size = GetSize();
|
||||
|
||||
auto& windowInfo = GuiSystem::getWindowInfo();
|
||||
const wxSize client_size = GetClientSize();
|
||||
windowInfo.width = client_size.GetWidth();
|
||||
windowInfo.height = client_size.GetHeight();
|
||||
windowInfo.phys_width = ToPhys(client_size.GetWidth());
|
||||
windowInfo.phys_height = ToPhys(client_size.GetHeight());
|
||||
windowInfo.dpi_scale = GetDPIScaleFactor();
|
||||
g_window_info.width = client_size.GetWidth();
|
||||
g_window_info.height = client_size.GetHeight();
|
||||
g_window_info.phys_width = ToPhys(client_size.GetWidth());
|
||||
g_window_info.phys_height = ToPhys(client_size.GetHeight());
|
||||
g_window_info.dpi_scale = GetDPIScaleFactor();
|
||||
|
||||
if (m_debugger_window && m_debugger_window->IsShown())
|
||||
m_debugger_window->OnParentMove(GetPosition(), event.GetSize());
|
||||
@@ -1923,22 +1662,17 @@ void MainWindow::OnSizeEvent(wxSizeEvent& event)
|
||||
void MainWindow::OnDPIChangedEvent(wxDPIChangedEvent& event)
|
||||
{
|
||||
event.Skip();
|
||||
auto& windowInfo = GuiSystem::getWindowInfo();
|
||||
const wxSize client_size = GetClientSize();
|
||||
windowInfo.width = client_size.GetWidth();
|
||||
windowInfo.height = client_size.GetHeight();
|
||||
windowInfo.phys_width = ToPhys(client_size.GetWidth());
|
||||
windowInfo.phys_height = ToPhys(client_size.GetHeight());
|
||||
windowInfo.dpi_scale = GetDPIScaleFactor();
|
||||
g_window_info.width = client_size.GetWidth();
|
||||
g_window_info.height = client_size.GetHeight();
|
||||
g_window_info.phys_width = ToPhys(client_size.GetWidth());
|
||||
g_window_info.phys_height = ToPhys(client_size.GetHeight());
|
||||
g_window_info.dpi_scale = GetDPIScaleFactor();
|
||||
}
|
||||
|
||||
void MainWindow::OnMove(wxMoveEvent& event)
|
||||
{
|
||||
<<<<<<< HEAD:src/gui/MainWindow.cpp
|
||||
if (!IsMaximized() && !IsFullScreen())
|
||||
=======
|
||||
if (!IsMaximized() && !WindowSystem::IsFullScreen())
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.cpp
|
||||
m_restored_position = GetPosition();
|
||||
|
||||
if (m_debugger_window && m_debugger_window->IsShown())
|
||||
@@ -1998,7 +1732,7 @@ void MainWindow::SetFullScreen(bool state)
|
||||
}
|
||||
if (state && !m_game_launched)
|
||||
return;
|
||||
GuiSystem::getWindowInfo().is_fullscreen = state;
|
||||
g_window_info.is_fullscreen = state;
|
||||
m_fullscreenMenuItem->Check(state);
|
||||
|
||||
this->ShowFullScreen(state);
|
||||
|
||||
@@ -5,15 +5,6 @@
|
||||
#include <wx/infobar.h>
|
||||
#include "wxcomponents/checkedlistctrl.h"
|
||||
|
||||
<<<<<<< HEAD:src/gui/MainWindow.h
|
||||
#include "PadViewFrame.h"
|
||||
#include "MemorySearcherTool.h"
|
||||
|
||||
#include "config/XMLConfig.h"
|
||||
|
||||
#include "LoggingWindow.h"
|
||||
#include "components/wxGameList.h"
|
||||
=======
|
||||
#include "wxgui/PadViewFrame.h"
|
||||
#include "wxgui/MemorySearcherTool.h"
|
||||
|
||||
@@ -21,7 +12,6 @@
|
||||
|
||||
#include "wxgui/LoggingWindow.h"
|
||||
#include "wxgui/components/wxGameList.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/MainWindow.h
|
||||
|
||||
#include <future>
|
||||
#include "Cafe/HW/Espresso/Debugger/GDBStub.h"
|
||||
@@ -63,7 +53,7 @@ private:
|
||||
INITIATED_BY m_initiatedBy;
|
||||
};
|
||||
|
||||
class MainWindow : public wxFrame, public CafeSystem::CafeSystemCallbacks, public CafeSystem::SystemImplementation
|
||||
class MainWindow : public wxFrame, public CafeSystem::SystemImplementation
|
||||
{
|
||||
friend class CemuApp;
|
||||
|
||||
@@ -74,10 +64,6 @@ public:
|
||||
void CreateGameListAndStatusBar();
|
||||
void DestroyGameListAndStatusBar();
|
||||
|
||||
|
||||
virtual void updateWindowTitles(bool isIdle, bool isLoading, double fps) override;
|
||||
virtual void notifyGameLoaded() override;
|
||||
|
||||
void UpdateSettingsAfterGameLaunch();
|
||||
void RestoreSettingsAfterGameExited();
|
||||
|
||||
|
||||
@@ -1,12 +1,6 @@
|
||||
<<<<<<< HEAD:src/gui/MemorySearcherTool.cpp
|
||||
#include "wxgui.h"
|
||||
|
||||
#include "MemorySearcherTool.h"
|
||||
=======
|
||||
#include "wxgui/wxgui.h"
|
||||
|
||||
#include "wxgui/MemorySearcherTool.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/MemorySearcherTool.cpp
|
||||
|
||||
#include <vector>
|
||||
#include <sstream>
|
||||
@@ -14,11 +8,7 @@
|
||||
#include <wx/listctrl.h>
|
||||
|
||||
#include "config/ActiveSettings.h"
|
||||
<<<<<<< HEAD:src/gui/MemorySearcherTool.cpp
|
||||
#include "helpers/wxHelpers.h"
|
||||
=======
|
||||
#include "wxgui/helpers/wxHelpers.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/MemorySearcherTool.cpp
|
||||
#include "Common/FileStream.h"
|
||||
#include "util/IniParser/IniParser.h"
|
||||
#include "util/helpers/StringHelpers.h"
|
||||
|
||||
@@ -6,11 +6,7 @@
|
||||
|
||||
#include "Cafe/HW/MMU/MMU.h"
|
||||
#include "util/helpers/helpers.h"
|
||||
<<<<<<< HEAD:src/gui/MemorySearcherTool.h
|
||||
#include "helpers/wxCustomEvents.h"
|
||||
=======
|
||||
#include "wxgui/helpers/wxCustomEvents.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/MemorySearcherTool.h
|
||||
|
||||
enum SearchDataType
|
||||
{
|
||||
|
||||
@@ -1,67 +1,45 @@
|
||||
<<<<<<< HEAD:src/gui/PadViewFrame.cpp
|
||||
#include "wxgui.h"
|
||||
#include "PadViewFrame.h"
|
||||
=======
|
||||
#include "interface/WindowSystem.h"
|
||||
#include "wxgui/wxgui.h"
|
||||
#include "wxgui/PadViewFrame.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/PadViewFrame.cpp
|
||||
|
||||
#include <wx/display.h>
|
||||
|
||||
#include "config/ActiveSettings.h"
|
||||
#include "Cafe/OS/libs/swkbd/swkbd.h"
|
||||
<<<<<<< HEAD:src/gui/PadViewFrame.cpp
|
||||
#include "canvas/OpenGLCanvas.h"
|
||||
#include "canvas/VulkanCanvas.h"
|
||||
#include "config/CemuConfig.h"
|
||||
#include "MainWindow.h"
|
||||
#include "helpers/wxHelpers.h"
|
||||
=======
|
||||
#include "wxgui/canvas/OpenGLCanvas.h"
|
||||
#include "wxgui/canvas/VulkanCanvas.h"
|
||||
#include "config/CemuConfig.h"
|
||||
#include "wxgui/MainWindow.h"
|
||||
#include "wxgui/helpers/wxHelpers.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/PadViewFrame.cpp
|
||||
#include "input/InputManager.h"
|
||||
#include "Cemu/GuiSystem/GuiSystem.h"
|
||||
|
||||
#if BOOST_OS_LINUX || BOOST_OS_MACOS
|
||||
#include "resource/embedded/resources.h"
|
||||
#endif
|
||||
#include "wxHelper.h"
|
||||
|
||||
<<<<<<< HEAD:src/gui/PadViewFrame.cpp
|
||||
=======
|
||||
extern WindowSystem::WindowInfo g_window_info;
|
||||
|
||||
>>>>>>> public/main:src/gui/wxgui/PadViewFrame.cpp
|
||||
#define PAD_MIN_WIDTH 320
|
||||
#define PAD_MIN_HEIGHT 180
|
||||
|
||||
PadViewFrame::PadViewFrame(wxFrame* parent)
|
||||
: wxFrame(nullptr, wxID_ANY, _("GamePad View"), wxDefaultPosition, wxDefaultSize, wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxSYSTEM_MENU | wxCAPTION | wxCLIP_CHILDREN | wxRESIZE_BORDER | wxCLOSE_BOX | wxWANTS_CHARS)
|
||||
{
|
||||
<<<<<<< HEAD:src/gui/PadViewFrame.cpp
|
||||
auto& windowInfo = GuiSystem::getWindowInfo();
|
||||
windowInfo.window_pad = get_window_handle_info_for_wxWindow(this);
|
||||
=======
|
||||
g_window_info.window_pad = initHandleContextFromWxWidgetsWindow(this);
|
||||
|
||||
>>>>>>> public/main:src/gui/wxgui/PadViewFrame.cpp
|
||||
SetIcon(wxICON(M_WND_ICON128));
|
||||
wxWindow::EnableTouchEvents(wxTOUCH_PAN_GESTURES);
|
||||
|
||||
SetMinClientSize({ PAD_MIN_WIDTH, PAD_MIN_HEIGHT });
|
||||
|
||||
SetPosition({ windowInfo.restored_pad_x, windowInfo.restored_pad_y });
|
||||
if (windowInfo.restored_pad_width >= PAD_MIN_WIDTH && windowInfo.restored_pad_height >= PAD_MIN_HEIGHT)
|
||||
SetClientSize({ windowInfo.restored_pad_width, windowInfo.restored_pad_height });
|
||||
SetPosition({ g_window_info.restored_pad_x, g_window_info.restored_pad_y });
|
||||
if (g_window_info.restored_pad_width >= PAD_MIN_WIDTH && g_window_info.restored_pad_height >= PAD_MIN_HEIGHT)
|
||||
SetClientSize({ g_window_info.restored_pad_width, g_window_info.restored_pad_height });
|
||||
else
|
||||
SetClientSize(wxSize(854, 480));
|
||||
|
||||
if (windowInfo.pad_maximized)
|
||||
if (g_window_info.pad_maximized)
|
||||
Maximize();
|
||||
|
||||
Bind(wxEVT_SIZE, &PadViewFrame::OnSizeEvent, this);
|
||||
@@ -71,22 +49,21 @@ PadViewFrame::PadViewFrame(wxFrame* parent)
|
||||
|
||||
Bind(wxEVT_SET_WINDOW_TITLE, &PadViewFrame::OnSetWindowTitle, this);
|
||||
|
||||
windowInfo.pad_open = true;
|
||||
g_window_info.pad_open = true;
|
||||
}
|
||||
|
||||
PadViewFrame::~PadViewFrame()
|
||||
{
|
||||
GuiSystem::getWindowInfo().pad_open = false;
|
||||
g_window_info.pad_open = false;
|
||||
}
|
||||
|
||||
bool PadViewFrame::Initialize()
|
||||
{
|
||||
auto& windowInfo = GuiSystem::getWindowInfo();
|
||||
const wxSize client_size = GetClientSize();
|
||||
windowInfo.pad_width = client_size.GetWidth();
|
||||
windowInfo.pad_height = client_size.GetHeight();
|
||||
windowInfo.phys_pad_width = ToPhys(client_size.GetWidth());
|
||||
windowInfo.phys_pad_height = ToPhys(client_size.GetHeight());
|
||||
g_window_info.pad_width = client_size.GetWidth();
|
||||
g_window_info.pad_height = client_size.GetHeight();
|
||||
g_window_info.phys_pad_width = ToPhys(client_size.GetWidth());
|
||||
g_window_info.phys_pad_height = ToPhys(client_size.GetHeight());
|
||||
|
||||
return true;
|
||||
}
|
||||
@@ -129,20 +106,19 @@ void PadViewFrame::DestroyCanvas()
|
||||
|
||||
void PadViewFrame::OnSizeEvent(wxSizeEvent& event)
|
||||
{
|
||||
auto& windowInfo = GuiSystem::getWindowInfo();
|
||||
if (!IsMaximized() && !IsFullScreen())
|
||||
{
|
||||
windowInfo.restored_pad_width = GetSize().x;
|
||||
windowInfo.restored_pad_height = GetSize().y;
|
||||
g_window_info.restored_pad_width = GetSize().x;
|
||||
g_window_info.restored_pad_height = GetSize().y;
|
||||
}
|
||||
windowInfo.pad_maximized = IsMaximized() && !IsFullScreen();
|
||||
g_window_info.pad_maximized = IsMaximized() && !IsFullScreen();
|
||||
|
||||
const wxSize client_size = GetClientSize();
|
||||
windowInfo.pad_width = client_size.GetWidth();
|
||||
windowInfo.pad_height = client_size.GetHeight();
|
||||
windowInfo.phys_pad_width = ToPhys(client_size.GetWidth());
|
||||
windowInfo.phys_pad_height = ToPhys(client_size.GetHeight());
|
||||
windowInfo.pad_dpi_scale = GetDPIScaleFactor();
|
||||
g_window_info.pad_width = client_size.GetWidth();
|
||||
g_window_info.pad_height = client_size.GetHeight();
|
||||
g_window_info.phys_pad_width = ToPhys(client_size.GetWidth());
|
||||
g_window_info.phys_pad_height = ToPhys(client_size.GetHeight());
|
||||
g_window_info.pad_dpi_scale = GetDPIScaleFactor();
|
||||
|
||||
event.Skip();
|
||||
}
|
||||
@@ -150,22 +126,20 @@ void PadViewFrame::OnSizeEvent(wxSizeEvent& event)
|
||||
void PadViewFrame::OnDPIChangedEvent(wxDPIChangedEvent& event)
|
||||
{
|
||||
event.Skip();
|
||||
auto& windowInfo = GuiSystem::getWindowInfo();
|
||||
const wxSize client_size = GetClientSize();
|
||||
windowInfo.pad_width = client_size.GetWidth();
|
||||
windowInfo.pad_height = client_size.GetHeight();
|
||||
windowInfo.phys_pad_width = ToPhys(client_size.GetWidth());
|
||||
windowInfo.phys_pad_height = ToPhys(client_size.GetHeight());
|
||||
windowInfo.pad_dpi_scale = GetDPIScaleFactor();
|
||||
g_window_info.pad_width = client_size.GetWidth();
|
||||
g_window_info.pad_height = client_size.GetHeight();
|
||||
g_window_info.phys_pad_width = ToPhys(client_size.GetWidth());
|
||||
g_window_info.phys_pad_height = ToPhys(client_size.GetHeight());
|
||||
g_window_info.pad_dpi_scale = GetDPIScaleFactor();
|
||||
}
|
||||
|
||||
void PadViewFrame::OnMoveEvent(wxMoveEvent& event)
|
||||
{
|
||||
if (!IsMaximized() && !IsFullScreen())
|
||||
{
|
||||
auto& windowInfo = GuiSystem::getWindowInfo();
|
||||
windowInfo.restored_pad_x = GetPosition().x;
|
||||
windowInfo.restored_pad_y = GetPosition().y;
|
||||
g_window_info.restored_pad_x = GetPosition().x;
|
||||
g_window_info.restored_pad_y = GetPosition().y;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,17 +1,3 @@
|
||||
<<<<<<< HEAD:src/gui/TitleManager.cpp
|
||||
#include "TitleManager.h"
|
||||
|
||||
#include "helpers/wxCustomEvents.h"
|
||||
#include "helpers/wxCustomData.h"
|
||||
#include "Cafe/TitleList/GameInfo.h"
|
||||
#include "util/helpers/helpers.h"
|
||||
#include "helpers/wxHelpers.h"
|
||||
#include "wxHelper.h"
|
||||
#include "components/wxTitleManagerList.h"
|
||||
#include "components/wxDownloadManagerList.h"
|
||||
#include "GameUpdateWindow.h"
|
||||
#include "dialogs/SaveImport/SaveTransfer.h"
|
||||
=======
|
||||
#include "wxgui/TitleManager.h"
|
||||
|
||||
#include "wxgui/helpers/wxCustomEvents.h"
|
||||
@@ -24,7 +10,6 @@
|
||||
#include "wxgui/components/wxDownloadManagerList.h"
|
||||
#include "wxgui/GameUpdateWindow.h"
|
||||
#include "wxgui/dialogs/SaveImport/SaveTransfer.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/TitleManager.cpp
|
||||
|
||||
#include <wx/listbase.h>
|
||||
#include <wx/sizer.h>
|
||||
@@ -48,19 +33,10 @@
|
||||
|
||||
#include "Cafe/IOSU/legacy/iosu_crypto.h"
|
||||
#include "config/ActiveSettings.h"
|
||||
<<<<<<< HEAD:src/gui/TitleManager.cpp
|
||||
#include "dialogs/SaveImport/SaveImportWindow.h"
|
||||
#include "Cafe/Account/Account.h"
|
||||
#include "Cemu/Tools/DownloadManager/DownloadManager.h"
|
||||
#include "CemuApp.h"
|
||||
|
||||
#include "gui/CemuApp.h"
|
||||
=======
|
||||
#include "wxgui/dialogs/SaveImport/SaveImportWindow.h"
|
||||
#include "Cafe/Account/Account.h"
|
||||
#include "Cemu/Tools/DownloadManager/DownloadManager.h"
|
||||
#include "wxgui/CemuApp.h"
|
||||
>>>>>>> public/main:src/gui/wxgui/TitleManager.cpp
|
||||
#include "Cafe/TitleList/TitleList.h"
|
||||
#include "Cafe/TitleList/SaveList.h"
|
||||
#include "resource/embedded/resources.h"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user