(svn r10444) -Codechange: switch to c++ classes and inheritance for sound/music/video drivers, using self-registration based on the blitter-model.

This commit is contained in:
peter1138
2007-07-05 12:23:54 +00:00
parent b507907176
commit 68c6add8cc
48 changed files with 883 additions and 557 deletions

View File

@@ -17,6 +17,8 @@
#include "sdl_v.h"
#include <SDL.h>
static FVideoDriver_SDL iFVideoDriver_SDL;
static SDL_Surface *_sdl_screen;
static bool _all_modes;
@@ -24,7 +26,7 @@ static bool _all_modes;
static SDL_Rect _dirty_rects[MAX_DIRTY_RECTS];
static int _num_dirty_rects;
static void SdlVideoMakeDirty(int left, int top, int width, int height)
void VideoDriver_SDL::MakeDirty(int left, int top, int width, int height)
{
if (_num_dirty_rects < MAX_DIRTY_RECTS) {
_dirty_rects[_num_dirty_rects].x = left;
@@ -415,7 +417,7 @@ static int PollEvent()
return -1;
}
static const char *SdlVideoStart(const char * const *parm)
const char *VideoDriver_SDL::Start(const char * const *parm)
{
char buf[30];
@@ -434,12 +436,12 @@ static const char *SdlVideoStart(const char * const *parm)
return NULL;
}
static void SdlVideoStop()
void VideoDriver_SDL::Stop()
{
SdlClose(SDL_INIT_VIDEO);
}
static void SdlVideoMainLoop()
void VideoDriver_SDL::MainLoop()
{
uint32 cur_ticks = SDL_CALL SDL_GetTicks();
uint32 last_cur_ticks = cur_ticks;
@@ -505,28 +507,19 @@ static void SdlVideoMainLoop()
}
}
static bool SdlVideoChangeRes(int w, int h)
bool VideoDriver_SDL::ChangeResolution(int w, int h)
{
return CreateMainSurface(w, h);
}
static void SdlVideoFullScreen(bool full_screen)
void VideoDriver_SDL::ToggleFullscreen(bool fullscreen)
{
_fullscreen = full_screen;
_fullscreen = fullscreen;
GetVideoModes(); // get the list of available video modes
if (_num_resolutions == 0 || !_video_driver->change_resolution(_cur_resolution[0], _cur_resolution[1])) {
if (_num_resolutions == 0 || !this->ChangeResolution(_cur_resolution[0], _cur_resolution[1])) {
// switching resolution failed, put back full_screen to original status
_fullscreen ^= true;
}
}
const HalVideoDriver _sdl_video_driver = {
SdlVideoStart,
SdlVideoStop,
SdlVideoMakeDirty,
SdlVideoMainLoop,
SdlVideoChangeRes,
SdlVideoFullScreen,
};
#endif /* WITH_SDL */