diff options
Diffstat (limited to 'src/mapblock_mesh.h')
-rw-r--r-- | src/mapblock_mesh.h | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/src/mapblock_mesh.h b/src/mapblock_mesh.h index be56d4c58..8e994ec6b 100644 --- a/src/mapblock_mesh.h +++ b/src/mapblock_mesh.h @@ -21,11 +21,12 @@ with this program; if not, write to the Free Software Foundation, Inc., #define MAPBLOCK_MESH_HEADER #include "irrlichttypes_extrabloated.h" -#include "tile.h" +#include "client/tile.h" #include "voxel.h" #include <map> class IGameDef; +class IShaderSource; /* Mesh making stuff @@ -33,6 +34,7 @@ class IGameDef; class MapBlock; +struct MinimapMapblock; struct MeshMakeData { @@ -45,8 +47,9 @@ struct MeshMakeData video::SColor m_highlight_mesh_color; IGameDef *m_gamedef; + bool m_use_shaders; - MeshMakeData(IGameDef *gamedef); + MeshMakeData(IGameDef *gamedef, bool use_shaders); /* Copy central data directly from block, and other data from @@ -101,11 +104,18 @@ public: // Returns true if anything has been changed. bool animate(bool faraway, float time, int crack, u32 daynight_ratio); - scene::SMesh* getMesh() + scene::SMesh *getMesh() { return m_mesh; } + MinimapMapblock *moveMinimapMapblock() + { + MinimapMapblock *p = m_minimap_mapblock; + m_minimap_mapblock = NULL; + return p; + } + bool isAnimationForced() const { return m_animation_force_timer == 0; @@ -121,7 +131,10 @@ public: private: scene::SMesh *m_mesh; + MinimapMapblock *m_minimap_mapblock; IGameDef *m_gamedef; + ITextureSource *m_tsrc; + IShaderSource *m_shdrsrc; bool m_enable_shaders; bool m_enable_highlighting; @@ -164,13 +177,12 @@ struct PreMeshBuffer { TileSpec tile; std::vector<u16> indices; - std::vector<video::S3DVertex> vertices; + std::vector<video::S3DVertexTangents> vertices; }; struct MeshCollector { std::vector<PreMeshBuffer> prebuffers; - void append(const TileSpec &material, const video::S3DVertex *vertices, u32 numVertices, const u16 *indices, u32 numIndices); |