Plasma Engine  2.0
Loading...
Searching...
No Matches
plGALShaderByteCode Class Reference

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>

Inheritance diagram for plGALShaderByteCode:

Public Member Functions

const void * GetByteCode () const
 
plUInt32 GetSize () const
 
bool IsValid () const
 
- Public Member Functions inherited from plRefCounted
virtual ~plRefCounted ()=default
 Adds a virtual destructor.
 
- Public Member Functions inherited from plRefCountingImpl
 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< plGALShaderStagem_Stage = plGALShaderStage::ENUM_COUNT
 
bool m_bWasCompiledWithDebug = false
 

Detailed Description

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.


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