--- a/src/gl/common.h Sun Jan 19 14:25:57 2020 +0200 +++ b/src/gl/common.h Wed Jan 22 00:23:29 2020 +0200 @@ -129,31 +129,27 @@ } // Vbo names - enum class VboClass : std::uint8_t + enum class ArrayClass : std::uint8_t { Lines, Triangles, Quads, ConditionalLines }; - constexpr int numVboClasses = 4; + constexpr ArrayClass ARRAY_CLASSES[] = {ArrayClass::Lines, ArrayClass::Triangles, ArrayClass::Quads, ArrayClass::ConditionalLines}; + constexpr int NUM_ARRAY_CLASSES = countof(ARRAY_CLASSES); + constexpr int FLOATS_PER_VERTEX = 7; // Types of vbo per object enum class VboSubclass : std::uint8_t { - Surfaces, - RegularColors, - PickColors, - BfcFrontColors, - BfcBackColors, - RandomColors, - Normals, - InvertedNormals + VertexData, + Normals }; - constexpr int numVboSubclasses = 8; + constexpr int numVboSubclasses = 2; // Amount of vbos overall - constexpr int numVbos = gl::numVboClasses * gl::numVboSubclasses; + constexpr int numVbos = gl::NUM_ARRAY_CLASSES * gl::numVboSubclasses; enum class RenderStyle { @@ -162,4 +158,9 @@ BfcRedGreen, RandomColors }; + + inline void* offset(const int n) + { + return reinterpret_cast<void*>(n); + } }