ImFusion SDK 4.3
MultiAbstractInclude< BaseIncludeType, IncludeArgumentsTypes > Class Template Reference

#include <ImFusion/Core/GL/MultiAbstractInclude.h>

Concrete type for an instance of a Multi-AbstractInclude. More...

+ Inheritance diagram for MultiAbstractInclude< BaseIncludeType, IncludeArgumentsTypes >:

Detailed Description

template<typename BaseIncludeType, typename... IncludeArgumentsTypes>
class ImFusion::GL::MultiAbstractInclude< BaseIncludeType, IncludeArgumentsTypes >

Concrete type for an instance of a Multi-AbstractInclude.

Developers are not meant to manually construct instances of this type but shall use MultiIncludable::createMultiInclude() instead.

See also
MultiIncludable

Public Member Functions

int setIncludeArguments (Program &prog, IncludeArgumentsTypes... includeArgs)
 Specialization of MultiIncludable::setIncludeArguments() so that users do not need to repeat the token.
 
 MultiAbstractInclude (private_cookie, BaseIncludeType *baseInclude, const std::string &baseToken, const std::string &replacementToken, Flags< ShaderTextReplacement > replacementScheme)
 
- Public Member Functions inherited from MultiAbstractIncludeBase
std::function< std::string(const std::string &)> includeCodeSubstitution () const override
 Optionally the abstract include can provide a function to change the shader code.
 
bool isValid () const
 
Fingerprint fingerprint () const override
 Provides a finger print of the include.
 
std::vector< AbstractInclude * > dependentIncludes () const override
 Returns a list of dependent abstract includes that need to be included as well.
 
- Public Member Functions inherited from AbstractInclude
 AbstractInclude (const std::string &defineName, const std::string &includePath)
 Creates a AbstractInclude for the given define and with the corresponding GLSL file at includePath.
 
const std::stringdefineName () const
 Returns the name of define used by this include.
 
const std::stringincludePath () const
 Returns the path to the included shader file.
 

Additional Inherited Members

- Protected Member Functions inherited from MultiAbstractIncludeBase
 MultiAbstractIncludeBase (AbstractInclude *baseInclude, const std::string &baseToken, const std::string &replacementToken, Flags< ShaderTextReplacement > replacementScheme)
 
void markInvalid ()
 
- Protected Attributes inherited from MultiAbstractIncludeBase
AbstractIncludem_baseInclude
 
std::string m_baseToken
 
std::string m_replacementToken
 
Flags< ShaderTextReplacementm_replacementScheme
 

Member Function Documentation

◆ setIncludeArguments()

template<typename BaseIncludeType, typename... IncludeArgumentsTypes>
int setIncludeArguments ( Program & prog,
IncludeArgumentsTypes... includeArgs )
inline

Specialization of MultiIncludable::setIncludeArguments() so that users do not need to repeat the token.

Interface that multi includes should use to configure the shader include (such as setting uniforms, binding textures, etc).

The return value shall indicate the number of textures bound to the program.

Parameters
progShader instance to configure
includeArgsList of custom arguments the user needs to provide in order to configure the include
tokenText fragment to distinguish multiple include instances: The MultiIncludable framework will ensure that this contains the replacement token of a concrete multi include instance.

The documentation for this class was generated from the following file:
Search Tab / S to search, Esc to close