diff options
Diffstat (limited to 'game/client/chunk_quad.hh')
| -rw-r--r-- | game/client/chunk_quad.hh | 39 |
1 files changed, 0 insertions, 39 deletions
diff --git a/game/client/chunk_quad.hh b/game/client/chunk_quad.hh deleted file mode 100644 index 337bb1e..0000000 --- a/game/client/chunk_quad.hh +++ /dev/null @@ -1,39 +0,0 @@ -#ifndef CLIENT_CHUNK_QUAD_HH -#define CLIENT_CHUNK_QUAD_HH 1 -#pragma once - -#include "core/constexpr.hh" - -#include "shared/voxel_registry.hh" - -// [0] XXXXXXXXYYYYYYYYZZZZZZZZWWWWHHHH -// [1] FFFFTTTTTTTTTTTAAAAA------------ -using ChunkQuad = std::array<std::uint32_t, 2>; - -constexpr inline static ChunkQuad make_chunk_quad( - const glm::fvec3& position, const glm::fvec2& size, voxel_facing facing, std::size_t texture, std::size_t frames) -{ - ChunkQuad result = {}; - result[0] = 0x00000000; - result[1] = 0x00000000; - - // [0] XXXXXXXXYYYYYYYYZZZZZZZZ-------- - result[0] |= (0x000000FFU & static_cast<std::uint32_t>(position.x * 16.0f)) << 24U; - result[0] |= (0x000000FFU & static_cast<std::uint32_t>(position.y * 16.0f)) << 16U; - result[0] |= (0x000000FFU & static_cast<std::uint32_t>(position.z * 16.0f)) << 8U; - - // [0] ------------------------WWWWHHHH - result[0] |= (0x0000000FU & static_cast<std::uint32_t>(size.x * 16.0f - 1.0f)) << 4U; - result[0] |= (0x0000000FU & static_cast<std::uint32_t>(size.y * 16.0f - 1.0f)); - - // [1] FFFF---------------------------- - result[1] |= (0x0000000FU & static_cast<std::uint32_t>(facing)) << 28U; - - // [1] ----TTTTTTTTTTTAAAAA------------ - result[1] |= (0x000007FFU & static_cast<std::uint32_t>(texture)) << 17U; - result[1] |= (0x0000001FU & static_cast<std::uint32_t>(frames)) << 12U; - - return result; -} - -#endif /* CLIENT_CHUNK_QUAD_HH */ |
