diff options
Diffstat (limited to 'src/osd/modules/osdwindow.cpp')
-rw-r--r-- | src/osd/modules/osdwindow.cpp | 63 |
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 |