LiteFX 0.3.1.2022
Computer Graphics Engine
LiteFX::Rendering::ShaderProgram< TShaderModule > Class Template Referenceabstract

Represents a shader program, consisting of multiple IShaderModules. More...

#include <rendering.hpp>

Inherits LiteFX::Rendering::IShaderProgram.

Public Types

using shader_module_type = TShaderModule
 

Public Member Functions

virtual ~ShaderProgram () noexcept=default
 
virtual Array< const shader_module_type * > modules () const noexcept=0
 
- Public Member Functions inherited from LiteFX::Rendering::IShaderProgram
virtual ~IShaderProgram () noexcept=default
 
Array< const IShaderModule * > modules () const noexcept
 Returns the modules, the shader program is build from. More...
 
SharedPtr< IPipelineLayoutreflectPipelineLayout () const
 Uses shader reflection to extract the pipeline layout of a shader. May not be available in all backends. More...
 

Detailed Description

template<typename TShaderModule>
requires rtti::implements<TShaderModule, IShaderModule>
class LiteFX::Rendering::ShaderProgram< TShaderModule >

Represents a shader program, consisting of multiple IShaderModules.

Template Parameters
TShaderModuleThe type of the shader module. Must implement IShaderModule.

Member Typedef Documentation

◆ shader_module_type

template<typename TShaderModule >
using LiteFX::Rendering::ShaderProgram< TShaderModule >::shader_module_type = TShaderModule

Constructor & Destructor Documentation

◆ ~ShaderProgram()

template<typename TShaderModule >
virtual LiteFX::Rendering::ShaderProgram< TShaderModule >::~ShaderProgram ( )
virtualdefaultnoexcept

Member Function Documentation

◆ modules()

template<typename TShaderModule >
virtual Array< const shader_module_type * > LiteFX::Rendering::ShaderProgram< TShaderModule >::modules ( ) const
pure virtualnoexcept