]> git.jsancho.org Git - c-irrlicht.git/blobdiff - src/IVideoDriver.cpp
Appropiate method bindings
[c-irrlicht.git] / src / IVideoDriver.cpp
index 0033729a3d5715f7047991e4c4b10187eef4f866..50ee3454283db4ec73ea0d2d7c634c489f0ae4ab 100644 (file)
@@ -20,6 +20,7 @@
 */
 
 #include <irrlicht/irrlicht.h>
+#include <wchar.h>
 #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)
@@ -78,4 +89,24 @@ extern "C" {
       ((irr::video::IVideoDriver*)driver)->getTexture(filename);
   }
 
+  void
+  irr_video_setMaterial(irr_video_IVideoDriver* driver,
+                        const irr_video_SMaterial material)
+  {
+    irr::video::SMaterial irrMaterial = irr::video::SMaterial();
+    irrMaterial.Lighting = material.lighting;
+    irrMaterial.Wireframe = material.wireframe;
+
+    ((irr::video::IVideoDriver*)driver)->setMaterial(irrMaterial);
+  }
+
+  void
+  irr_video_setTransform(irr_video_IVideoDriver* driver,
+                         irr_video_E_TRANSFORMATION_STATE state,
+                         irr_core_matrix4* mat)
+  {
+    ((irr::video::IVideoDriver*)driver)
+      ->setTransform((irr::video::E_TRANSFORMATION_STATE)state,
+                     *(irr::core::matrix4*)mat);
+  }
 }