Move Vectormath main
C++20 game and graphics mathematics
Loading...
Searching...
No Matches
ShaderLayouts.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstddef>
4#include <type_traits>
5
7
8namespace mv::math::gpu
9{
10 struct alignas(16) PositionRadius16
11 {
13 float Radius{};
14 };
15
16 struct alignas(16) Aabb3fSlots16
17 {
20 };
21} // namespace mv::math::gpu
22
23static_assert(sizeof(mv::math::gpu::PositionRadius16) == 16);
24static_assert(alignof(mv::math::gpu::PositionRadius16) == 16);
25static_assert(offsetof(mv::math::gpu::PositionRadius16, Position) == 0);
26static_assert(offsetof(mv::math::gpu::PositionRadius16, Radius) == 12);
27static_assert(std::is_trivially_copyable_v<mv::math::gpu::PositionRadius16>);
28static_assert(std::is_standard_layout_v<mv::math::gpu::PositionRadius16>);
29
30static_assert(sizeof(mv::math::gpu::Aabb3fSlots16) == 32);
31static_assert(alignof(mv::math::gpu::Aabb3fSlots16) == 16);
32static_assert(offsetof(mv::math::gpu::Aabb3fSlots16, Minimum) == 0);
33static_assert(offsetof(mv::math::gpu::Aabb3fSlots16, Maximum) == 16);
34static_assert(std::is_trivially_copyable_v<mv::math::gpu::Aabb3fSlots16>);
35static_assert(std::is_standard_layout_v<mv::math::gpu::Aabb3fSlots16>);