diff options
Diffstat (limited to 'src/video/video_driver.hpp')
-rw-r--r-- | src/video/video_driver.hpp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/video/video_driver.hpp b/src/video/video_driver.hpp new file mode 100644 index 000000000..eab438491 --- /dev/null +++ b/src/video/video_driver.hpp @@ -0,0 +1,35 @@ +/* $Id$ */ + +#ifndef VIDEO_VIDEO_DRIVER_HPP +#define VIDEO_VIDEO_DRIVER_HPP + +#include "../driver.h" + +class VideoDriver: public Driver { +public: + virtual void MakeDirty(int left, int top, int width, int height) = 0; + + virtual void MainLoop() = 0; + + virtual bool ChangeResolution(int w, int h) = 0; + + virtual void ToggleFullscreen(bool fullscreen) = 0; +}; + +class VideoDriverFactoryBase: public DriverFactoryBase { +}; + +template <class T> +class VideoDriverFactory: public VideoDriverFactoryBase { +public: + VideoDriverFactory() { this->RegisterDriver(((T *)this)->GetName(), Driver::DT_VIDEO); } + + /** + * Get the long, human readable, name for the Driver-class. + */ + const char *GetName(); +}; + +extern VideoDriver *_video_driver; + +#endif /* VIDEO_VIDEO_DRIVER_HPP */ |