mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-04-27 21:08:00 +03:00
Qt: move fullscreen cli arg from global to gs_frame
This commit is contained in:
parent
3a68b7ac0d
commit
b1b92e95ab
7 changed files with 28 additions and 18 deletions
|
@ -81,7 +81,6 @@ static atomic_t<bool> s_headless = false;
|
||||||
static atomic_t<bool> s_no_gui = false;
|
static atomic_t<bool> s_no_gui = false;
|
||||||
static atomic_t<char*> s_argv0;
|
static atomic_t<char*> s_argv0;
|
||||||
|
|
||||||
atomic_t<bool> g_start_games_fullscreen = false;
|
|
||||||
std::string g_pad_profile_override;
|
std::string g_pad_profile_override;
|
||||||
|
|
||||||
extern thread_local std::string(*g_tls_log_prefix)();
|
extern thread_local std::string(*g_tls_log_prefix)();
|
||||||
|
@ -935,14 +934,8 @@ int main(int argc, char** argv)
|
||||||
}
|
}
|
||||||
|
|
||||||
s_no_gui = parser.isSet(arg_no_gui);
|
s_no_gui = parser.isSet(arg_no_gui);
|
||||||
g_start_games_fullscreen = parser.isSet(arg_fullscreen);
|
|
||||||
|
|
||||||
if (g_start_games_fullscreen && !s_no_gui)
|
if (gui_application* gui_app = qobject_cast<gui_application*>(app.data()))
|
||||||
{
|
|
||||||
report_fatal_error(fmt::format("The option '%s' can only be used in combination with '%s'.", arg_fullscreen, arg_no_gui));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (auto gui_app = qobject_cast<gui_application*>(app.data()))
|
|
||||||
{
|
{
|
||||||
gui_app->setAttribute(Qt::AA_UseHighDpiPixmaps);
|
gui_app->setAttribute(Qt::AA_UseHighDpiPixmaps);
|
||||||
gui_app->setAttribute(Qt::AA_DisableWindowContextHelpButton);
|
gui_app->setAttribute(Qt::AA_DisableWindowContextHelpButton);
|
||||||
|
@ -953,13 +946,23 @@ int main(int argc, char** argv)
|
||||||
gui_app->SetWithCliBoot(parser.isSet(arg_installfw) || parser.isSet(arg_installpkg) || !parser.positionalArguments().isEmpty());
|
gui_app->SetWithCliBoot(parser.isSet(arg_installfw) || parser.isSet(arg_installpkg) || !parser.positionalArguments().isEmpty());
|
||||||
gui_app->SetActiveUser(active_user);
|
gui_app->SetActiveUser(active_user);
|
||||||
|
|
||||||
|
if (parser.isSet(arg_fullscreen))
|
||||||
|
{
|
||||||
|
if (!s_no_gui)
|
||||||
|
{
|
||||||
|
report_fatal_error(fmt::format("The option '%s' can only be used in combination with '%s'.", arg_fullscreen, arg_no_gui));
|
||||||
|
}
|
||||||
|
|
||||||
|
gui_app->SetStartGamesFullscreen(true);
|
||||||
|
}
|
||||||
|
|
||||||
if (!gui_app->Init())
|
if (!gui_app->Init())
|
||||||
{
|
{
|
||||||
Emu.Quit(true);
|
Emu.Quit(true);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (auto headless_app = qobject_cast<headless_application*>(app.data()))
|
else if (headless_application* headless_app = qobject_cast<headless_application*>(app.data()))
|
||||||
{
|
{
|
||||||
s_headless = true;
|
s_headless = true;
|
||||||
|
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
#include <QOpenGLContext>
|
#include <QOpenGLContext>
|
||||||
#include <QOffscreenSurface>
|
#include <QOffscreenSurface>
|
||||||
|
|
||||||
gl_gs_frame::gl_gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, std::shared_ptr<gui_settings> gui_settings)
|
gl_gs_frame::gl_gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, std::shared_ptr<gui_settings> gui_settings, bool force_fullscreen)
|
||||||
: gs_frame(screen, geometry, appIcon, std::move(gui_settings))
|
: gs_frame(screen, geometry, appIcon, std::move(gui_settings), force_fullscreen)
|
||||||
{
|
{
|
||||||
setSurfaceType(QSurface::OpenGLSurface);
|
setSurfaceType(QSurface::OpenGLSurface);
|
||||||
|
|
||||||
|
|
|
@ -18,7 +18,7 @@ private:
|
||||||
GLContext *m_primary_context = nullptr;
|
GLContext *m_primary_context = nullptr;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit gl_gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, std::shared_ptr<gui_settings> gui_settings);
|
explicit gl_gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, std::shared_ptr<gui_settings> gui_settings, bool force_fullscreen);
|
||||||
|
|
||||||
draw_context_t make_context() override;
|
draw_context_t make_context() override;
|
||||||
void set_current(draw_context_t ctx) override;
|
void set_current(draw_context_t ctx) override;
|
||||||
|
|
|
@ -50,7 +50,6 @@ extern atomic_t<bool> g_user_asked_for_recording;
|
||||||
extern atomic_t<bool> g_user_asked_for_screenshot;
|
extern atomic_t<bool> g_user_asked_for_screenshot;
|
||||||
extern atomic_t<bool> g_user_asked_for_frame_capture;
|
extern atomic_t<bool> g_user_asked_for_frame_capture;
|
||||||
extern atomic_t<bool> g_disable_frame_limit;
|
extern atomic_t<bool> g_disable_frame_limit;
|
||||||
extern atomic_t<bool> g_start_games_fullscreen;
|
|
||||||
extern atomic_t<recording_mode> g_recording_mode;
|
extern atomic_t<recording_mode> g_recording_mode;
|
||||||
|
|
||||||
atomic_t<bool> g_game_window_focused = false;
|
atomic_t<bool> g_game_window_focused = false;
|
||||||
|
@ -62,10 +61,11 @@ bool is_input_allowed()
|
||||||
|
|
||||||
constexpr auto qstr = QString::fromStdString;
|
constexpr auto qstr = QString::fromStdString;
|
||||||
|
|
||||||
gs_frame::gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, std::shared_ptr<gui_settings> gui_settings)
|
gs_frame::gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, std::shared_ptr<gui_settings> gui_settings, bool force_fullscreen)
|
||||||
: QWindow()
|
: QWindow()
|
||||||
, m_initial_geometry(geometry)
|
, m_initial_geometry(geometry)
|
||||||
, m_gui_settings(std::move(gui_settings))
|
, m_gui_settings(std::move(gui_settings))
|
||||||
|
, m_start_games_fullscreen(force_fullscreen)
|
||||||
{
|
{
|
||||||
m_disable_mouse = m_gui_settings->GetValue(gui::gs_disableMouse).toBool();
|
m_disable_mouse = m_gui_settings->GetValue(gui::gs_disableMouse).toBool();
|
||||||
m_disable_kb_hotkeys = m_gui_settings->GetValue(gui::gs_disableKbHotkeys).toBool();
|
m_disable_kb_hotkeys = m_gui_settings->GetValue(gui::gs_disableKbHotkeys).toBool();
|
||||||
|
@ -611,7 +611,7 @@ void gs_frame::show()
|
||||||
Emu.CallFromMainThread([this]()
|
Emu.CallFromMainThread([this]()
|
||||||
{
|
{
|
||||||
QWindow::show();
|
QWindow::show();
|
||||||
if (g_cfg.misc.start_fullscreen || g_start_games_fullscreen)
|
if (g_cfg.misc.start_fullscreen || m_start_games_fullscreen)
|
||||||
{
|
{
|
||||||
setVisibility(FullScreen);
|
setVisibility(FullScreen);
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,11 +43,12 @@ private:
|
||||||
bool m_hide_mouse_after_idletime = false;
|
bool m_hide_mouse_after_idletime = false;
|
||||||
u32 m_hide_mouse_idletime = 2000; // ms
|
u32 m_hide_mouse_idletime = 2000; // ms
|
||||||
bool m_flip_showed_frame = false;
|
bool m_flip_showed_frame = false;
|
||||||
|
bool m_start_games_fullscreen = false;
|
||||||
|
|
||||||
std::shared_ptr<utils::video_encoder> m_video_encoder{};
|
std::shared_ptr<utils::video_encoder> m_video_encoder{};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
explicit gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, std::shared_ptr<gui_settings> gui_settings);
|
explicit gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, std::shared_ptr<gui_settings> gui_settings, bool force_fullscreen);
|
||||||
~gs_frame();
|
~gs_frame();
|
||||||
|
|
||||||
draw_context_t make_context() override;
|
draw_context_t make_context() override;
|
||||||
|
|
|
@ -299,13 +299,13 @@ std::unique_ptr<gs_frame> gui_application::get_gs_frame()
|
||||||
{
|
{
|
||||||
case video_renderer::opengl:
|
case video_renderer::opengl:
|
||||||
{
|
{
|
||||||
frame = new gl_gs_frame(screen, frame_geometry, app_icon, m_gui_settings);
|
frame = new gl_gs_frame(screen, frame_geometry, app_icon, m_gui_settings, m_start_games_fullscreen);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case video_renderer::null:
|
case video_renderer::null:
|
||||||
case video_renderer::vulkan:
|
case video_renderer::vulkan:
|
||||||
{
|
{
|
||||||
frame = new gs_frame(screen, frame_geometry, app_icon, m_gui_settings);
|
frame = new gs_frame(screen, frame_geometry, app_icon, m_gui_settings, m_start_games_fullscreen);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,6 +44,11 @@ public:
|
||||||
m_with_cli_boot = with_cli_boot;
|
m_with_cli_boot = with_cli_boot;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void SetStartGamesFullscreen(bool start_games_fullscreen = false)
|
||||||
|
{
|
||||||
|
m_start_games_fullscreen = start_games_fullscreen;
|
||||||
|
}
|
||||||
|
|
||||||
/** Call this method before calling app.exec */
|
/** Call this method before calling app.exec */
|
||||||
bool Init() override;
|
bool Init() override;
|
||||||
|
|
||||||
|
@ -82,6 +87,7 @@ private:
|
||||||
bool m_show_gui = true;
|
bool m_show_gui = true;
|
||||||
bool m_use_cli_style = false;
|
bool m_use_cli_style = false;
|
||||||
bool m_with_cli_boot = false;
|
bool m_with_cli_boot = false;
|
||||||
|
bool m_start_games_fullscreen = false;
|
||||||
|
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void OnChangeStyleSheetRequest();
|
void OnChangeStyleSheetRequest();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue