Berserk
Public Types | Public Member Functions | Protected Attributes | List of all members
RHIShader Class Referenceabstract

Compiled and linked native shader. More...

#include <RHIShader.hpp>

Inheritance diagram for RHIShader:
Inheritance graph
[legend]
Collaboration diagram for RHIShader:
Collaboration graph
[legend]

Public Types

enum class  Status : uint32 { PendingCompilation = 0 , Compiled = 1 , FailedCompile = 2 }
 Program may have different status (incorrect shaders mush not crash the application) More...
 

Public Member Functions

BRK_API ~RHIShader () override=default
 
virtual BRK_API Status GetCompilationStatus () const =0
 
virtual BRK_API String GetCompilerMessage () const =0
 
virtual BRK_API Ref< const RHIShaderMetaGetShaderMeta () const =0
 
const StringNameGetShaderName () const
 
RHIShaderLanguage GetLanguage () const
 
const std::vector< RHIShaderStageDesc > & GetStages () const
 
- Public Member Functions inherited from RHIResource
BRK_API ~RHIResource () override=default
 
- Public Member Functions inherited from RefCnt
virtual ~RefCnt ()
 
bool IsUnique () const
 
std::int32_t GetRefs () const
 
std::int32_t AddRef () const
 
std::int32_t RelRef () const
 

Protected Attributes

StringName mName
 
RHIShaderLanguage mLanguage
 
std::vector< RHIShaderStageDescmStages
 

Additional Inherited Members

- Protected Member Functions inherited from RHIResource
void Destroy () const override
 

Detailed Description

Compiled and linked native shader.

Member Enumeration Documentation

◆ Status

enum RHIShader::Status : uint32
strong

Program may have different status (incorrect shaders mush not crash the application)

Enumerator
PendingCompilation 

Program pending to be compiled.

Compiled 

Program successfully compiled.

FailedCompile 

Failed to compile and link program.

Constructor & Destructor Documentation

◆ ~RHIShader()

BRK_API RHIShader::~RHIShader ( )
overridedefault

Member Function Documentation

◆ GetCompilationStatus()

virtual BRK_API Status RHIShader::GetCompilationStatus ( ) const
pure virtual

Check program status: whether the program was compiled and all stages linked by RHI.

Note
An attempt to bind not-compiled program will cause abort in debug mode.
It is safe to call this function from any thread.
Returns
Compilation status of the program

Implemented in GLShader.

◆ GetCompilerMessage()

virtual BRK_API String RHIShader::GetCompilerMessage ( ) const
pure virtual

Get compiler message about this program compilation. If compilation finished with an error returns error description, otherwise nothing.

Note
It is safe to call this function from any thread.
Returns
Error message about this program compilation

Implemented in GLShader.

◆ GetLanguage()

RHIShaderLanguage RHIShader::GetLanguage ( ) const
inline
Returns
Source code language type

◆ GetShaderMeta()

virtual BRK_API Ref<const RHIShaderMeta> RHIShader::GetShaderMeta ( ) const
pure virtual

Get compiled program meta information for params & buffers communication.

Note
For PendingCompilation or FailedCompile is not valid function call.
It is safe to call this function from any thread.
Returns
Reference to program meta info if present

Implemented in GLShader.

◆ GetShaderName()

const StringName& RHIShader::GetShaderName ( ) const
inline
Returns
Shader name for debugging

◆ GetStages()

const std::vector<RHIShaderStageDesc>& RHIShader::GetStages ( ) const
inline
Returns
Source code per stages

Member Data Documentation

◆ mLanguage

RHIShaderLanguage RHIShader::mLanguage
protected

Source code language type

◆ mName

StringName RHIShader::mName
protected

Shader name for debugging

◆ mStages

std::vector<RHIShaderStageDesc> RHIShader::mStages
protected

Source code per stages


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