51 explicit operator uint32_t() {
74 explicit operator uint32_t() {
90 explicit operator uint32_t() {
105 Id(uint32_t
id = 0): value(id) {}
107 explicit operator uint32_t()
const {
111 explicit operator bool()
const {
116 return value == other.
value;
120 return value != other.
value;
124 return value < other.
value;
129 tmp.
value = primitivePart;
135 tmp.
value = materialPart;
141 tmp.
value = extraPart;
158 id.materialPart =
static_cast<uint32_t
>(materialPart);
159 id.extraPart =
static_cast<uint32_t
>(extraPart);
186 static std::vector<uint32_t> buildShaderFromFile(std::string filename,
Type type,
Pipeline::Id id);
187 static std::vector<uint32_t> buildShaderFromString(std::string filename, std::string content,
Type type,
Pipeline::Id id);
207 static inline Id getBaseId();
232 template<>
struct hash<
lug::Graphics::Vulkan::Render::Pipeline::Id> {
234 return hash<uint32_t>()(
id.value);
Id of the Pipeline. It's a concatenation of three parts: PrimitivePart, MaterialPart and PipelinePart...
Describes the material. How is the material composed, with textures, no textures, etc...
uint32_t occlusionInfo
0b00 texture with UV0, 0b01 texture with UV1, 0b10 texture with UV2, 0b11 no texture.
uint32_t countColor
The number of colors (maximum 3).
uint32_t baseColorInfo
0b00 texture with UV0, 0b01 texture with UV1, 0b10 texture with UV2, 0b11 no texture.
size_t operator()(const lug::Graphics::Vulkan::Render::Pipeline::Id &id) const
uint32_t positionVertexData
0 if no attribute position.
Dummy class for a shared pointer.
bool operator==(const Id &other) const
uint32_t primitiveMode
The primitive mode.
static Id create(PrimitivePart primitivePart, MaterialPart materialPart, ExtraPart extraPart)
Create a pipeline id.
PrimitivePart getPrimitivePart()
uint32_t emissiveInfo
0b00 texture with UV0, 0b01 texture with UV1, 0b10 texture with UV2, 0b11 no texture.
bool operator!=(const Id &other) const
uint32_t normalVertexData
0 if no attribute normal.
API::GraphicsPipeline _pipeline
uint32_t metallicRoughnessInfo
0b00 texture with UV0, 0b01 texture with UV1, 0b10 texture with UV2, 0b11 no texture.
MaterialPart getMaterialPart()
uint32_t normalInfo
0b00 texture with UV0, 0b01 texture with UV1, 0b10 texture with UV2, 0b11 no texture.
uint32_t tangentVertexData
0 if no attribute tangeant.
bool operator<(const Id &other) const
Class for the Vulkan pipeline, Render side.
uint32_t countTexCoord
The number of texcoord (maximum 3).