summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/osdwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/osdwindow.cpp')
-rw-r--r--src/osd/modules/osdwindow.cpp63
1 files changed, 63 insertions, 0 deletions
diff --git a/src/osd/modules/osdwindow.cpp b/src/osd/modules/osdwindow.cpp
new file mode 100644
index 00000000000..29b77cd52e5
--- /dev/null
+++ b/src/osd/modules/osdwindow.cpp
@@ -0,0 +1,63 @@
+// license:BSD-3-Clause
+// copyright-holders:Olivier Galibert, R. Belmont, Couriersud
+//============================================================
+//
+// osdwindow.cpp - SDL window handling
+//
+//============================================================
+
+// standard windows headers
+#ifdef OSD_WINDOWS
+#define WIN32_LEAN_AND_MEAN
+#include <windows.h>
+#include <windowsx.h>
+#include <mmsystem.h>
+#endif
+
+#include "osdwindow.h"
+
+#include "render/drawnone.h"
+#include "render/drawbgfx.h"
+#if (USE_OPENGL)
+#include "render/drawogl.h"
+#endif
+#ifdef OSD_WINDOWS
+#include "render/drawgdi.h"
+#include "render/drawd3d.h"
+#else
+#include "render/draw13.h"
+#include "render/drawsdl.h"
+#endif
+
+osd_renderer* osd_renderer::make_for_type(int mode, osd_window* window, int extra_flags)
+{
+ switch(mode)
+ {
+#ifdef OSD_WINDOWS
+ case VIDEO_MODE_NONE:
+ return new renderer_none(window);
+#endif
+ case VIDEO_MODE_BGFX:
+ return new renderer_bgfx(window);
+#if (USE_OPENGL)
+ case VIDEO_MODE_OPENGL:
+ return new renderer_ogl(window);
+#endif
+#ifdef OSD_WINDOWS
+ case VIDEO_MODE_GDI:
+ return new renderer_gdi(window);
+ case VIDEO_MODE_D3D:
+ {
+ osd_renderer *renderer = new renderer_d3d9(window);
+ return renderer;
+ }
+#else
+ case VIDEO_MODE_SDL2ACCEL:
+ return new renderer_sdl2(window, extra_flags);
+ case VIDEO_MODE_SOFT:
+ return new renderer_sdl1(window, extra_flags);
+#endif
+ default:
+ return nullptr;
+ }
+} \ No newline at end of file