![]() |
Plasma Engine
2.0
|
This class wraps shader byte code storage. Since byte code can have different requirements for alignment, padding etc. this class manages it. Also since byte code is shared between multiple shaders (e.g. same vertex shaders for different pixel shaders) the instances of the byte codes are reference counted. More...
#include <ShaderByteCode.h>
Public Member Functions | |
const void * | GetByteCode () const |
plUInt32 | GetSize () const |
bool | IsValid () const |
![]() | |
virtual | ~plRefCounted ()=default |
Adds a virtual destructor. | |
![]() | |
plRefCountingImpl ()=default | |
Constructor. | |
plRefCountingImpl (const plRefCountingImpl &rhs) | |
void | operator= (const plRefCountingImpl &rhs) |
plInt32 | AddRef () const |
Increments the reference counter. Returns the new reference count. | |
plInt32 | ReleaseRef () const |
Decrements the reference counter. Returns the new reference count. | |
bool | IsReferenced () const |
Returns true if the reference count is greater than 0, false otherwise. | |
plInt32 | GetRefCount () const |
Returns the current reference count. | |
Public Attributes | |
plDynamicArray< plUInt8 > | m_ByteCode |
plHybridArray< plShaderResourceBinding, 8 > | m_ShaderResourceBindings |
plHybridArray< plShaderVertexInputAttribute, 8 > | m_ShaderVertexInput |
plUInt8 | m_uiTessellationPatchControlPoints = 0 |
plEnum< plGALShaderStage > | m_Stage = plGALShaderStage::ENUM_COUNT |
bool | m_bWasCompiledWithDebug = false |
This class wraps shader byte code storage. Since byte code can have different requirements for alignment, padding etc. this class manages it. Also since byte code is shared between multiple shaders (e.g. same vertex shaders for different pixel shaders) the instances of the byte codes are reference counted.