(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.

This commit is contained in:
Darkvater 2005-05-16 16:19:32 +00:00
parent effbba74f5
commit 7daaf1f100
8 changed files with 18 additions and 10 deletions

View File

@ -687,10 +687,13 @@ C_SOURCES += water_cmd.c
C_SOURCES += waypoint.c C_SOURCES += waypoint.c
C_SOURCES += widget.c C_SOURCES += widget.c
C_SOURCES += window.c C_SOURCES += window.c
C_SOURCES += sdl.c
CXX_SOURCES = CXX_SOURCES =
ifdef WITH_SDL
C_SOURCES += sdl.c
endif
ifdef WIN32 ifdef WIN32
C_SOURCES += win32.c w32dm.c C_SOURCES += win32.c w32dm.c
else else

View File

@ -167,6 +167,7 @@ static void DedicatedVideoStop(void)
static void DedicatedVideoMakeDirty(int left, int top, int width, int height) {} static void DedicatedVideoMakeDirty(int left, int top, int width, int height) {}
static bool DedicatedVideoChangeRes(int w, int h) { return false; } static bool DedicatedVideoChangeRes(int w, int h) { return false; }
static void DedicatedVideoFullScreen(bool fs) {}
#if defined(UNIX) || defined(__OS2__) #if defined(UNIX) || defined(__OS2__)
static bool InputWaiting(void) static bool InputWaiting(void)
@ -322,6 +323,7 @@ const HalVideoDriver _dedicated_video_driver = {
DedicatedVideoMakeDirty, DedicatedVideoMakeDirty,
DedicatedVideoMainLoop, DedicatedVideoMainLoop,
DedicatedVideoChangeRes, DedicatedVideoChangeRes,
DedicatedVideoFullScreen,
}; };
#else #else
@ -339,6 +341,7 @@ void DedicatedFork(void) {}
static void DedicatedVideoStop(void) { free(_dedicated_video_mem); } static void DedicatedVideoStop(void) { free(_dedicated_video_mem); }
static void DedicatedVideoMakeDirty(int left, int top, int width, int height) {} static void DedicatedVideoMakeDirty(int left, int top, int width, int height) {}
static bool DedicatedVideoChangeRes(int w, int h) { return false; } static bool DedicatedVideoChangeRes(int w, int h) { return false; }
static void DedicatedVideoFullScreen(bool fs) {}
static int DedicatedVideoMainLoop(void) { return ML_QUIT; } static int DedicatedVideoMainLoop(void) { return ML_QUIT; }
const HalVideoDriver _dedicated_video_driver = { const HalVideoDriver _dedicated_video_driver = {
@ -347,6 +350,7 @@ const HalVideoDriver _dedicated_video_driver = {
DedicatedVideoMakeDirty, DedicatedVideoMakeDirty,
DedicatedVideoMainLoop, DedicatedVideoMainLoop,
DedicatedVideoChangeRes, DedicatedVideoChangeRes,
DedicatedVideoFullScreen,
}; };
#endif /* ENABLE_NETWORK */ #endif /* ENABLE_NETWORK */

2
gfx.c
View File

@ -1979,6 +1979,8 @@ bool ChangeResInGame(int w, int h)
return true; return true;
} }
void ToggleFullScreen(bool fs) {_video_driver->toggle_fullscreen(fs);}
static int CDECL compare_res(const void *pa, const void *pb) static int CDECL compare_res(const void *pa, const void *pb)
{ {
int x = ((const uint16*)pa)[0] - ((const uint16*)pb)[0]; int x = ((const uint16*)pa)[0] - ((const uint16*)pb)[0];

2
gfx.h
View File

@ -67,7 +67,7 @@ void ScreenSizeChanged(void);
void UndrawMouseCursor(void); void UndrawMouseCursor(void);
bool ChangeResInGame(int w, int h); bool ChangeResInGame(int w, int h);
void SortResolutions(int count); void SortResolutions(int count);
void ToggleFullScreen(bool full_screen); void ToggleFullScreen(bool fs);
/* gfx.c */ /* gfx.c */
#define ASCII_LETTERSTART 32 #define ASCII_LETTERSTART 32

1
hal.h
View File

@ -12,6 +12,7 @@ typedef struct {
void (*make_dirty)(int left, int top, int width, int height); void (*make_dirty)(int left, int top, int width, int height);
int (*main_loop)(void); int (*main_loop)(void);
bool (*change_resolution)(int w, int h); bool (*change_resolution)(int w, int h);
void (*toggle_fullscreen)(bool fullscreen);
} HalVideoDriver; } HalVideoDriver;
enum { enum {

8
sdl.c
View File

@ -636,7 +636,7 @@ static bool SdlVideoChangeRes(int w, int h)
return true; return true;
} }
void ToggleFullScreen(bool full_screen) static void SdlVideoFullScreen(bool full_screen)
{ {
_fullscreen = full_screen; _fullscreen = full_screen;
GetVideoModes(); // get the list of available video modes GetVideoModes(); // get the list of available video modes
@ -650,6 +650,7 @@ const HalVideoDriver _sdl_video_driver = {
SdlVideoMakeDirty, SdlVideoMakeDirty,
SdlVideoMainLoop, SdlVideoMainLoop,
SdlVideoChangeRes, SdlVideoChangeRes,
SdlVideoFullScreen,
}; };
static void CDECL fill_sound_buffer(void *userdata, Uint8 *stream, int len) static void CDECL fill_sound_buffer(void *userdata, Uint8 *stream, int len)
@ -706,9 +707,4 @@ static void DbgRedraw()
} }
#endif #endif
#else
/* Stub for dedicated server */
void ToggleFullScreen(bool full_screen) {}
#endif /* WITH_SDL */ #endif /* WITH_SDL */

3
ttd.c
View File

@ -148,7 +148,7 @@ static int NullVideoMainLoop(void)
} }
static bool NullVideoChangeRes(int w, int h) { return false; } static bool NullVideoChangeRes(int w, int h) { return false; }
static void NullVideoFullScreen(bool fs) {}
const HalVideoDriver _null_video_driver = { const HalVideoDriver _null_video_driver = {
NullVideoStart, NullVideoStart,
@ -156,6 +156,7 @@ const HalVideoDriver _null_video_driver = {
NullVideoMakeDirty, NullVideoMakeDirty,
NullVideoMainLoop, NullVideoMainLoop,
NullVideoChangeRes, NullVideoChangeRes,
NullVideoFullScreen,
}; };
// NULL sound driver // NULL sound driver

View File

@ -783,7 +783,7 @@ static bool Win32GdiChangeRes(int w, int h)
return true; return true;
} }
void ToggleFullScreen(bool full_screen) {MakeWindow(full_screen);} static void Win32GdiFullScreen(bool full_screen) {MakeWindow(full_screen);}
const HalVideoDriver _win32_video_driver = { const HalVideoDriver _win32_video_driver = {
Win32GdiStart, Win32GdiStart,
@ -791,6 +791,7 @@ const HalVideoDriver _win32_video_driver = {
Win32GdiMakeDirty, Win32GdiMakeDirty,
Win32GdiMainLoop, Win32GdiMainLoop,
Win32GdiChangeRes, Win32GdiChangeRes,
Win32GdiFullScreen,
}; };