summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/drawbgfx.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/render/drawbgfx.cpp')
-rw-r--r--src/osd/modules/render/drawbgfx.cpp36
1 files changed, 33 insertions, 3 deletions
diff --git a/src/osd/modules/render/drawbgfx.cpp b/src/osd/modules/render/drawbgfx.cpp
index f4a377a29c3..f5fbf9f3876 100644
--- a/src/osd/modules/render/drawbgfx.cpp
+++ b/src/osd/modules/render/drawbgfx.cpp
@@ -108,6 +108,7 @@ int renderer_bgfx::create()
{
// create renderer
+ osd_options& options = downcast<osd_options &>(window().machine().options());
osd_dim wdim = window().get_size();
m_width[window().m_index] = wdim.width();
m_height[window().m_index] = wdim.height();
@@ -130,14 +131,43 @@ int renderer_bgfx::create()
#else
bgfx::sdlSetWindow(window().sdl_window());
#endif
- bgfx::init();
+ std::string backend(options.bgfx_backend());
+ printf("1\n"); fflush(stdout);
+ if (backend == "auto")
+ {
+ bgfx::init();
+ }
+ else if (backend == "dx9" || backend == "d3d9")
+ {
+ bgfx::init(bgfx::RendererType::Direct3D9);
+ }
+ else if (backend == "dx11" || backend == "d3d11")
+ {
+ bgfx::init(bgfx::RendererType::Direct3D11);
+ }
+ else if (backend == "gles")
+ {
+ bgfx::init(bgfx::RendererType::OpenGLES);
+ }
+ else if (backend == "glsl" || backend == "opengl")
+ {
+ bgfx::init(bgfx::RendererType::OpenGL);
+ }
+ else if (backend == "metal")
+ {
+ bgfx::init(bgfx::RendererType::Metal);
+ }
+ else
+ {
+ osd_printf_verbose("Unknown backend type '%s'\n", backend.c_str());
+ assert(false);
+ }
bgfx::reset(m_width[window().m_index], m_height[window().m_index], video_config.waitvsync ? BGFX_RESET_VSYNC : BGFX_RESET_NONE);
// Enable debug text.
- bgfx::setDebug(window().machine().options().verbose() ? BGFX_DEBUG_STATS : BGFX_DEBUG_TEXT);
+ bgfx::setDebug(options.bgfx_debug() ? BGFX_DEBUG_STATS : BGFX_DEBUG_TEXT);
m_dimensions = osd_dim(m_width[0], m_height[0]);
}
- osd_options& options = downcast<osd_options &>(window().machine().options());
m_textures = new texture_manager();
m_targets = new target_manager(*m_textures);