(svn r26107) -Codechange/cleanup: remove some coding bloat and simplify the driver factory instatiations
This commit is contained in:
@@ -37,12 +37,10 @@ public:
|
||||
};
|
||||
|
||||
/** Factory for the allegro video driver. */
|
||||
class FVideoDriver_Allegro: public VideoDriverFactory<FVideoDriver_Allegro> {
|
||||
class FVideoDriver_Allegro : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 4;
|
||||
/* virtual */ const char *GetName() { return "allegro"; }
|
||||
/* virtual */ const char *GetDescription() { return "Allegro Video Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new VideoDriver_Allegro(); }
|
||||
FVideoDriver_Allegro() : DriverFactoryBase(Driver::DT_VIDEO, 4, "allegro", "Allegro Video Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new VideoDriver_Allegro(); }
|
||||
};
|
||||
|
||||
#endif /* VIDEO_ALLEGRO_H */
|
||||
|
||||
@@ -61,12 +61,10 @@ public:
|
||||
/* virtual */ const char *GetName() const { return "cocoa"; }
|
||||
};
|
||||
|
||||
class FVideoDriver_Cocoa: public VideoDriverFactory<FVideoDriver_Cocoa> {
|
||||
class FVideoDriver_Cocoa : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 10;
|
||||
/* virtual */ const char *GetName() { return "cocoa"; }
|
||||
/* virtual */ const char *GetDescription() { return "Cocoa Video Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new VideoDriver_Cocoa(); }
|
||||
FVideoDriver_Cocoa() : DriverFactoryBase(Driver::DT_VIDEO, 10, "cocoa", "Cocoa Video Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new VideoDriver_Cocoa(); }
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -33,18 +33,17 @@ public:
|
||||
};
|
||||
|
||||
/** Factory for the dedicated server video driver. */
|
||||
class FVideoDriver_Dedicated: public VideoDriverFactory<FVideoDriver_Dedicated> {
|
||||
class FVideoDriver_Dedicated : public DriverFactoryBase {
|
||||
public:
|
||||
#ifdef DEDICATED
|
||||
/* Automatically select this dedicated driver when making a dedicated
|
||||
* server build. */
|
||||
static const int priority = 10;
|
||||
static const int PRIORITY = 10;
|
||||
#else
|
||||
static const int priority = 0;
|
||||
static const int PRIORITY = 0;
|
||||
#endif
|
||||
/* virtual */ const char *GetName() { return "dedicated"; }
|
||||
/* virtual */ const char *GetDescription() { return "Dedicated Video Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new VideoDriver_Dedicated(); }
|
||||
FVideoDriver_Dedicated() : DriverFactoryBase(Driver::DT_VIDEO, PRIORITY, "dedicated", "Dedicated Video Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new VideoDriver_Dedicated(); }
|
||||
};
|
||||
|
||||
#endif /* VIDEO_DEDICATED_H */
|
||||
|
||||
@@ -36,12 +36,10 @@ public:
|
||||
};
|
||||
|
||||
/** Factory the null video driver. */
|
||||
class FVideoDriver_Null: public VideoDriverFactory<FVideoDriver_Null> {
|
||||
class FVideoDriver_Null : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 0;
|
||||
/* virtual */ const char *GetName() { return "null"; }
|
||||
/* virtual */ const char *GetDescription() { return "Null Video Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new VideoDriver_Null(); }
|
||||
FVideoDriver_Null() : DriverFactoryBase(Driver::DT_VIDEO, 0, "null", "Null Video Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new VideoDriver_Null(); }
|
||||
};
|
||||
|
||||
#endif /* VIDEO_NULL_H */
|
||||
|
||||
@@ -41,12 +41,10 @@ private:
|
||||
};
|
||||
|
||||
/** Factory for the SDL video driver. */
|
||||
class FVideoDriver_SDL: public VideoDriverFactory<FVideoDriver_SDL> {
|
||||
class FVideoDriver_SDL : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 5;
|
||||
/* virtual */ const char *GetName() { return "sdl"; }
|
||||
/* virtual */ const char *GetDescription() { return "SDL Video Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new VideoDriver_SDL(); }
|
||||
FVideoDriver_SDL() : DriverFactoryBase(Driver::DT_VIDEO, 5, "sdl", "SDL Video Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new VideoDriver_SDL(); }
|
||||
};
|
||||
|
||||
#endif /* VIDEO_SDL_H */
|
||||
|
||||
@@ -80,25 +80,6 @@ public:
|
||||
virtual void EditBoxLostFocus() {}
|
||||
};
|
||||
|
||||
/** Base of the factory for the video drivers. */
|
||||
class VideoDriverFactoryBase: public DriverFactoryBase {
|
||||
};
|
||||
|
||||
/**
|
||||
* Factory for the video drivers.
|
||||
* @tparam T The type of the video factory to register.
|
||||
*/
|
||||
template <class T>
|
||||
class VideoDriverFactory: public VideoDriverFactoryBase {
|
||||
public:
|
||||
VideoDriverFactory() { this->RegisterDriver(((T *)this)->GetName(), Driver::DT_VIDEO, ((T *)this)->priority); }
|
||||
|
||||
/**
|
||||
* Get the long, human readable, name for the Driver-class.
|
||||
*/
|
||||
const char *GetName();
|
||||
};
|
||||
|
||||
extern VideoDriver *_video_driver;
|
||||
extern char *_ini_videodriver;
|
||||
extern int _num_resolutions;
|
||||
|
||||
@@ -41,12 +41,10 @@ public:
|
||||
};
|
||||
|
||||
/** The factory for Windows' video driver. */
|
||||
class FVideoDriver_Win32: public VideoDriverFactory<FVideoDriver_Win32> {
|
||||
class FVideoDriver_Win32 : public DriverFactoryBase {
|
||||
public:
|
||||
static const int priority = 10;
|
||||
/* virtual */ const char *GetName() { return "win32"; }
|
||||
/* virtual */ const char *GetDescription() { return "Win32 GDI Video Driver"; }
|
||||
/* virtual */ Driver *CreateInstance() { return new VideoDriver_Win32(); }
|
||||
FVideoDriver_Win32() : DriverFactoryBase(Driver::DT_VIDEO, 10, "win32", "Win32 GDI Video Driver") {}
|
||||
/* virtual */ Driver *CreateInstance() const { return new VideoDriver_Win32(); }
|
||||
};
|
||||
|
||||
#endif /* VIDEO_WIN32_H */
|
||||
|
||||
Reference in New Issue
Block a user