summaryrefslogtreecommitdiff
path: root/video/null.c
diff options
context:
space:
mode:
Diffstat (limited to 'video/null.c')
-rw-r--r--video/null.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/video/null.c b/video/null.c
new file mode 100644
index 000000000..bbd839cc0
--- /dev/null
+++ b/video/null.c
@@ -0,0 +1,45 @@
+#include "stdafx.h"
+#include "openttd.h"
+#include "gfx.h"
+#include "variables.h"
+#include "video/null.h"
+#include "window.h"
+
+static void* _null_video_mem = NULL;
+
+static const char* NullVideoStart(const char* const* parm)
+{
+ _screen.width = _screen.pitch = _cur_resolution[0];
+ _screen.height = _cur_resolution[1];
+ _null_video_mem = malloc(_cur_resolution[0] * _cur_resolution[1]);
+ return NULL;
+}
+
+static void NullVideoStop(void) { free(_null_video_mem); }
+
+static void NullVideoMakeDirty(int left, int top, int width, int height) {}
+
+static int NullVideoMainLoop(void)
+{
+ uint i;
+
+ for (i = 0; i < 1000; i++) {
+ GameLoop();
+ _screen.dst_ptr = _null_video_mem;
+ UpdateWindows();
+ }
+
+ return ML_QUIT;
+}
+
+static bool NullVideoChangeRes(int w, int h) { return false; }
+static void NullVideoFullScreen(bool fs) {}
+
+const HalVideoDriver _null_video_driver = {
+ NullVideoStart,
+ NullVideoStop,
+ NullVideoMakeDirty,
+ NullVideoMainLoop,
+ NullVideoChangeRes,
+ NullVideoFullScreen,
+};