]> git.jsancho.org Git - c-irrlicht.git/blobdiff - src/IrrlichtDevice.cpp
Use structs with casting, without classes replication
[c-irrlicht.git] / src / IrrlichtDevice.cpp
index b78b1ecabdb5941cab89809a3dd590e27fa94e3d..512b9da11d72b1da68e8ca9ee582766e0bd5d9f5 100644 (file)
 */
 
 #include <irrlicht/irrlicht.h>
+#include <wchar.h>
 #include "IrrlichtDevice.h"
 
 extern "C" {
-  void* irr_IrrlichtDevice_getVideoDriver(void* device)
+  irr_gui_ICursorControl*
+  irr_getCursorControl(irr_IrrlichtDevice* device)
+  {
+    return ((irr::IrrlichtDevice*)device)->getCursorControl();
+  }
+
+  irr_io_IFileSystem*
+  irr_getFileSystem(irr_IrrlichtDevice* device)
+  {
+    return ((irr::IrrlichtDevice*)device)->getFileSystem();
+  }
+
+  irr_gui_IGUIEnvironment*
+  irr_getGUIEnvironment(irr_IrrlichtDevice* device)
+  {
+    return ((irr::IrrlichtDevice*)device)->getGUIEnvironment();
+  }
+
+  irr_scene_ISceneManager*
+  irr_getSceneManager(irr_IrrlichtDevice* device)
+  {
+    return ((irr::IrrlichtDevice*)device)->getSceneManager();
+  }
+
+  irr_video_IVideoDriver*
+  irr_getVideoDriver(irr_IrrlichtDevice* device)
   {
     return ((irr::IrrlichtDevice*)device)->getVideoDriver();
   }
+
+  bool
+  irr_isWindowActive(irr_IrrlichtDevice* device)
+  {
+    return ((irr::IrrlichtDevice*)device)->isWindowActive();
+  }
+
+  void
+  irr_setWindowCaption(irr_IrrlichtDevice* device,
+                       const char* text)
+  {
+    wchar_t *wtext = (wchar_t*)malloc((strlen(text) + 1) * sizeof(wchar_t));
+    mbstowcs(wtext, text, strlen(text) + 1);
+    ((irr::IrrlichtDevice*)device)->setWindowCaption(wtext);
+  }
+
+  bool
+  irr_run(irr_IrrlichtDevice* device)
+  {
+    return ((irr::IrrlichtDevice*)device)->run();
+  }
+
+  void
+  irr_yield(irr_IrrlichtDevice* device)
+  {
+    ((irr::IrrlichtDevice*)device)->yield();
+  }
+
 }