fix after merge

This commit is contained in:
Stepanov Igor 2025-10-17 22:36:56 +03:00
parent 8cd75ad790
commit 62ab514f13
3 changed files with 12 additions and 15 deletions

View file

@ -9,11 +9,7 @@ class ImageData;
class Input; class Input;
struct DisplaySettings; struct DisplaySettings;
enum class WindowMode { enum class WindowMode { WINDOWED, FULLSCREEN, BORDERLESS };
WINDOWED,
FULLSCREEN,
BORDERLESS
};
class Window { class Window {
public: public:

View file

@ -18,6 +18,7 @@
#include "graphics/core/ImageData.hpp" #include "graphics/core/ImageData.hpp"
#include "graphics/core/Texture.hpp" #include "graphics/core/Texture.hpp"
#include "settings.hpp" #include "settings.hpp"
#include "window/Window.hpp"
#include "window/detail/SDLInput.hpp" #include "window/detail/SDLInput.hpp"
static debug::Logger logger("window"); static debug::Logger logger("window");
@ -318,18 +319,18 @@ void SDLWindow::setCursor(CursorShape shape) {
SDL_SetCursor(cursor); SDL_SetCursor(cursor);
} }
} }
void SDLWindow::toggleFullscreen() { void SDLWindow::setMode(WindowMode mode) {
fullscreen = !fullscreen; // WindowMode::WINDOWED by default have the next options as disbled
if (!SDL_SetWindowFullscreen(window, fullscreen)) { if (!SDL_SetWindowFullscreen(window, mode == WindowMode::FULLSCREEN)) {
logger.error() << "Cant toggle fullscreen window: " << SDL_GetError(); logger.error() << "Cant toggle fullscreen window: " << SDL_GetError();
} }
if (!SDL_SyncWindow(window)) { if (!SDL_SetWindowBordered(window, mode == WindowMode::BORDERLESS)) {
logger.error() << "Cant sync window after toggle fullscreen: " logger.error() << "Cant toggle bordered window: " << SDL_GetError();
<< SDL_GetError();
} }
} }
bool SDLWindow::isFullscreen() const {
return fullscreen; WindowMode SDLWindow::getMode() const {
return mode;
} }
void SDLWindow::setIcon(const ImageData *image) { void SDLWindow::setIcon(const ImageData *image) {

View file

@ -24,8 +24,8 @@ public:
void setShouldClose(bool flag) override; void setShouldClose(bool flag) override;
void setCursor(CursorShape shape) override; void setCursor(CursorShape shape) override;
void toggleFullscreen() override; void setMode(WindowMode mode) override;
bool isFullscreen() const override; WindowMode getMode() const override;
void setIcon(const ImageData *image) override; void setIcon(const ImageData *image) override;