[Scummvm-git-logs] scummvm branch-2-2 -> 06c831c0253f1122d9b4962e1b9d52d15d28654e

dreammaster paulfgilbert at gmail.com
Thu Sep 3 04:24:04 UTC 2020


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
06c831c025 NUVIE: Fix fullscreen button in Video settings


Commit: 06c831c0253f1122d9b4962e1b9d52d15d28654e
    https://github.com/scummvm/scummvm/commit/06c831c0253f1122d9b4962e1b9d52d15d28654e
Author: Paul Gilbert (dreammaster at scummvm.org)
Date: 2020-09-02T21:23:56-07:00

Commit Message:
NUVIE: Fix fullscreen button in Video settings

Changed paths:
    engines/ultima/nuvie/menus/video_dialog.cpp
    engines/ultima/nuvie/screen/screen.cpp
    engines/ultima/nuvie/screen/screen.h


diff --git a/engines/ultima/nuvie/menus/video_dialog.cpp b/engines/ultima/nuvie/menus/video_dialog.cpp
index 1720cc8942..0e75db0da7 100644
--- a/engines/ultima/nuvie/menus/video_dialog.cpp
+++ b/engines/ultima/nuvie/menus/video_dialog.cpp
@@ -435,7 +435,9 @@ GUI_status VideoDialog::callback(uint16 msg, GUI_CallBack *caller, void *data) {
 		config->set("config/video/scale_factor", scale);
 #endif
 		// fullscreen
-		config->set("config/video/fullscreen", fullscreen ? "yes" : "no");
+		config->set("config/fullscreen", fullscreen ? "yes" : "no");
+		game->get_screen()->set_fullscreen(fullscreen);
+
 		// non-square pixels
 		config->set("config/video/non_square_pixels", non_square_pixels ? "yes" : "no");
 		// roof mode
diff --git a/engines/ultima/nuvie/screen/screen.cpp b/engines/ultima/nuvie/screen/screen.cpp
index 651c3e5a4d..c2ea16c29b 100644
--- a/engines/ultima/nuvie/screen/screen.cpp
+++ b/engines/ultima/nuvie/screen/screen.cpp
@@ -51,7 +51,6 @@ Screen::Screen(Configuration *cfg) {
 	shading_data = NULL;
 	scaler_index = 0;
 	scale_factor = 2;
-	fullscreen = false;
 	doubleBuffer = false;
 	is_no_darkness = false;
 	non_square_pixels = false;
@@ -110,7 +109,6 @@ bool Screen::init() {
 
 	config->value("config/video/scale_factor", scale_factor, 1);
 
-	config->value("config/video/fullscreen", fullscreen, false);
 	config->value("config/video/non_square_pixels", non_square_pixels, false);
 
 	set_screen_mode();
@@ -1245,14 +1243,21 @@ void Screen::set_screen_mode() {
 	_renderSurface = CreateRenderSurface(_rawSurface);
 }
 
+bool Screen::is_fullscreen() const {
+	return g_system->getFeatureState(OSystem::kFeatureFullscreenMode);
+}
+
 bool Screen::toggle_fullscreen() {
-	// No implementation
+	set_fullscreen(!is_fullscreen());
 	return true;
 }
 
 bool Screen::set_fullscreen(bool value) {
-	// No implementation
-	return false;
+	g_system->beginGFXTransaction();
+	g_system->setFeatureState(OSystem::kFeatureFullscreenMode, value);
+	g_system->endGFXTransaction();
+
+	return true;
 }
 
 //Note! assumes area divides evenly by down_scale factor
diff --git a/engines/ultima/nuvie/screen/screen.h b/engines/ultima/nuvie/screen/screen.h
index 9568057244..07ba7ed6cf 100644
--- a/engines/ultima/nuvie/screen/screen.h
+++ b/engines/ultima/nuvie/screen/screen.h
@@ -48,7 +48,6 @@ private:
 	int scaler_index;  // Index of Current Scaler
 	int scale_factor;  // Scale factor
 
-	bool fullscreen;
 	bool doubleBuffer;
 	bool is_no_darkness;
 	bool non_square_pixels;
@@ -68,9 +67,7 @@ public:
 
 	bool init();
 
-	bool is_fullscreen() {
-		return fullscreen;
-	}
+	bool is_fullscreen() const;
 	bool is_non_square_pixels() {
 		return non_square_pixels;
 	}
@@ -82,6 +79,7 @@ public:
 	}
 	bool toggle_darkness_cheat();
 	bool toggle_fullscreen();
+	bool set_fullscreen(bool value);
 	bool set_palette(uint8 *palette);
 	bool set_palette_entry(uint8 idx, uint8 r, uint8 g, uint8 b);
 	bool rotate_palette(uint8 pos, uint8 length);
@@ -191,7 +189,6 @@ private:
 	int get_screen_bpp();
 
 	bool sdl1_toggle_fullscreen();
-	bool set_fullscreen(bool value);
 };
 
 } // End of namespace Nuvie




More information about the Scummvm-git-logs mailing list