NAP
Public Types | Public Member Functions | Protected Member Functions | List of all members
UniformContainer Class Reference

#include <uniformcontainer.h>

Public Types

using UniformStructInstanceList = std::vector< std::unique_ptr< UniformStructInstance > >
 
using BufferBindingInstanceList = std::vector< std::unique_ptr< BufferBindingInstance > >
 
using SamplerInstanceList = std::vector< std::unique_ptr< SamplerInstance > >
 
using ShaderConstantInstanceList = std::vector< std::unique_ptr< ShaderConstantInstance > >
 

Public Member Functions

 UniformContainer ()=default
 
virtual ~UniformContainer ()=default
 
 UniformContainer (const UniformContainer &)=delete
 
UniformContaineroperator= (const UniformContainer &)=delete
 
UniformStructInstancefindUniform (const std::string &name) const
 
SamplerInstancefindSampler (const std::string &name) const
 
BufferBindingInstancefindBinding (const std::string &name) const
 
ShaderConstantInstancefindConstant (const std::string &name) const
 
const SamplerInstanceListgetSamplers () const
 
const BufferBindingInstanceListgetBufferBindings () const
 
const ShaderConstantInstanceListgetConstants () const
 
const UniformStructInstanceListgetUniformStructs () const
 

Protected Member Functions

UniformStructInstancecreateUniformRootStruct (const ShaderVariableStructDeclaration &declaration, const UniformCreatedCallback &uniformCreatedCallback)
 
BufferBindingInstanceaddBindingInstance (std::unique_ptr< BufferBindingInstance > instance)
 
SamplerInstanceaddSamplerInstance (std::unique_ptr< SamplerInstance > instance)
 
ShaderConstantInstanceaddConstantInstance (std::unique_ptr< ShaderConstantInstance > instance)
 

Description

Manages uniform struct and sampler instances. Every struct and sampler is tied to a shader declaration. The declaration acts as the interface to a uniform struct or sampler on a shader. Both the nap::Material and nap::MaterialInstance are a uniform container.

Inheritance diagram for UniformContainer:
[legend]

Member Typedef Documentation

◆ BufferBindingInstanceList

using BufferBindingInstanceList = std::vector<std::unique_ptr<BufferBindingInstance> >

◆ SamplerInstanceList

using SamplerInstanceList = std::vector<std::unique_ptr<SamplerInstance> >

◆ ShaderConstantInstanceList

using ShaderConstantInstanceList = std::vector<std::unique_ptr<ShaderConstantInstance> >

◆ UniformStructInstanceList

using UniformStructInstanceList = std::vector<std::unique_ptr<UniformStructInstance> >

Constructor & Destructor Documentation

◆ UniformContainer() [1/2]

UniformContainer ( )
default

◆ ~UniformContainer()

virtual ~UniformContainer ( )
virtualdefault

◆ UniformContainer() [2/2]

UniformContainer ( const UniformContainer )
delete

Member Function Documentation

◆ addBindingInstance()

BufferBindingInstance& addBindingInstance ( std::unique_ptr< BufferBindingInstance instance)
protected

◆ addConstantInstance()

ShaderConstantInstance& addConstantInstance ( std::unique_ptr< ShaderConstantInstance instance)
protected

◆ addSamplerInstance()

SamplerInstance& addSamplerInstance ( std::unique_ptr< SamplerInstance instance)
protected

◆ createUniformRootStruct()

UniformStructInstance& createUniformRootStruct ( const ShaderVariableStructDeclaration declaration,
const UniformCreatedCallback uniformCreatedCallback 
)
protected

◆ findBinding()

BufferBindingInstance* findBinding ( const std::string &  name) const

Tries to find a buffer binding instance with the given name.

Parameters
namename of the buffer binding as declared in the shader.
Returns
a buffer binding instance, nullptr if not present.

◆ findConstant()

ShaderConstantInstance* findConstant ( const std::string &  name) const

Tries to find a shader constant instance with the given name.

Parameters
namename of the shader constant as declared in the shader.
Returns
a shader constant instance, nullptr if not present.

◆ findSampler()

SamplerInstance* findSampler ( const std::string &  name) const

Tries to find a sampler instance with the given name.

Parameters
namethe name of the sampler as declared in the shader.
Returns
the sampler with the given name, nullptr if not found.

◆ findUniform()

UniformStructInstance* findUniform ( const std::string &  name) const

Tries to find a uniform struct instance with the given name.

Parameters
namename of the uniform struct (ubo) as declared in the shader.
Returns
a uniform struct instance (ubo), nullptr if not present.

◆ getBufferBindings()

const BufferBindingInstanceList& getBufferBindings ( ) const
Returns
all the buffer binding instances.

◆ getConstants()

const ShaderConstantInstanceList& getConstants ( ) const
Returns
all the shader constants.

◆ getSamplers()

const SamplerInstanceList& getSamplers ( ) const
Returns
all the uniforms sampler instances.

◆ getUniformStructs()

const UniformStructInstanceList& getUniformStructs ( ) const
Returns
all the uniform root structs.

◆ operator=()

UniformContainer& operator= ( const UniformContainer )
delete