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