36 lines
676 B
C++
36 lines
676 B
C++
#pragma once
|
|
|
|
#include <type_traits>
|
|
#include "mesh_shader_components.hpp"
|
|
#include "point_cloud_shader_components.hpp"
|
|
|
|
namespace assets::shader_components
|
|
{
|
|
|
|
enum class stage : z3d::u8
|
|
{
|
|
vertex = 0,
|
|
tesselation_control = 1,
|
|
tesselation_evaluation = 2,
|
|
geometry = 3,
|
|
fragment = 4
|
|
};
|
|
|
|
inline constexpr std::size_t count = 5;
|
|
|
|
inline constexpr auto stage_names = std::array<std::string_view, count>{
|
|
"vertex",
|
|
"tesselation_control",
|
|
"tesselation_evaluation",
|
|
"geometry",
|
|
"fragment"
|
|
};
|
|
|
|
|
|
using flags = std::make_unsigned_t<std::common_type_t<
|
|
std::underlying_type_t<mesh_shader_components::flags>,
|
|
std::underlying_type_t<point_cloud_shader_components::flags>
|
|
>>;
|
|
|
|
}
|