LiteFX 0.4.1.2025
Computer Graphics Engine
|
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 | |
~ShaderProgram () noexcept override=default | |
virtual const Array< UniquePtr< const shader_module_type > > & | modules () const noexcept=0 |
![]() | |
~IShaderProgram () noexcept override=default | |
IShaderProgram (const IShaderProgram &)=delete | |
IShaderProgram (IShaderProgram &&) noexcept=delete | |
auto | operator= (const IShaderProgram &)=delete |
auto | operator= (IShaderProgram &&) noexcept=delete |
const IShaderModule * | operator[] (StringView name) const |
Returns a pointer to shader module based on its (case-sensitive) name. | |
bool | contains (StringView name) const |
Returns true , if the program contains a shader module with the provided name or file name and false otherwise. | |
bool | contains (const IShaderModule &module) const |
Returns true , if the program contains the provided shader module and false otherwise. | |
Enumerable< const IShaderModule & > | modules () const |
Returns the modules, the shader program is build from. | |
SharedPtr< IPipelineLayout > | reflectPipelineLayout () const |
Uses shader reflection to extract the pipeline layout of a shader. May not be available in all backends. | |
ShaderRecordCollection | buildShaderRecordCollection () const noexcept |
Builds a shader record collection based on the current shader program. | |
![]() | |
virtual | ~SharedObject () noexcept=default |
Destroys the shared object. | |
template<typename TSelf > | |
auto | shared_from_this (this TSelf &&self) noexcept |
Returns a shared pointer to the current object instance. | |
template<typename TSelf > | |
auto | weak_from_this (this TSelf &&self) noexcept -> WeakPtr< std::remove_reference_t< TSelf > > |
Returns a weak pointer to the current object instance. | |
Protected Member Functions | |
ShaderProgram () noexcept=default | |
ShaderProgram (const ShaderProgram &)=default | |
ShaderProgram (ShaderProgram &&) noexcept=default | |
ShaderProgram & | operator= (const ShaderProgram &)=default |
ShaderProgram & | operator= (ShaderProgram &&) noexcept=default |
![]() | |
IShaderProgram () noexcept=default | |
![]() | |
SharedObject () noexcept=default | |
Initializes a new shared object. | |
SharedObject (SharedObject &&) noexcept=default | |
SharedObject (const SharedObject &)=default | |
SharedObject & | operator= (SharedObject &&) noexcept=default |
SharedObject & | operator= (const SharedObject &)=default |
Additional Inherited Members | |
![]() | |
template<typename T , typename... TArgs> | |
static auto | create (TArgs &&... args) -> SharedPtr< T > |
Generic factory method used to create instances of the shared object. | |
Represents a shader program, consisting of multiple IShaderModules.
TShaderModule | The type of the shader module. Must implement IShaderModule. |
using LiteFX::Rendering::ShaderProgram< TShaderModule >::shader_module_type = TShaderModule |
|
protecteddefaultnoexcept |
|
protecteddefault |
|
protecteddefaultnoexcept |
|
overridedefaultnoexcept |
|
pure virtualnoexcept |
|
protecteddefault |
|
protecteddefaultnoexcept |