1 /* c-irrlicht --- C bindings for Irrlicht Engine
3 Copyright (C) 2019 Javier Sancho <jsf@jsancho.org>
5 This file is part of c-irrlicht.
7 c-irrlicht is free software; you can redistribute it and/or modify
8 it under the terms of the GNU Lesser General Public License as
9 published by the Free Software Foundation; either version 3 of the
10 License, or (at your option) any later version.
12 c-irrlicht is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 General Public License for more details.
17 You should have received a copy of the GNU Lesser General Public
18 License along with guile-irrlicht. If not, see
19 <http://www.gnu.org/licenses/>.
22 #ifndef __C_I_VIDEO_DRIVER_H_INCLUDED__
23 #define __C_I_VIDEO_DRIVER_H_INCLUDED__
25 #include "EPrimitiveTypes.h"
29 #include "S3DVertex.h"
31 #include "SExposedVideoData.h"
32 #include "SMaterial.h"
33 #include "SVertexIndex.h"
35 //! enumeration for geometry transformation states
38 //! View transformation
39 irr_video_ETS_VIEW = 0,
40 //! World transformation
42 //! Projection transformation
43 irr_video_ETS_PROJECTION,
44 //! Texture transformation
45 irr_video_ETS_TEXTURE_0,
46 //! Texture transformation
47 irr_video_ETS_TEXTURE_1,
48 //! Texture transformation
49 irr_video_ETS_TEXTURE_2,
50 //! Texture transformation
51 irr_video_ETS_TEXTURE_3,
52 #if _C_IRR_MATERIAL_MAX_TEXTURES_>4
53 //! Texture transformation
54 irr_video_ETS_TEXTURE_4,
55 #if _C_IRR_MATERIAL_MAX_TEXTURES_>5
56 //! Texture transformation
57 irr_video_ETS_TEXTURE_5,
58 #if _C_IRR_MATERIAL_MAX_TEXTURES_>6
59 //! Texture transformation
60 irr_video_ETS_TEXTURE_6,
61 #if _C_IRR_MATERIAL_MAX_TEXTURES_>7
62 //! Texture transformation
63 irr_video_ETS_TEXTURE_7,
70 } irr_video_E_TRANSFORMATION_STATE;
73 typedef void irr_video_IVideoDriver;
80 irr_video_beginScene(irr_video_IVideoDriver* driver,
83 const irr_video_SColor* color,
84 irr_video_SExposedVideoData* videoData,
85 const irr_core_rect_s32* sourceRect);
88 irr_video_drawVertexPrimitiveList(irr_video_IVideoDriver* driver,
90 unsigned int vertexCount,
91 const void* indexList,
92 unsigned int primCount,
93 irr_video_E_VERTEX_TYPE vType,
94 irr_scene_E_PRIMITIVE_TYPE pType,
95 irr_video_E_INDEX_TYPE iType);
98 irr_video_endScene(irr_video_IVideoDriver* driver);
101 irr_video_getFPS(irr_video_IVideoDriver* driver);
104 irr_video_getName(irr_video_IVideoDriver* driver);
107 irr_video_getTexture(irr_video_IVideoDriver* driver,
108 const char* filename);
111 irr_video_setMaterial(irr_video_IVideoDriver* driver,
112 const irr_video_SMaterial material);
115 irr_video_setTransform(irr_video_IVideoDriver* driver,
116 irr_video_E_TRANSFORMATION_STATE state,
117 irr_core_matrix4* mat);