]> git.jsancho.org Git - c-irrlicht.git/blobdiff - include/IVideoDriver.h
C types
[c-irrlicht.git] / include / IVideoDriver.h
index ea9ef5162d31b1da9c913334b7acfb56d9f896a5..a03cbde90586f8671caf6a8602ea0490503ff28a 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 <inttypes.h>
+#include <stdbool.h>
+
+#include "EPrimitiveTypes.h"
 #include "ITexture.h"
+#include "matrix4.h"
+#include "rect.h"
+#include "S3DVertex.h"
 #include "SColor.h"
 #include "SExposedVideoData.h"
-#include "rect.h"
+#include "SMaterial.h"
+#include "SVertexIndex.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(irr_video_IVideoDriver* driver,
-                                    bool backBuffer,
-                                    bool zBuffer,
-                                    const irr_video_SColor* color,
-                                    irr_video_SExposedVideoData* videoData,
-                                    const irr_core_rect_s32* sourceRect);
+  int
+  irr_video_beginScene(irr_video_IVideoDriver* driver,
+                       bool backBuffer,
+                       bool zBuffer,
+                       const irr_video_SColor* color,
+                       irr_video_SExposedVideoData* videoData,
+                       const irr_core_rect_s32* sourceRect);
+
+  void
+  irr_video_drawVertexPrimitiveList(irr_video_IVideoDriver* driver,
+                                    const void* vertices,
+                                    uint32_t vertexCount,
+                                    const void* indexList,
+                                    uint32_t primCount,
+                                    irr_video_E_VERTEX_TYPE vType,
+                                    irr_scene_E_PRIMITIVE_TYPE pType,
+                                    irr_video_E_INDEX_TYPE iType);
+
+  int
+  irr_video_endScene(irr_video_IVideoDriver* driver);
 
-  bool
-  irr_video_IVideoDriver_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_IVideoDriver_getTexture(irr_video_IVideoDriver* driver,
-                                    const char* filename);
+  irr_video_getTexture(irr_video_IVideoDriver* driver,
+                       const char* filename);
+
+  void
+  irr_video_setMaterial(irr_video_IVideoDriver* driver,
+                        const irr_video_SMaterial material);
+
+  void
+  irr_video_setTransform(irr_video_IVideoDriver* driver,
+                         irr_video_E_TRANSFORMATION_STATE state,
+                         irr_core_matrix4* mat);
 
 #ifdef __cplusplus
 }