(svn r2334) - Fix (regression): moved togglefullscreen into the video-driver, now windows works, dedicated works and sdl works. Also reverted the change to the makefile.
--- a/Makefile Mon May 16 15:05:49 2005 +0000
+++ b/Makefile Mon May 16 16:19:32 2005 +0000
@@ -687,10 +687,13 @@
C_SOURCES += waypoint.c
C_SOURCES += widget.c
C_SOURCES += window.c
-C_SOURCES += sdl.c
CXX_SOURCES =
+ifdef WITH_SDL
+C_SOURCES += sdl.c
+endif
+
ifdef WIN32
C_SOURCES += win32.c w32dm.c
else
--- a/dedicated.c Mon May 16 15:05:49 2005 +0000
+++ b/dedicated.c Mon May 16 16:19:32 2005 +0000
@@ -167,6 +167,7 @@
static void DedicatedVideoMakeDirty(int left, int top, int width, int height) {}
static bool DedicatedVideoChangeRes(int w, int h) { return false; }
+static void DedicatedVideoFullScreen(bool fs) {}
#if defined(UNIX) || defined(__OS2__)
static bool InputWaiting(void)
@@ -322,6 +323,7 @@
DedicatedVideoMakeDirty,
DedicatedVideoMainLoop,
DedicatedVideoChangeRes,
+ DedicatedVideoFullScreen,
};
#else
@@ -339,6 +341,7 @@
static void DedicatedVideoStop(void) { free(_dedicated_video_mem); }
static void DedicatedVideoMakeDirty(int left, int top, int width, int height) {}
static bool DedicatedVideoChangeRes(int w, int h) { return false; }
+static void DedicatedVideoFullScreen(bool fs) {}
static int DedicatedVideoMainLoop(void) { return ML_QUIT; }
const HalVideoDriver _dedicated_video_driver = {
@@ -347,6 +350,7 @@
DedicatedVideoMakeDirty,
DedicatedVideoMainLoop,
DedicatedVideoChangeRes,
+ DedicatedVideoFullScreen,
};
#endif /* ENABLE_NETWORK */
--- a/gfx.c Mon May 16 15:05:49 2005 +0000
+++ b/gfx.c Mon May 16 16:19:32 2005 +0000
@@ -1979,6 +1979,8 @@
return true;
}
+void ToggleFullScreen(bool fs) {_video_driver->toggle_fullscreen(fs);}
+
static int CDECL compare_res(const void *pa, const void *pb)
{
int x = ((const uint16*)pa)[0] - ((const uint16*)pb)[0];
--- a/gfx.h Mon May 16 15:05:49 2005 +0000
+++ b/gfx.h Mon May 16 16:19:32 2005 +0000
@@ -67,7 +67,7 @@
void UndrawMouseCursor(void);
bool ChangeResInGame(int w, int h);
void SortResolutions(int count);
-void ToggleFullScreen(bool full_screen);
+void ToggleFullScreen(bool fs);
/* gfx.c */
#define ASCII_LETTERSTART 32
--- a/hal.h Mon May 16 15:05:49 2005 +0000
+++ b/hal.h Mon May 16 16:19:32 2005 +0000
@@ -12,6 +12,7 @@
void (*make_dirty)(int left, int top, int width, int height);
int (*main_loop)(void);
bool (*change_resolution)(int w, int h);
+ void (*toggle_fullscreen)(bool fullscreen);
} HalVideoDriver;
enum {
--- a/sdl.c Mon May 16 15:05:49 2005 +0000
+++ b/sdl.c Mon May 16 16:19:32 2005 +0000
@@ -636,7 +636,7 @@
return true;
}
-void ToggleFullScreen(bool full_screen)
+static void SdlVideoFullScreen(bool full_screen)
{
_fullscreen = full_screen;
GetVideoModes(); // get the list of available video modes
@@ -650,6 +650,7 @@
SdlVideoMakeDirty,
SdlVideoMainLoop,
SdlVideoChangeRes,
+ SdlVideoFullScreen,
};
static void CDECL fill_sound_buffer(void *userdata, Uint8 *stream, int len)
@@ -706,9 +707,4 @@
}
#endif
-#else
-
-/* Stub for dedicated server */
-void ToggleFullScreen(bool full_screen) {}
-
#endif /* WITH_SDL */
--- a/ttd.c Mon May 16 15:05:49 2005 +0000
+++ b/ttd.c Mon May 16 16:19:32 2005 +0000
@@ -148,7 +148,7 @@
}
static bool NullVideoChangeRes(int w, int h) { return false; }
-
+static void NullVideoFullScreen(bool fs) {}
const HalVideoDriver _null_video_driver = {
NullVideoStart,
@@ -156,6 +156,7 @@
NullVideoMakeDirty,
NullVideoMainLoop,
NullVideoChangeRes,
+ NullVideoFullScreen,
};
// NULL sound driver
--- a/win32.c Mon May 16 15:05:49 2005 +0000
+++ b/win32.c Mon May 16 16:19:32 2005 +0000
@@ -783,7 +783,7 @@
return true;
}
-void ToggleFullScreen(bool full_screen) {MakeWindow(full_screen);}
+static void Win32GdiFullScreen(bool full_screen) {MakeWindow(full_screen);}
const HalVideoDriver _win32_video_driver = {
Win32GdiStart,
@@ -791,6 +791,7 @@
Win32GdiMakeDirty,
Win32GdiMainLoop,
Win32GdiChangeRes,
+ Win32GdiFullScreen,
};