#pragma once #include namespace mln { namespace shaders { struct alignas(16) WideVectorUniformsUBO { /* 0 */ std::array mvpMatrix; /* 64 */ std::array mvpMatrixDiff; /* 128 */ std::array mvMatrix; /* 192 */ std::array mvMatrixDiff; /* 256 */ std::array pMatrix; /* 320 */ std::array pMatrixDiff; /* 384 */ std::array frameSize; /* 392 */ float pad1; /* 396 */ float pad2; /* 400 */ }; static_assert(sizeof(WideVectorUniformsUBO) == 25 * 16); struct alignas(16) WideVectorUniformWideVecUBO { /* 0 */ std::array color; /* 16 */ float w2; /* 20 */ float offset; /* 24 */ float edge; /* 28 */ float texRepeat; /* 32 */ std::array texOffset; /* 40 */ float miterLimit; /* 44 */ int32_t join; /* 48 */ int32_t cap; /* 52 */ int32_t hasExp; /* 56 */ float interClipLimit; /* 60 */ float pad1; /* 64 */ }; static_assert(sizeof(WideVectorUniformWideVecUBO) == 4 * 16); struct VertexTriWideVecB { // x, y offset around the center std::array screenPos; std::array color; int index; }; static_assert(sizeof(VertexTriWideVecB) == 32); struct VertexTriWideVecInstance { std::array center; std::array color; int32_t prev; int32_t next; int64_t pad1; }; static_assert(sizeof(VertexTriWideVecInstance) == 48); } // namespace shaders } // namespace mln