summaryrefslogtreecommitdiff
path: root/game/terrain.h
diff options
context:
space:
mode:
Diffstat (limited to 'game/terrain.h')
-rw-r--r--game/terrain.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/game/terrain.h b/game/terrain.h
index eaec01d..1a63296 100644
--- a/game/terrain.h
+++ b/game/terrain.h
@@ -41,9 +41,16 @@ private:
struct SurfaceKey {
const Surface * surface;
GlobalPosition2D basePosition;
- bool operator<(const SurfaceKey &) const;
+ inline bool operator<(const SurfaceKey &) const;
};
+ using SurfaceIndices = std::map<SurfaceKey, std::vector<GLuint>>;
+ void copyVerticesToBuffer() const;
+ [[nodiscard]] SurfaceIndices mapSurfaceFacesToIndices() const;
+ void copyIndicesToBuffers(const SurfaceIndices &);
+ void pruneOrphanMeshes(const SurfaceIndices &);
+ [[nodiscard]] inline GlobalPosition2D getTile(const FaceHandle &) const;
+
glBuffer verticesBuffer;
std::map<SurfaceKey, SurfaceArrayBuffer> meshes;
Texture::Ptr grass = std::make_shared<Texture>("grass.png");