]> git.jsancho.org Git - c-irrlicht.git/blobdiff - src/IVideoDriver.cpp
getRootSceneNode
[c-irrlicht.git] / src / IVideoDriver.cpp
index 86d7347b31e7e5baf832f50f7b4957524c478f22..3b77b9106a6b0f70bd9d945e79264765421b1da2 100644 (file)
 */
 
 #include <irrlicht/irrlicht.h>
+#include <wchar.h>
 #include "IVideoDriver.h"
 
 extern "C" {
-  bool irr_video_IVideoDriver_beginScene(void* driver,
-                                         bool backBuffer,
-                                         bool zBuffer,
-                                         const irr_video_SColor* color,
-                                         void* videoData, // not used for now
-                                         const irr_core_rect_s32* sourceRect)
+  int
+  irr_video_beginScene(irr_video_IVideoDriver* driver,
+                       int backBuffer,
+                       int zBuffer,
+                       const irr_video_SColor* color,
+                       irr_video_SExposedVideoData* videoData,
+                       const irr_core_rect_s32* sourceRect)
   {
     // Color
     irr::video::SColor col = irr::video::SColor(color->a, color->r,
                                                 color->g, color->b);
 
     // Video data
+    // TODO
     irr::video::SExposedVideoData vdata = irr::video::SExposedVideoData();
 
     // Source rect
@@ -48,15 +51,42 @@ extern "C" {
       }
 
     // Begin scene
-    return ((irr::video::IVideoDriver*)driver)->beginScene(backBuffer,
-                                                           zBuffer,
-                                                           col,
-                                                           vdata,
-                                                           sourceRect != NULL ? &rect : 0);
+    return ((irr::video::IVideoDriver*)driver)
+      ->beginScene(backBuffer,
+                   zBuffer,
+                   col,
+                   vdata,
+                   sourceRect != NULL ? &rect : 0);
   }
 
-  bool irr_video_IVideoDriver_endScene(void* driver)
+  int
+  irr_video_endScene(irr_video_IVideoDriver* driver)
   {
     return ((irr::video::IVideoDriver*)driver)->endScene();
   }
+
+  int
+  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)
+  {
+    return (irr_video_ITexture*)
+      ((irr::video::IVideoDriver*)driver)->getTexture(filename);
+  }
+
 }