]> git.jsancho.org Git - c-irrlicht.git/blobdiff - include/IVideoDriver.h
C types
[c-irrlicht.git] / include / IVideoDriver.h
index d57786dddb4023a08f5d38cd88cce7920c7c8895..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 "SColor.h"
+#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 "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(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,
+                       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);
+
+  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_videoIVideoDriver_endScene(void* driver);
+  void
+  irr_video_setTransform(irr_video_IVideoDriver* driver,
+                         irr_video_E_TRANSFORMATION_STATE state,
+                         irr_core_matrix4* mat);
 
 #ifdef __cplusplus
 }