summaryrefslogtreecommitdiffstats
path: root/game/client/world/voxel_atlas.hh
diff options
context:
space:
mode:
Diffstat (limited to 'game/client/world/voxel_atlas.hh')
-rw-r--r--game/client/world/voxel_atlas.hh32
1 files changed, 32 insertions, 0 deletions
diff --git a/game/client/world/voxel_atlas.hh b/game/client/world/voxel_atlas.hh
new file mode 100644
index 0000000..f94c6bd
--- /dev/null
+++ b/game/client/world/voxel_atlas.hh
@@ -0,0 +1,32 @@
+#ifndef CLIENT_VOXEL_ATLAS_HH
+#define CLIENT_VOXEL_ATLAS_HH 1
+#pragma once
+
+namespace world
+{
+struct AtlasStrip final {
+ std::size_t offset;
+ std::size_t plane;
+};
+} // namespace world
+
+namespace world::voxel_atlas
+{
+void create(int width, int height, std::size_t count);
+void destroy(void);
+} // namespace world::voxel_atlas
+
+namespace world::voxel_atlas
+{
+std::size_t plane_count(void);
+GLuint plane_texture(std::size_t plane_id);
+void generate_mipmaps(void);
+} // namespace world::voxel_atlas
+
+namespace world::voxel_atlas
+{
+AtlasStrip* find_or_load(const std::vector<std::string>& paths);
+AtlasStrip* find(const std::vector<std::string>& paths);
+} // namespace world::voxel_atlas
+
+#endif // CLIENT_VOXEL_ATLAS_HH