Added Fullscreen mode (#173)

* Added Fullscreen mode

* fix for config.toml

* fix for config.toml

* Apply review comment
This commit is contained in:
Xphalnos 2024-06-09 12:25:00 +02:00 committed by GitHub
parent 1a66fa098f
commit 1563dffd46
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 12 additions and 3 deletions

View File

@ -10,6 +10,7 @@
namespace Config { namespace Config {
static bool isNeo = false; static bool isNeo = false;
static bool isFullscreen = true;
static u32 screenWidth = 1280; static u32 screenWidth = 1280;
static u32 screenHeight = 720; static u32 screenHeight = 720;
static s32 gpuId = -1; // Vulkan physical device index. Set to negative for auto select static s32 gpuId = -1; // Vulkan physical device index. Set to negative for auto select
@ -27,10 +28,15 @@ static bool vkValidationSync = false;
bool isLleLibc() { bool isLleLibc() {
return isLibc; return isLibc;
} }
bool isNeoMode() { bool isNeoMode() {
return isNeo; return isNeo;
} }
bool isFullscreenMode() {
return isFullscreen;
}
u32 getScreenWidth() { u32 getScreenWidth() {
return screenWidth; return screenWidth;
} }
@ -102,6 +108,7 @@ void load(const std::filesystem::path& path) {
auto general = generalResult.unwrap(); auto general = generalResult.unwrap();
isNeo = toml::find_or<toml::boolean>(general, "isPS4Pro", false); isNeo = toml::find_or<toml::boolean>(general, "isPS4Pro", false);
isFullscreen = toml::find_or<toml::boolean>(general, "Fullscreen", true);
logFilter = toml::find_or<toml::string>(general, "logFilter", ""); logFilter = toml::find_or<toml::string>(general, "logFilter", "");
logType = toml::find_or<toml::string>(general, "logType", "sync"); logType = toml::find_or<toml::string>(general, "logType", "sync");
isShowSplash = toml::find_or<toml::boolean>(general, "showSplash", true); isShowSplash = toml::find_or<toml::boolean>(general, "showSplash", true);
@ -166,6 +173,7 @@ void save(const std::filesystem::path& path) {
} }
data["General"]["isPS4Pro"] = isNeo; data["General"]["isPS4Pro"] = isNeo;
data["General"]["Fullscreen"] = isFullscreen;
data["General"]["logFilter"] = logFilter; data["General"]["logFilter"] = logFilter;
data["General"]["logType"] = logType; data["General"]["logType"] = logType;
data["General"]["showSplash"] = isShowSplash; data["General"]["showSplash"] = isShowSplash;

View File

@ -11,6 +11,7 @@ void load(const std::filesystem::path& path);
void save(const std::filesystem::path& path); void save(const std::filesystem::path& path);
bool isNeoMode(); bool isNeoMode();
bool isFullscreenMode();
std::string getLogFilter(); std::string getLogFilter();
std::string getLogType(); std::string getLogType();

View File

@ -4,6 +4,7 @@
#include <SDL.h> #include <SDL.h>
#include "common/assert.h" #include "common/assert.h"
#include "common/config.h"
#include "common/version.h" #include "common/version.h"
#include "core/libraries/pad/pad.h" #include "core/libraries/pad/pad.h"
#include "input/controller.h" #include "input/controller.h"
@ -17,7 +18,7 @@ WindowSDL::WindowSDL(s32 width_, s32 height_, Input::GameController* controller_
UNREACHABLE_MSG("Failed to initialize SDL video subsystem: {}", SDL_GetError()); UNREACHABLE_MSG("Failed to initialize SDL video subsystem: {}", SDL_GetError());
} }
const std::string title = "shadps4 v" + std::string(Common::VERSION); const std::string title = "shadPS4 v" + std::string(Common::VERSION);
SDL_PropertiesID props = SDL_CreateProperties(); SDL_PropertiesID props = SDL_CreateProperties();
SDL_SetStringProperty(props, SDL_PROP_WINDOW_CREATE_TITLE_STRING, title.c_str()); SDL_SetStringProperty(props, SDL_PROP_WINDOW_CREATE_TITLE_STRING, title.c_str());
SDL_SetNumberProperty(props, SDL_PROP_WINDOW_CREATE_X_NUMBER, SDL_WINDOWPOS_CENTERED); SDL_SetNumberProperty(props, SDL_PROP_WINDOW_CREATE_X_NUMBER, SDL_WINDOWPOS_CENTERED);
@ -31,8 +32,7 @@ WindowSDL::WindowSDL(s32 width_, s32 height_, Input::GameController* controller_
UNREACHABLE_MSG("Failed to create window handle: {}", SDL_GetError()); UNREACHABLE_MSG("Failed to create window handle: {}", SDL_GetError());
} }
// We don't support resizable at the moment. SDL_SetWindowFullscreen(window, Config::isFullscreenMode());
SDL_SetWindowResizable(window, SDL_FALSE);
#if defined(SDL_PLATFORM_WIN32) #if defined(SDL_PLATFORM_WIN32)
window_info.type = WindowSystemType::Windows; window_info.type = WindowSystemType::Windows;