ImFusion C++ SDK 4.4.0
ImFusion::GL::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 ImFusion::GL::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 ImFusion::GL::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 ImFusion::GL::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 ImFusion::GL::MultiAbstractIncludeBase
 MultiAbstractIncludeBase (AbstractInclude *baseInclude, const std::string &baseToken, const std::string &replacementToken, Flags< ShaderTextReplacement > replacementScheme)
void markInvalid ()
Protected Attributes inherited from ImFusion::GL::MultiAbstractIncludeBase
AbstractIncludem_baseInclude
std::string m_baseToken
std::string m_replacementToken
Flags< ShaderTextReplacementm_replacementScheme

Member Function Documentation

◆ setIncludeArguments()

template<typename BaseIncludeType, typename... IncludeArgumentsTypes>
int ImFusion::GL::MultiAbstractInclude< BaseIncludeType, IncludeArgumentsTypes >::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:
  • ImFusion/Core/GL/MultiAbstractInclude.h
Search Tab / S to search, Esc to close