Remove unsupported video drivers (#11395)

This completely removes any mention of the software and D3D drivers from MT, preventing the user from accidentally attempting to use them. Users who need a software renderer should be asked to install Mesa drivers which offer superior fidelity and performance over the 'burningsvideo' driver.
This commit is contained in:
hecks 2021-06-30 20:42:15 +02:00 committed by GitHub
parent 8cc04e0cb4
commit 827a7852e2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 24 additions and 32 deletions

@ -715,7 +715,7 @@ texture_path (Texture path) path
# Note: On Android, stick with OGLES1 if unsure! App may fail to start otherwise. # Note: On Android, stick with OGLES1 if unsure! App may fail to start otherwise.
# On other platforms, OpenGL is recommended. # On other platforms, OpenGL is recommended.
# Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental) # Shaders are supported by OpenGL (desktop only) and OGLES2 (experimental)
video_driver (Video driver) enum opengl null,software,burningsvideo,direct3d8,direct3d9,opengl,ogles1,ogles2 video_driver (Video driver) enum opengl opengl,ogles1,ogles2
# Radius of cloud area stated in number of 64 node cloud squares. # Radius of cloud area stated in number of 64 node cloud squares.
# Values larger than 26 will start to produce sharp cutoffs at cloud area corners. # Values larger than 26 will start to produce sharp cutoffs at cloud area corners.

@ -284,14 +284,6 @@ static bool getWindowHandle(irr::video::IVideoDriver *driver, HWND &hWnd)
const video::SExposedVideoData exposedData = driver->getExposedVideoData(); const video::SExposedVideoData exposedData = driver->getExposedVideoData();
switch (driver->getDriverType()) { switch (driver->getDriverType()) {
#if IRRLICHT_VERSION_MAJOR == 1 && IRRLICHT_VERSION_MINOR < 9
case video::EDT_DIRECT3D8:
hWnd = reinterpret_cast<HWND>(exposedData.D3D8.HWnd);
break;
#endif
case video::EDT_DIRECT3D9:
hWnd = reinterpret_cast<HWND>(exposedData.D3D9.HWnd);
break;
#if ENABLE_GLES #if ENABLE_GLES
case video::EDT_OGLES1: case video::EDT_OGLES1:
case video::EDT_OGLES2: case video::EDT_OGLES2:
@ -527,11 +519,19 @@ void RenderingEngine::draw_menu_scene(gui::IGUIEnvironment *guienv,
std::vector<irr::video::E_DRIVER_TYPE> RenderingEngine::getSupportedVideoDrivers() std::vector<irr::video::E_DRIVER_TYPE> RenderingEngine::getSupportedVideoDrivers()
{ {
// Only check these drivers.
// We do not support software and D3D in any capacity.
static const irr::video::E_DRIVER_TYPE glDrivers[4] = {
irr::video::EDT_NULL,
irr::video::EDT_OPENGL,
irr::video::EDT_OGLES1,
irr::video::EDT_OGLES2,
};
std::vector<irr::video::E_DRIVER_TYPE> drivers; std::vector<irr::video::E_DRIVER_TYPE> drivers;
for (int i = 0; i != irr::video::EDT_COUNT; i++) { for (int i = 0; i < 4; i++) {
if (irr::IrrlichtDevice::isDriverSupported((irr::video::E_DRIVER_TYPE)i)) if (irr::IrrlichtDevice::isDriverSupported(glDrivers[i]))
drivers.push_back((irr::video::E_DRIVER_TYPE)i); drivers.push_back(glDrivers[i]);
} }
return drivers; return drivers;
@ -557,34 +557,26 @@ void RenderingEngine::draw_scene(video::SColor skycolor, bool show_hud,
const char *RenderingEngine::getVideoDriverName(irr::video::E_DRIVER_TYPE type) const char *RenderingEngine::getVideoDriverName(irr::video::E_DRIVER_TYPE type)
{ {
static const char *driver_ids[] = { static const std::unordered_map<irr::video::E_DRIVER_TYPE,const std::string> driver_ids = {
"null", {irr::video::EDT_NULL, "null"},
"software", {irr::video::EDT_OPENGL, "opengl"},
"burningsvideo", {irr::video::EDT_OGLES1, "ogles1"},
"direct3d8", {irr::video::EDT_OGLES2, "ogles2"},
"direct3d9",
"opengl",
"ogles1",
"ogles2",
}; };
return driver_ids[type]; return driver_ids.at(type).c_str();
} }
const char *RenderingEngine::getVideoDriverFriendlyName(irr::video::E_DRIVER_TYPE type) const char *RenderingEngine::getVideoDriverFriendlyName(irr::video::E_DRIVER_TYPE type)
{ {
static const char *driver_names[] = { static const std::unordered_map<irr::video::E_DRIVER_TYPE,const std::string> driver_names = {
"NULL Driver", {irr::video::EDT_NULL, "NULL Driver"},
"Software Renderer", {irr::video::EDT_OPENGL, "OpenGL"},
"Burning's Video", {irr::video::EDT_OGLES1, "OpenGL ES1"},
"Direct3D 8", {irr::video::EDT_OGLES2, "OpenGL ES2"},
"Direct3D 9",
"OpenGL",
"OpenGL ES1",
"OpenGL ES2",
}; };
return driver_names[type]; return driver_names.at(type).c_str();
} }
#ifndef __ANDROID__ #ifndef __ANDROID__