diff options
Diffstat (limited to 'src/osd/modules/render')
-rw-r--r-- | src/osd/modules/render/bgfx/shadermanager.cpp | 9 | ||||
-rw-r--r-- | src/osd/modules/render/drawbgfx.cpp | 3 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/osd/modules/render/bgfx/shadermanager.cpp b/src/osd/modules/render/bgfx/shadermanager.cpp index 763a744e4aa..282029cb96a 100644 --- a/src/osd/modules/render/bgfx/shadermanager.cpp +++ b/src/osd/modules/render/bgfx/shadermanager.cpp @@ -83,6 +83,15 @@ std::string shader_manager::make_path_string(const osd_options &options, const s { std::string shader_path(options.bgfx_path()); shader_path += PATH_SEPARATOR "shaders" PATH_SEPARATOR; + +#if defined(SDLMAME_EMSCRIPTEN) + // Hard-code renderer type to OpenGL ES for emscripten builds since the + // bgfx::getRendererType() is called here before BGFX has been + // initialized and therefore gives the wrong renderer type (Noop). + shader_path += "essl" PATH_SEPARATOR; + return shader_path; +#endif + switch (bgfx::getRendererType()) { case bgfx::RendererType::Noop: diff --git a/src/osd/modules/render/drawbgfx.cpp b/src/osd/modules/render/drawbgfx.cpp index 5fbb697089f..ef90478e59e 100644 --- a/src/osd/modules/render/drawbgfx.cpp +++ b/src/osd/modules/render/drawbgfx.cpp @@ -394,6 +394,9 @@ bool video_bgfx::set_platform_data(bgfx::PlatformData &platform_data, osd_window #elif defined(OSD_MAC) platform_data.ndt = nullptr; platform_data.nwh = GetOSWindow(dynamic_cast<mac_window_info const &>(window).platform_window()); +#elif defined(SDLMAME_EMSCRIPTEN) + platform_data.ndt = nullptr; + platform_data.nwh = (void *)"#canvas"; // HTML5 target selector #else // defined(OSD_*) SDL_SysWMinfo wmi; SDL_VERSION(&wmi.version); |