59 lines
1.0 KiB
C++
59 lines
1.0 KiB
C++
#pragma once
|
|
|
|
#include "config/primitives.hpp"
|
|
#include "util/enum_bitfield_operators.hpp"
|
|
#include <array>
|
|
#include <string_view>
|
|
|
|
namespace assets::mesh_shader_components
|
|
{
|
|
|
|
namespace indices
|
|
{
|
|
enum : z3d::size
|
|
{
|
|
face,
|
|
line,
|
|
point,
|
|
luminance,
|
|
color,
|
|
alpha,
|
|
color_texture,
|
|
uniform_lighting,
|
|
textured_lighting,
|
|
uniform_color
|
|
};
|
|
}
|
|
|
|
enum class flags : std::uint16_t
|
|
{
|
|
none = 0,
|
|
face = 1 << indices::face,
|
|
line = 1 << indices::line,
|
|
point = 1 << indices::point,
|
|
luminance = 1 << indices::luminance,
|
|
color = 1 << indices::color,
|
|
alpha = 1 << indices::alpha,
|
|
color_texture = 1 << indices::color_texture,
|
|
uniform_lighting = 1 << indices::uniform_lighting,
|
|
textured_lighting = 1 << indices::textured_lighting,
|
|
uniform_color = 1 << indices::uniform_color
|
|
};
|
|
|
|
constexpr inline auto names = std::array<std::string_view, 10>{
|
|
"face",
|
|
"line",
|
|
"point",
|
|
"luminance",
|
|
"color",
|
|
"alpha",
|
|
"color_texture",
|
|
"uniform_lighting",
|
|
"textured_lighting",
|
|
"uniform_color"
|
|
};
|
|
|
|
}
|
|
|
|
DEFINE_ENUM_BITFIELD_OPERATORS(assets::mesh_shader_components::flags)
|