mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 09:15:29 +01:00 
			
		
		
		
	Show SDL version in the About tab (#16046)
This commit is contained in:
		@@ -16,6 +16,7 @@
 | 
			
		||||
#include "IrrCompileConfig.h"
 | 
			
		||||
#include "position2d.h"
 | 
			
		||||
#include "SColor.h" // video::ECOLOR_FORMAT
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <variant>
 | 
			
		||||
 | 
			
		||||
namespace irr
 | 
			
		||||
@@ -332,6 +333,12 @@ public:
 | 
			
		||||
	used. */
 | 
			
		||||
	virtual E_DEVICE_TYPE getType() const = 0;
 | 
			
		||||
 | 
			
		||||
	//! Get the version string of the underlying system (e.g. SDL)
 | 
			
		||||
	virtual std::string getVersionString() const
 | 
			
		||||
	{
 | 
			
		||||
		return "";
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//! Get the display density in dots per inch.
 | 
			
		||||
	//! Returns 0.0f on failure.
 | 
			
		||||
	virtual float getDisplayDensity() const = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -109,6 +109,14 @@ public:
 | 
			
		||||
		return EIDT_SDL;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//! Get the SDL version
 | 
			
		||||
	std::string getVersionString() const override
 | 
			
		||||
	{
 | 
			
		||||
		SDL_version ver;
 | 
			
		||||
		SDL_GetVersion(&ver);
 | 
			
		||||
		return std::to_string(ver.major) + "." + std::to_string(ver.minor) + "." + std::to_string(ver.patch);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//! Get the display density in dots per inch.
 | 
			
		||||
	float getDisplayDensity() const override;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -945,8 +945,9 @@ int ModApiMainMenu::l_get_active_renderer(lua_State *L)
 | 
			
		||||
/******************************************************************************/
 | 
			
		||||
int ModApiMainMenu::l_get_active_irrlicht_device(lua_State *L)
 | 
			
		||||
{
 | 
			
		||||
	const char *device_name = [] {
 | 
			
		||||
		switch (RenderingEngine::get_raw_device()->getType()) {
 | 
			
		||||
	auto device = RenderingEngine::get_raw_device();
 | 
			
		||||
	std::string device_name = [device] {
 | 
			
		||||
		switch (device->getType()) {
 | 
			
		||||
		case EIDT_WIN32: return "WIN32";
 | 
			
		||||
		case EIDT_X11: return "X11";
 | 
			
		||||
		case EIDT_OSX: return "OSX";
 | 
			
		||||
@@ -955,7 +956,9 @@ int ModApiMainMenu::l_get_active_irrlicht_device(lua_State *L)
 | 
			
		||||
		default: return "Unknown";
 | 
			
		||||
		}
 | 
			
		||||
	}();
 | 
			
		||||
	lua_pushstring(L, device_name);
 | 
			
		||||
	if (auto version = device->getVersionString(); !version.empty())
 | 
			
		||||
		device_name.append(" " + version);
 | 
			
		||||
	lua_pushstring(L, device_name.c_str());
 | 
			
		||||
	return 1;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user