|
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 |
Public Member Functions inherited from LiteFX::Rendering::IShaderProgram | |
| ~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. | |
Public Member Functions inherited from LiteFX::SharedObject | |
| 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 |
Protected Member Functions inherited from LiteFX::Rendering::IShaderProgram | |
| IShaderProgram () noexcept=default | |
Protected Member Functions inherited from LiteFX::SharedObject | |
| 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 | |
Static Protected Member Functions inherited from LiteFX::SharedObject | |
| 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 |