]> git.jsancho.org Git - c-irrlicht.git/blobdiff - include/IVideoDriver.h
Vertices, boxes, matrices, transformations and more
[c-irrlicht.git] / include / IVideoDriver.h
index 260d0124e8e8063025153608f96c4c4874562965..5c89181d13b89390dc957e8f00cb83e7f075360f 100644 (file)
    <http://www.gnu.org/licenses/>.
 */
 
-#ifndef __C_IRR_I_VIDEO_DRIVER_H_INCLUDED__
-#define __C_IRR_I_VIDEO_DRIVER_H_INCLUDED__
+#ifndef __C_I_VIDEO_DRIVER_H_INCLUDED__
+#define __C_I_VIDEO_DRIVER_H_INCLUDED__
 
+#include "ITexture.h"
+#include "matrix4.h"
 #include "SColor.h"
+#include "SExposedVideoData.h"
+#include "SMaterial.h"
 #include "rect.h"
 
+//! enumeration for geometry transformation states
+typedef enum
+  {
+   //! View transformation
+   irr_video_ETS_VIEW = 0,
+   //! World transformation
+   irr_video_ETS_WORLD,
+   //! Projection transformation
+   irr_video_ETS_PROJECTION,
+   //! Texture transformation
+   irr_video_ETS_TEXTURE_0,
+   //! Texture transformation
+   irr_video_ETS_TEXTURE_1,
+   //! Texture transformation
+   irr_video_ETS_TEXTURE_2,
+   //! Texture transformation
+   irr_video_ETS_TEXTURE_3,
+#if _C_IRR_MATERIAL_MAX_TEXTURES_>4
+   //! Texture transformation
+   irr_video_ETS_TEXTURE_4,
+#if _C_IRR_MATERIAL_MAX_TEXTURES_>5
+   //! Texture transformation
+   irr_video_ETS_TEXTURE_5,
+#if _C_IRR_MATERIAL_MAX_TEXTURES_>6
+   //! Texture transformation
+   irr_video_ETS_TEXTURE_6,
+#if _C_IRR_MATERIAL_MAX_TEXTURES_>7
+   //! Texture transformation
+   irr_video_ETS_TEXTURE_7,
+#endif
+#endif
+#endif
+#endif
+   //! Not used
+   irr_video_ETS_COUNT
+  } irr_video_E_TRANSFORMATION_STATE;
+
+// types
+typedef void irr_video_IVideoDriver;
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-  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);
+
+  int
+  irr_video_endScene(irr_video_IVideoDriver* driver);
+
+  int
+  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,
+                       const char* filename);
+
+  void
+  irr_video_setMaterial(irr_video_IVideoDriver* driver,
+                        const irr_video_SMaterial material);
 
-  bool irr_video_IVideoDriver_endScene(void* driver);
+  void
+  irr_video_setTransform(irr_video_IVideoDriver* driver,
+                         irr_video_E_TRANSFORMATION_STATE state,
+                         irr_core_matrix4* mat);
 
 #ifdef __cplusplus
 }