Refactor video driver name retrieval (#11413)
Co-authored-by: hecktest <>
This commit is contained in:
parent
29522017a3
commit
1d25d1f7ad
@ -105,7 +105,7 @@ RenderingEngine::RenderingEngine(IEventReceiver *receiver)
|
||||
u32 i;
|
||||
for (i = 0; i != drivers.size(); i++) {
|
||||
if (!strcasecmp(driverstring.c_str(),
|
||||
RenderingEngine::getVideoDriverName(drivers[i]))) {
|
||||
RenderingEngine::getVideoDriverInfo(drivers[i]).name.c_str())) {
|
||||
driverType = drivers[i];
|
||||
break;
|
||||
}
|
||||
@ -555,28 +555,15 @@ void RenderingEngine::draw_scene(video::SColor skycolor, bool show_hud,
|
||||
core->draw(skycolor, show_hud, show_minimap, draw_wield_tool, draw_crosshair);
|
||||
}
|
||||
|
||||
const char *RenderingEngine::getVideoDriverName(irr::video::E_DRIVER_TYPE type)
|
||||
const VideoDriverInfo &RenderingEngine::getVideoDriverInfo(irr::video::E_DRIVER_TYPE type)
|
||||
{
|
||||
static const std::unordered_map<irr::video::E_DRIVER_TYPE,const std::string> driver_ids = {
|
||||
{irr::video::EDT_NULL, "null"},
|
||||
{irr::video::EDT_OPENGL, "opengl"},
|
||||
{irr::video::EDT_OGLES1, "ogles1"},
|
||||
{irr::video::EDT_OGLES2, "ogles2"},
|
||||
static const std::unordered_map<irr::video::E_DRIVER_TYPE,VideoDriverInfo> driver_info_map = {
|
||||
{irr::video::EDT_NULL, {"null", "NULL Driver"}},
|
||||
{irr::video::EDT_OPENGL, {"opengl", "OpenGL"}},
|
||||
{irr::video::EDT_OGLES1, {"ogles1", "OpenGL ES1"}},
|
||||
{irr::video::EDT_OGLES2, {"ogles2", "OpenGL ES2"}},
|
||||
};
|
||||
|
||||
return driver_ids.at(type).c_str();
|
||||
}
|
||||
|
||||
const char *RenderingEngine::getVideoDriverFriendlyName(irr::video::E_DRIVER_TYPE type)
|
||||
{
|
||||
static const std::unordered_map<irr::video::E_DRIVER_TYPE,const std::string> driver_names = {
|
||||
{irr::video::EDT_NULL, "NULL Driver"},
|
||||
{irr::video::EDT_OPENGL, "OpenGL"},
|
||||
{irr::video::EDT_OGLES1, "OpenGL ES1"},
|
||||
{irr::video::EDT_OGLES2, "OpenGL ES2"},
|
||||
};
|
||||
|
||||
return driver_names.at(type).c_str();
|
||||
return driver_info_map.at(type);
|
||||
}
|
||||
|
||||
#ifndef __ANDROID__
|
||||
|
@ -29,6 +29,10 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
||||
// include the shadow mapper classes too
|
||||
#include "client/shadows/dynamicshadowsrender.h"
|
||||
|
||||
struct VideoDriverInfo {
|
||||
std::string name;
|
||||
std::string friendly_name;
|
||||
};
|
||||
|
||||
class ITextureSource;
|
||||
class Camera;
|
||||
@ -49,8 +53,7 @@ public:
|
||||
|
||||
video::IVideoDriver *getVideoDriver() { return driver; }
|
||||
|
||||
static const char *getVideoDriverName(irr::video::E_DRIVER_TYPE type);
|
||||
static const char *getVideoDriverFriendlyName(irr::video::E_DRIVER_TYPE type);
|
||||
static const VideoDriverInfo &getVideoDriverInfo(irr::video::E_DRIVER_TYPE type);
|
||||
static float getDisplayDensity();
|
||||
static v2u32 getDisplaySize();
|
||||
|
||||
|
@ -737,13 +737,12 @@ int ModApiMainMenu::l_get_video_drivers(lua_State *L)
|
||||
|
||||
lua_newtable(L);
|
||||
for (u32 i = 0; i != drivers.size(); i++) {
|
||||
const char *name = RenderingEngine::getVideoDriverName(drivers[i]);
|
||||
const char *fname = RenderingEngine::getVideoDriverFriendlyName(drivers[i]);
|
||||
auto &info = RenderingEngine::getVideoDriverInfo(drivers[i]);
|
||||
|
||||
lua_newtable(L);
|
||||
lua_pushstring(L, name);
|
||||
lua_pushstring(L, info.name.c_str());
|
||||
lua_setfield(L, -2, "name");
|
||||
lua_pushstring(L, fname);
|
||||
lua_pushstring(L, info.friendly_name.c_str());
|
||||
lua_setfield(L, -2, "friendly_name");
|
||||
|
||||
lua_rawseti(L, -2, i + 1);
|
||||
|
Loading…
x
Reference in New Issue
Block a user