From 0894213e3fdec361f33f1a9816df3973d52590b0 Mon Sep 17 00:00:00 2001 From: Javier Sancho Date: Tue, 22 Oct 2019 12:22:33 +0200 Subject: [PATCH] Get driver name --- include/IVideoDriver.h | 5 ++++- src/IGUIEnvironment.cpp | 2 +- src/IVideoDriver.cpp | 13 ++++++++++++- src/IrrlichtDevice.cpp | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/include/IVideoDriver.h b/include/IVideoDriver.h index 9e93413..5da2d39 100644 --- a/include/IVideoDriver.h +++ b/include/IVideoDriver.h @@ -45,7 +45,10 @@ extern "C" { irr_video_endScene(irr_video_IVideoDriver* driver); int - irr_getFPS(irr_video_IVideoDriver* driver); + irr_video_getFPS(irr_video_IVideoDriver* driver); + + const char* + irr_video_getName(irr_video_IVideoDriver* driver); irr_video_ITexture* irr_video_getTexture(irr_video_IVideoDriver* driver, diff --git a/src/IGUIEnvironment.cpp b/src/IGUIEnvironment.cpp index 927c0b9..57d6bb9 100644 --- a/src/IGUIEnvironment.cpp +++ b/src/IGUIEnvironment.cpp @@ -36,7 +36,7 @@ extern "C" { { // Convert to wide char text wchar_t *wtext = (wchar_t*)malloc((strlen(text) + 1) * sizeof(wchar_t)); - mbsrtowcs(wtext, &text, strlen(text) + 1, NULL); + mbstowcs(wtext, text, strlen(text) + 1); // Make rectangle irr::core::rect rect = diff --git a/src/IVideoDriver.cpp b/src/IVideoDriver.cpp index 0033729..3b77b91 100644 --- a/src/IVideoDriver.cpp +++ b/src/IVideoDriver.cpp @@ -20,6 +20,7 @@ */ #include +#include #include "IVideoDriver.h" extern "C" { @@ -65,11 +66,21 @@ extern "C" { } int - irr_getFPS(irr_video_IVideoDriver* driver) + irr_video_getFPS(irr_video_IVideoDriver* driver) { return ((irr::video::IVideoDriver*)driver)->getFPS(); } + const char* + irr_video_getName(irr_video_IVideoDriver* driver) + { + const wchar_t *wname = ((irr::video::IVideoDriver*)driver)->getName(); + size_t nbytes = wcslen(wname) + 1; + char *name = (char*)malloc(nbytes); + wcstombs(name, wname, nbytes); + return name; + } + irr_video_ITexture* irr_video_getTexture(irr_video_IVideoDriver* driver, const char* filename) diff --git a/src/IrrlichtDevice.cpp b/src/IrrlichtDevice.cpp index 41a6d1d..d00ba45 100644 --- a/src/IrrlichtDevice.cpp +++ b/src/IrrlichtDevice.cpp @@ -65,7 +65,7 @@ extern "C" { const char* text) { wchar_t *wtext = (wchar_t*)malloc((strlen(text) + 1) * sizeof(wchar_t)); - mbsrtowcs(wtext, &text, strlen(text) + 1, NULL); + mbstowcs(wtext, text, strlen(text) + 1); ((irr::IrrlichtDevice*)device)->setWindowCaption(wtext); } -- 2.39.2