Lugdunum  0.1.0
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
lug::Graphics::Vulkan::Render::Pipeline::Id Struct Reference

Id of the Pipeline. It's a concatenation of three parts: PrimitivePart, MaterialPart and PipelinePart It allows to uniquely identify a pipeline using these characteristics. More...

#include <Pipeline.hpp>

Collaboration diagram for lug::Graphics::Vulkan::Render::Pipeline::Id:
[legend]

Classes

struct  ExtraPart
 
struct  MaterialPart
 Describes the material. How is the material composed, with textures, no textures, etc, to be used to construct unique pipelines. More...
 
struct  PrimitivePart
 Describes the primitive. More...
 

Public Member Functions

 Id (uint32_t id=0)
 
 operator uint32_t () const
 
 operator bool () const
 
bool operator== (const Id &other) const
 
bool operator!= (const Id &other) const
 
bool operator< (const Id &other) const
 
PrimitivePart getPrimitivePart ()
 
MaterialPart getMaterialPart ()
 
ExtraPart getExtraPart ()
 

Static Public Member Functions

static Id create (PrimitivePart primitivePart, MaterialPart materialPart, ExtraPart extraPart)
 Create a pipeline id. More...
 

Public Attributes

union {
   struct {
      uint32_t   primitivePart: 10
 
      uint32_t   materialPart: 10
 
      uint32_t   extraPart: 5
 
   } 
 
   uint32_t   value
 
}; 
 

Detailed Description

Id of the Pipeline. It's a concatenation of three parts: PrimitivePart, MaterialPart and PipelinePart It allows to uniquely identify a pipeline using these characteristics.

Definition at line 33 of file Pipeline.hpp.

Constructor & Destructor Documentation

◆ Id()

lug::Graphics::Vulkan::Render::Pipeline::Id::Id ( uint32_t  id = 0)
inline

Definition at line 105 of file Pipeline.hpp.

Member Function Documentation

◆ operator uint32_t()

lug::Graphics::Vulkan::Render::Pipeline::Id::operator uint32_t ( ) const
inlineexplicit

Definition at line 107 of file Pipeline.hpp.

◆ operator bool()

lug::Graphics::Vulkan::Render::Pipeline::Id::operator bool ( ) const
inlineexplicit

Definition at line 111 of file Pipeline.hpp.

◆ operator==()

bool lug::Graphics::Vulkan::Render::Pipeline::Id::operator== ( const Id other) const
inline

Definition at line 115 of file Pipeline.hpp.

◆ operator!=()

bool lug::Graphics::Vulkan::Render::Pipeline::Id::operator!= ( const Id other) const
inline

Definition at line 119 of file Pipeline.hpp.

◆ operator<()

bool lug::Graphics::Vulkan::Render::Pipeline::Id::operator< ( const Id other) const
inline

Definition at line 123 of file Pipeline.hpp.

◆ getPrimitivePart()

PrimitivePart lug::Graphics::Vulkan::Render::Pipeline::Id::getPrimitivePart ( )
inline

Definition at line 127 of file Pipeline.hpp.

◆ getMaterialPart()

MaterialPart lug::Graphics::Vulkan::Render::Pipeline::Id::getMaterialPart ( )
inline

Definition at line 133 of file Pipeline.hpp.

◆ getExtraPart()

ExtraPart lug::Graphics::Vulkan::Render::Pipeline::Id::getExtraPart ( )
inline

Definition at line 139 of file Pipeline.hpp.

◆ create()

static Id lug::Graphics::Vulkan::Render::Pipeline::Id::create ( PrimitivePart  primitivePart,
MaterialPart  materialPart,
ExtraPart  extraPart 
)
inlinestatic

Create a pipeline id.

Parameters
[in]primitivePartThe primitive part. It should be created manually beforehand.
[in]materialPartThe material part. It should be created manually beforehand.
[in]extraPartThe extra part. It should be created manually beforehand.
Returns
The created id.

Definition at line 154 of file Pipeline.hpp.

Member Data Documentation

◆ primitivePart

uint32_t lug::Graphics::Vulkan::Render::Pipeline::Id::primitivePart

Definition at line 97 of file Pipeline.hpp.

◆ materialPart

uint32_t lug::Graphics::Vulkan::Render::Pipeline::Id::materialPart

Definition at line 98 of file Pipeline.hpp.

◆ extraPart

uint32_t lug::Graphics::Vulkan::Render::Pipeline::Id::extraPart

Definition at line 99 of file Pipeline.hpp.

◆ value

uint32_t lug::Graphics::Vulkan::Render::Pipeline::Id::value

Definition at line 102 of file Pipeline.hpp.

◆ @9

union { ... }

The documentation for this struct was generated from the following file: