Cogs.Core
Public Member Functions | Public Attributes | Private Attributes | Friends | List of all members
Cogs::Core::EnginePermutation Struct Reference

Public Member Functions

void initialize (Context *context, EnginePermutationDefinition *definition)
 
const EnginePermutationDefinitiongetDefinition () const
 
EnginePermutationDefinitiongetDefinition ()
 
std::span< const ShaderVariantDefinitiongetVariants () const
 
std::span< const ShaderVariantSelectorgetSelectors () const
 
void setVariant (const StringView &key, const StringView &value)
 
void setVariant (const StringView &key, const char *value)
 
void setVariant (const StringView &key, bool value)
 
void setVariant (const StringView &key, int value)
 
bool hasVariant (const StringView &key)
 
void setProperty (const StringView &name, const void *value, int valueSize)
 
bool isDirty () const
 
bool isDepthOnly () const
 
bool isShadowPass () const
 
bool isShadingPass () const
 
bool hasBuiltins () const
 
bool isReverseDepth () const
 
size_t getCode () const
 
size_t getNameHash () const
 
size_t getIndex () const
 
const std::string & getName () const
 
void updateFlags ()
 

Public Attributes

RenderItemFlags requiredFlags = RenderItemFlags::None
 
size_t permutationMask = 0
 
ConstantBuffers constantBuffers
 
std::vector< Cogs::BufferHandlebufferHandles
 

Private Attributes

size_t code = 0
 
bool dirty = false
 
size_t nameHash = 0
 
size_t index = 0
 
EnginePermutationFlags flags = EnginePermutationFlags::None
 
EnginePermutationDefinitiondefinition = nullptr
 
ShaderVariantSelectors selectors
 

Friends

struct EnginePermutations
 

Detailed Description

Definition at line 58 of file EnginePermutations.h.

Member Function Documentation

◆ getCode()

size_t Cogs::Core::EnginePermutation::getCode ( ) const

Definition at line 438 of file EnginePermutations.cpp.

◆ getDefinition() [1/2]

EnginePermutationDefinition * Cogs::Core::EnginePermutation::getDefinition ( )
inline

Definition at line 63 of file EnginePermutations.h.

◆ getDefinition() [2/2]

const EnginePermutationDefinition * Cogs::Core::EnginePermutation::getDefinition ( ) const
inline

Definition at line 62 of file EnginePermutations.h.

◆ getIndex()

size_t Cogs::Core::EnginePermutation::getIndex ( ) const
inline

Definition at line 86 of file EnginePermutations.h.

◆ getName()

const std::string & Cogs::Core::EnginePermutation::getName ( ) const
inline

Definition at line 88 of file EnginePermutations.h.

◆ getNameHash()

size_t Cogs::Core::EnginePermutation::getNameHash ( ) const
inline

Definition at line 85 of file EnginePermutations.h.

◆ getSelectors()

std::span< const ShaderVariantSelector > Cogs::Core::EnginePermutation::getSelectors ( ) const
inline

Definition at line 66 of file EnginePermutations.h.

◆ getVariants()

std::span< const ShaderVariantDefinition > Cogs::Core::EnginePermutation::getVariants ( ) const
inline

Definition at line 65 of file EnginePermutations.h.

◆ hasBuiltins()

bool Cogs::Core::EnginePermutation::hasBuiltins ( ) const
inline

Definition at line 81 of file EnginePermutations.h.

◆ hasVariant()

bool Cogs::Core::EnginePermutation::hasVariant ( const StringView key)

Definition at line 412 of file EnginePermutations.cpp.

◆ initialize()

void Cogs::Core::EnginePermutation::initialize ( Context context,
EnginePermutationDefinition definition 
)

Definition at line 307 of file EnginePermutations.cpp.

◆ isDepthOnly()

bool Cogs::Core::EnginePermutation::isDepthOnly ( ) const
inline

Definition at line 78 of file EnginePermutations.h.

◆ isDirty()

bool Cogs::Core::EnginePermutation::isDirty ( ) const
inline

Definition at line 77 of file EnginePermutations.h.

◆ isReverseDepth()

bool Cogs::Core::EnginePermutation::isReverseDepth ( ) const
inline

Definition at line 82 of file EnginePermutations.h.

◆ isShadingPass()

bool Cogs::Core::EnginePermutation::isShadingPass ( ) const
inline

Definition at line 80 of file EnginePermutations.h.

◆ isShadowPass()

bool Cogs::Core::EnginePermutation::isShadowPass ( ) const
inline

Definition at line 79 of file EnginePermutations.h.

◆ setProperty()

void Cogs::Core::EnginePermutation::setProperty ( const StringView name,
const void *  value,
int  valueSize 
)

Definition at line 419 of file EnginePermutations.cpp.

◆ setVariant() [1/4]

void Cogs::Core::EnginePermutation::setVariant ( const StringView key,
bool  value 
)

Definition at line 380 of file EnginePermutations.cpp.

◆ setVariant() [2/4]

void Cogs::Core::EnginePermutation::setVariant ( const StringView key,
const char *  value 
)
inline

Definition at line 69 of file EnginePermutations.h.

◆ setVariant() [3/4]

void Cogs::Core::EnginePermutation::setVariant ( const StringView key,
const StringView value 
)

Definition at line 350 of file EnginePermutations.cpp.

◆ setVariant() [4/4]

void Cogs::Core::EnginePermutation::setVariant ( const StringView key,
int  value 
)

Definition at line 396 of file EnginePermutations.cpp.

◆ updateFlags()

void Cogs::Core::EnginePermutation::updateFlags ( )

Definition at line 341 of file EnginePermutations.cpp.

Friends And Related Function Documentation

◆ EnginePermutations

friend struct EnginePermutations
friend

Definition at line 108 of file EnginePermutations.h.

Member Data Documentation

◆ bufferHandles

std::vector<Cogs::BufferHandle> Cogs::Core::EnginePermutation::bufferHandles

Definition at line 97 of file EnginePermutations.h.

◆ code

size_t Cogs::Core::EnginePermutation::code = 0
mutableprivate

Definition at line 100 of file EnginePermutations.h.

◆ constantBuffers

ConstantBuffers Cogs::Core::EnginePermutation::constantBuffers

Definition at line 96 of file EnginePermutations.h.

◆ definition

EnginePermutationDefinition* Cogs::Core::EnginePermutation::definition = nullptr
private

Definition at line 105 of file EnginePermutations.h.

◆ dirty

bool Cogs::Core::EnginePermutation::dirty = false
mutableprivate

Definition at line 101 of file EnginePermutations.h.

◆ flags

EnginePermutationFlags Cogs::Core::EnginePermutation::flags = EnginePermutationFlags::None
private

Definition at line 104 of file EnginePermutations.h.

◆ index

size_t Cogs::Core::EnginePermutation::index = 0
private

Definition at line 103 of file EnginePermutations.h.

◆ nameHash

size_t Cogs::Core::EnginePermutation::nameHash = 0
private

Definition at line 102 of file EnginePermutations.h.

◆ permutationMask

size_t Cogs::Core::EnginePermutation::permutationMask = 0

Definition at line 94 of file EnginePermutations.h.

◆ requiredFlags

RenderItemFlags Cogs::Core::EnginePermutation::requiredFlags = RenderItemFlags::None

Definition at line 93 of file EnginePermutations.h.

◆ selectors

ShaderVariantSelectors Cogs::Core::EnginePermutation::selectors
private

Definition at line 106 of file EnginePermutations.h.


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