#ifndef RENDERER_H__ #define RENDERER_H__ #include #include #include "../SQCSim-common/world.h" #include "../SQCSim-common/transformation.h" #include "define.h" #include "mesh.h" #include "textureatlas.h" #include "shader.h" #include "remoteplayer.h" class Renderer { private: Array2d m_meshes = Array2d(WORLD_SIZE_X, WORLD_SIZE_Y); TextureAtlas* m_playertext = nullptr; Shader* m_playershader = nullptr; public: Renderer(); ~Renderer(); void UpdateMesh(World* origin, const Vector3f& player, BlockInfo* blockinfo[BTYPE_LAST]); void RenderWorld(World* origin, int& rendercount, const Vector3f& player_pos, const Vector3f& player_dir, Transformation& world, Shader& shader, TextureAtlas& atlas) const; void RenderPlayer(Player* player, Transformation tran) const; void RenderPlayer(RemotePlayer* rplayer, const Vector3f& player_pos, const Vector3f& player_dir) const; }; #endif