The IShader video object interface. More...

#include "murl_video_i_shader.h"

Inherited by Murl::Video::Shader.

Public Member Functions

virtual IObjectGetObjectInterface ()=0
 Get the mutable Video::IObject interface. More...
 
virtual const IObjectGetObjectInterface () const =0
 Get the constant Video::IObject interface. More...
 
virtual Bool AttachToProgram (void *handle)=0
 Attach the shader to a program. More...
 
virtual Bool DetachFromProgram (void *handle)=0
 Detach the shader from a program. More...
 
virtual Bool SetType (IEnums::ShaderType type)=0
 Set the shader type. More...
 
virtual IEnums::ShaderType GetType () const =0
 Get the shader type. More...
 
virtual Bool SetSource (const String &source)=0
 Directly set the shader's source code from a given string. More...
 
virtual const StringGetSource () const =0
 Get the shader's source code, if it was explicitly set via SetSource(). More...
 
virtual Bool SetData (const ConstData &data)=0
 Set the shader binary. More...
 
virtual const ConstDataGetData () const =0
 Get the shader binary, if it was set via SetData(). More...
 
virtual SInt32 AddConstantBuffer (const String &name, UInt32 location, IEnums::ConstantBufferItem item)=0
 Add a constant buffer descriptor. More...
 
virtual SInt32 AddConstantBufferAlternativeName (UInt32 index, const String &name)=0
 Add an alternative name for a previously added constant buffer. More...
 
virtual SInt32 GetConstantBufferIndex (UInt32 location) const =0
 Get the zero-based index of the constant buffer at a given location. More...
 
virtual UInt32 GetNumberOfConstantBuffers () const =0
 Get the total number of constant buffers present in the shader. More...
 
virtual SInt32 GetConstantBufferLocation (UInt32 constantBufferIndex) const =0
 Get the location (register number) of a constant buffer at a given index. More...
 
virtual IEnums::ConstantBufferItem GetConstantBufferItem (UInt32 constantBufferIndex) const =0
 Get the predefined item of a constant buffer at a given index. More...
 
virtual const StringGetConstantBufferName (UInt32 constantBufferIndex) const =0
 Get the name of a constant buffer at a given index. More...
 
virtual UInt32 GetNumberOfConstantBufferAlternativeNames (UInt32 constantBufferIndex) const =0
 Get the number of alternative names of a constant buffer at a given index. More...
 
virtual const StringGetConstantBufferAlternativeName (UInt32 constantBufferIndex, UInt32 alternativeNameIndex) const =0
 Get an alternative name of a constant buffer at a given index. More...
 
virtual SInt32 AddUniform (const String &name, UInt32 location, IEnums::UniformItem item, IEnums::UniformType type)=0
 Add a uniform descriptor. More...
 
virtual SInt32 AddUniformAlternativeName (UInt32 index, const String &name)=0
 Add an alternative name for a previously added uniform. More...
 
virtual SInt32 GetUniformIndex (UInt32 location) const =0
 Get the zero-based index of the uniform at a given location. More...
 
virtual UInt32 GetNumberOfUniforms () const =0
 Get the total number of uniforms present in the shader. More...
 
virtual SInt32 GetUniformLocation (UInt32 uniformIndex) const =0
 Get the location (register number) of a uniform at a given index. More...
 
virtual IEnums::UniformItem GetUniformItem (UInt32 uniformIndex) const =0
 Get the predefined item of a uniform at a given index. More...
 
virtual IEnums::UniformType GetUniformType (UInt32 uniformIndex) const =0
 Get the data type of a uniform at a given index. More...
 
virtual const StringGetUniformName (UInt32 uniformIndex) const =0
 Get the name of a uniform at a given index. More...
 
virtual UInt32 GetNumberOfUniformAlternativeNames (UInt32 uniformIndex) const =0
 Get the number of alternative names of a uniform at a given index. More...
 
virtual const StringGetUniformAlternativeName (UInt32 uniformIndex, UInt32 alternativeNameIndex) const =0
 Get an alternative name of a uniform at a given index. More...
 
virtual SInt32 AddAttribute (const String &name, UInt32 location, IEnums::AttributeItem item, IEnums::AttributeType type)=0
 Add an attribute descriptor. More...
 
virtual SInt32 AddAttributeAlternativeName (UInt32 index, const String &name)=0
 Add an alternative name for a previously added attribute. More...
 
virtual SInt32 GetAttributeIndex (UInt32 location) const =0
 Get the zero-based index of the attribute at a given location. More...
 
virtual UInt32 GetNumberOfAttributes () const =0
 Get the total number of attributes present in the shader. More...
 
virtual SInt32 GetAttributeLocation (UInt32 attributeIndex) const =0
 Get the location (register number) of an attribute at a given index. More...
 
virtual IEnums::AttributeItem GetAttributeItem (UInt32 attributeIndex) const =0
 Get the predefined item of an attribute at a given index. More...
 
virtual IEnums::AttributeType GetAttributeType (UInt32 attributeIndex) const =0
 Get the data type of an attribute at a given index. More...
 
virtual const StringGetAttributeName (UInt32 attributeIndex) const =0
 Get the name of an attribute at a given index. More...
 
virtual UInt32 GetNumberOfAttributeAlternativeNames (UInt32 attributeIndex) const =0
 Get the number of alternative names of an attribute at a given index. More...
 
virtual const StringGetAttributeAlternativeName (UInt32 attributeIndex, UInt32 alternativeNameIndex) const =0
 Get an alternative name of an attribute at a given index. More...
 
virtual SInt32 AddTexture (const String &name, UInt32 location, IEnums::TextureType type, const IEnums::TextureSemantic *semantics, const UInt32 *semanticIndices)=0
 Add a texture sampler descriptor. More...
 
virtual SInt32 AddTextureAlternativeName (UInt32 index, const String &name)=0
 Add an alternative name for a previously added texture sampler. More...
 
virtual SInt32 GetTextureIndex (UInt32 location) const =0
 Get the zero-based index of the texture sampler at a given location. More...
 
virtual UInt32 GetNumberOfTextures () const =0
 Get the total number of texture samplers present in the shader. More...
 
virtual SInt32 GetTextureLocation (UInt32 textureIndex) const =0
 Get the location (texture unit) of a sampler at a given index. More...
 
virtual IEnums::TextureType GetTextureType (UInt32 textureIndex) const =0
 Get the type of a texture sampler at a given index. More...
 
virtual IEnums::TextureSemantic GetTextureSemantic (UInt32 textureIndex, IEnums::ColorComponent colorComponent) const =0
 Get the texture semantic of a sampler for a given index and color component. More...
 
virtual UInt32 GetTextureSemanticIndex (UInt32 textureIndex, IEnums::ColorComponent colorComponent) const =0
 Get the texture semantic index of a sampler for a given index and color component. More...
 
virtual const StringGetTextureName (UInt32 textureIndex) const =0
 Get the name of a texture sampler at a given index. More...
 
virtual UInt32 GetNumberOfTextureAlternativeNames (UInt32 textureIndex) const =0
 Get the number of alternative names of a texture sampler at a given index. More...
 
virtual const StringGetTextureAlternativeName (UInt32 textureIndex, UInt32 alternativeNameIndex) const =0
 Get an alternative name of a texture sampler at a given index. More...
 
virtual Bool IsValid () const =0
 Check if the shader is valid. More...
 
virtual const StringGetCompilerLog () const =0
 Get the shader compiler log. More...
 

Detailed Description

The IShader video object interface.

This interface represents a GPU shader to be attached to an IProgram.

Used internally by Graph::Shader.

Member Function Documentation

◆ GetObjectInterface() [1/2]

virtual IObject* Murl::Video::IShader::GetObjectInterface ( )
pure virtual

Get the mutable Video::IObject interface.

Returns
The IObject interface.

◆ GetObjectInterface() [2/2]

virtual const IObject* Murl::Video::IShader::GetObjectInterface ( ) const
pure virtual

Get the constant Video::IObject interface.

Returns
The IObject interface.

◆ AttachToProgram()

virtual Bool Murl::Video::IShader::AttachToProgram ( void *  handle)
pure virtual

Attach the shader to a program.

Parameters
handleA handle to the program.
Returns
true if successful.

◆ DetachFromProgram()

virtual Bool Murl::Video::IShader::DetachFromProgram ( void *  handle)
pure virtual

Detach the shader from a program.

Parameters
handleA handle to the program.
Returns
true if successful.

◆ SetType()

virtual Bool Murl::Video::IShader::SetType ( IEnums::ShaderType  type)
pure virtual

Set the shader type.

Parameters
typeThe shader type.
Returns
true if successful.

◆ GetType()

virtual IEnums::ShaderType Murl::Video::IShader::GetType ( ) const
pure virtual

Get the shader type.

Returns
The shader type.

◆ SetSource()

virtual Bool Murl::Video::IShader::SetSource ( const String source)
pure virtual

Directly set the shader's source code from a given string.

Parameters
sourceThe shader source code.
Returns
true if successful.

◆ GetSource()

virtual const String& Murl::Video::IShader::GetSource ( ) const
pure virtual

Get the shader's source code, if it was explicitly set via SetSource().

Returns
The shader source code.

◆ SetData()

virtual Bool Murl::Video::IShader::SetData ( const ConstData data)
pure virtual

Set the shader binary.

Parameters
dataThe binary shader data.
Returns
true if successful.

◆ GetData()

virtual const ConstData& Murl::Video::IShader::GetData ( ) const
pure virtual

Get the shader binary, if it was set via SetData().

Returns
The binary shader data.

◆ AddConstantBuffer()

virtual SInt32 Murl::Video::IShader::AddConstantBuffer ( const String name,
UInt32  location,
IEnums::ConstantBufferItem  item 
)
pure virtual

Add a constant buffer descriptor.

Parameters
nameThe constant buffer name.
locationThe location (register number) of the constant buffer in the shader.
itemThe predefined constant buffer item.
Returns
The index of the added constant buffer, or -1 if failed.

◆ AddConstantBufferAlternativeName()

virtual SInt32 Murl::Video::IShader::AddConstantBufferAlternativeName ( UInt32  index,
const String name 
)
pure virtual

Add an alternative name for a previously added constant buffer.

Parameters
indexThe index of the constant buffer in the shader, from 0 to GetNumberOfConstantBuffers()-1.
nameThe constant buffer's alternative name.
Returns
The index of the alternative name string, or -1 if failed.

◆ GetConstantBufferIndex()

virtual SInt32 Murl::Video::IShader::GetConstantBufferIndex ( UInt32  location) const
pure virtual

Get the zero-based index of the constant buffer at a given location.

Parameters
locationThe location (register number) to query.
Returns
The index of the constant buffer in the shader, or -1 if not found.

◆ GetNumberOfConstantBuffers()

virtual UInt32 Murl::Video::IShader::GetNumberOfConstantBuffers ( ) const
pure virtual

Get the total number of constant buffers present in the shader.

Returns
The number of constant buffers.

◆ GetConstantBufferLocation()

virtual SInt32 Murl::Video::IShader::GetConstantBufferLocation ( UInt32  constantBufferIndex) const
pure virtual

Get the location (register number) of a constant buffer at a given index.

Parameters
constantBufferIndexThe index, from 0 to GetNumberOfConstantBuffers()-1.
Returns
The location, or -1 if the index is out of range.

◆ GetConstantBufferItem()

virtual IEnums::ConstantBufferItem Murl::Video::IShader::GetConstantBufferItem ( UInt32  constantBufferIndex) const
pure virtual

Get the predefined item of a constant buffer at a given index.

Parameters
constantBufferIndexThe index, from 0 to GetNumberOfConstantBuffers()-1.
Returns
The predefined item.

◆ GetConstantBufferName()

virtual const String& Murl::Video::IShader::GetConstantBufferName ( UInt32  constantBufferIndex) const
pure virtual

Get the name of a constant buffer at a given index.

Parameters
constantBufferIndexThe index, from 0 to GetNumberOfConstantBuffers()-1.
Returns
The name, or an empty string if the index is out of range.

◆ GetNumberOfConstantBufferAlternativeNames()

virtual UInt32 Murl::Video::IShader::GetNumberOfConstantBufferAlternativeNames ( UInt32  constantBufferIndex) const
pure virtual

Get the number of alternative names of a constant buffer at a given index.

Parameters
constantBufferIndexThe index, from 0 to GetNumberOfConstantBuffers()-1.
Returns
The number of alternative names, or 0 if the index is out of range.

◆ GetConstantBufferAlternativeName()

virtual const String& Murl::Video::IShader::GetConstantBufferAlternativeName ( UInt32  constantBufferIndex,
UInt32  alternativeNameIndex 
) const
pure virtual

Get an alternative name of a constant buffer at a given index.

Parameters
constantBufferIndexThe buffer index, from 0 to GetNumberOfConstantBuffers()-1.
alternativeNameIndexThe name index, from 0 to GetNumberOfConstantBufferAlternativeNames()-1.
Returns
The alternative name, or an empty string if an index is out of range.

◆ AddUniform()

virtual SInt32 Murl::Video::IShader::AddUniform ( const String name,
UInt32  location,
IEnums::UniformItem  item,
IEnums::UniformType  type 
)
pure virtual

Add a uniform descriptor.

Parameters
nameThe uniform name.
locationThe location (register number) of the uniform in the shader.
itemThe predefined uniform item.
typeThe uniform data type.
Returns
The index of the added uniform, or -1 if failed.

◆ AddUniformAlternativeName()

virtual SInt32 Murl::Video::IShader::AddUniformAlternativeName ( UInt32  index,
const String name 
)
pure virtual

Add an alternative name for a previously added uniform.

Parameters
indexThe index of the uniform in the shader, from 0 to GetNumberOfUniforms()-1.
nameThe uniform's alternative name.
Returns
The index of the alternative name string, or -1 if failed.

◆ GetUniformIndex()

virtual SInt32 Murl::Video::IShader::GetUniformIndex ( UInt32  location) const
pure virtual

Get the zero-based index of the uniform at a given location.

Parameters
locationThe location (register number) to query.
Returns
The index of the uniform in the shader, or -1 if not found.

◆ GetNumberOfUniforms()

virtual UInt32 Murl::Video::IShader::GetNumberOfUniforms ( ) const
pure virtual

Get the total number of uniforms present in the shader.

Returns
The number of uniforms.

◆ GetUniformLocation()

virtual SInt32 Murl::Video::IShader::GetUniformLocation ( UInt32  uniformIndex) const
pure virtual

Get the location (register number) of a uniform at a given index.

Parameters
uniformIndexThe index, from 0 to GetNumberOfUniforms()-1.
Returns
The location, or -1 if the index is out of range.

◆ GetUniformItem()

virtual IEnums::UniformItem Murl::Video::IShader::GetUniformItem ( UInt32  uniformIndex) const
pure virtual

Get the predefined item of a uniform at a given index.

Parameters
uniformIndexThe index, from 0 to GetNumberOfUniforms()-1.
Returns
The predefined item.

◆ GetUniformType()

virtual IEnums::UniformType Murl::Video::IShader::GetUniformType ( UInt32  uniformIndex) const
pure virtual

Get the data type of a uniform at a given index.

Parameters
uniformIndexThe index, from 0 to GetNumberOfUniforms()-1.
Returns
The data type, or IEnums::UNIFORM_TYPE_UNDEFINED if the index is out of range.

◆ GetUniformName()

virtual const String& Murl::Video::IShader::GetUniformName ( UInt32  uniformIndex) const
pure virtual

Get the name of a uniform at a given index.

Parameters
uniformIndexThe index, from 0 to GetNumberOfUniforms()-1.
Returns
The name, or an empty string if the index is out of range.

◆ GetNumberOfUniformAlternativeNames()

virtual UInt32 Murl::Video::IShader::GetNumberOfUniformAlternativeNames ( UInt32  uniformIndex) const
pure virtual

Get the number of alternative names of a uniform at a given index.

Parameters
uniformIndexThe index, from 0 to GetNumberOfUniforms()-1.
Returns
The number of alternative names, or 0 if the index is out of range.

◆ GetUniformAlternativeName()

virtual const String& Murl::Video::IShader::GetUniformAlternativeName ( UInt32  uniformIndex,
UInt32  alternativeNameIndex 
) const
pure virtual

Get an alternative name of a uniform at a given index.

Parameters
uniformIndexThe uniform index, from 0 to GetNumberOfUniforms()-1.
alternativeNameIndexThe name index, from 0 to GetNumberOfUniformAlternativeNames()-1.
Returns
The alternative name, or an empty string if an index is out of range.

◆ AddAttribute()

virtual SInt32 Murl::Video::IShader::AddAttribute ( const String name,
UInt32  location,
IEnums::AttributeItem  item,
IEnums::AttributeType  type 
)
pure virtual

Add an attribute descriptor.

Parameters
nameThe attribute name.
locationThe location (register number) of the attribute in the shader.
itemThe predefined attribute item.
typeThe attribute data type.
Returns
The index of the added attribute, or -1 if failed.

◆ AddAttributeAlternativeName()

virtual SInt32 Murl::Video::IShader::AddAttributeAlternativeName ( UInt32  index,
const String name 
)
pure virtual

Add an alternative name for a previously added attribute.

Parameters
indexThe index of the attribute in the shader, from 0 to GetNumberOfAttributes()-1.
nameThe attribute's alternative name.
Returns
The index of the alternative name string, or -1 if failed.

◆ GetAttributeIndex()

virtual SInt32 Murl::Video::IShader::GetAttributeIndex ( UInt32  location) const
pure virtual

Get the zero-based index of the attribute at a given location.

Parameters
locationThe location (register number) to query.
Returns
The index of the attribute in the shader, or -1 if not found.

◆ GetNumberOfAttributes()

virtual UInt32 Murl::Video::IShader::GetNumberOfAttributes ( ) const
pure virtual

Get the total number of attributes present in the shader.

Returns
The number of attributes.

◆ GetAttributeLocation()

virtual SInt32 Murl::Video::IShader::GetAttributeLocation ( UInt32  attributeIndex) const
pure virtual

Get the location (register number) of an attribute at a given index.

Parameters
attributeIndexThe index, from 0 to GetNumberOfAttributes()-1.
Returns
The location, or -1 if the index is out of range.

◆ GetAttributeItem()

virtual IEnums::AttributeItem Murl::Video::IShader::GetAttributeItem ( UInt32  attributeIndex) const
pure virtual

Get the predefined item of an attribute at a given index.

Parameters
attributeIndexThe index, from 0 to GetNumberOfAttributes()-1.
Returns
The predefined item.

◆ GetAttributeType()

virtual IEnums::AttributeType Murl::Video::IShader::GetAttributeType ( UInt32  attributeIndex) const
pure virtual

Get the data type of an attribute at a given index.

Parameters
attributeIndexThe index, from 0 to GetNumberOfAttributes()-1.
Returns
The data type, or IEnums::ATTRIBUTE_TYPE_UNDEFINED if the index is out of range.

◆ GetAttributeName()

virtual const String& Murl::Video::IShader::GetAttributeName ( UInt32  attributeIndex) const
pure virtual

Get the name of an attribute at a given index.

Parameters
attributeIndexThe index, from 0 to GetNumberOfAttributes()-1.
Returns
The name, or an empty string if the index is out of range.

◆ GetNumberOfAttributeAlternativeNames()

virtual UInt32 Murl::Video::IShader::GetNumberOfAttributeAlternativeNames ( UInt32  attributeIndex) const
pure virtual

Get the number of alternative names of an attribute at a given index.

Parameters
attributeIndexThe index, from 0 to GetNumberOfAttributes()-1.
Returns
The number of alternative names, or 0 if the index is out of range.

◆ GetAttributeAlternativeName()

virtual const String& Murl::Video::IShader::GetAttributeAlternativeName ( UInt32  attributeIndex,
UInt32  alternativeNameIndex 
) const
pure virtual

Get an alternative name of an attribute at a given index.

Parameters
attributeIndexThe attribute index, from 0 to GetNumberOfAttributes()-1.
alternativeNameIndexThe name index, from 0 to GetNumberOfAttributeAlternativeNames()-1.
Returns
The alternative name, or an empty string if an index is out of range.

◆ AddTexture()

virtual SInt32 Murl::Video::IShader::AddTexture ( const String name,
UInt32  location,
IEnums::TextureType  type,
const IEnums::TextureSemantic semantics,
const UInt32 semanticIndices 
)
pure virtual

Add a texture sampler descriptor.

Parameters
nameThe sampler name.
locationThe location (register number) of the constant buffer in the shader.
typeThe texture type.
semanticsAn array of 4 texture semantics, one for each color component.
semanticIndicesAn array of 4 texture semantic indices, one for each color component.
Returns
The index of the added sampler, or -1 if failed.

◆ AddTextureAlternativeName()

virtual SInt32 Murl::Video::IShader::AddTextureAlternativeName ( UInt32  index,
const String name 
)
pure virtual

Add an alternative name for a previously added texture sampler.

Parameters
indexThe index of the sampler in the shader, from 0 to GetNumberOfTextures()-1.
nameThe sampler's alternative name.
Returns
The index of the alternative name string, or -1 if failed.

◆ GetTextureIndex()

virtual SInt32 Murl::Video::IShader::GetTextureIndex ( UInt32  location) const
pure virtual

Get the zero-based index of the texture sampler at a given location.

Parameters
locationThe location (register number) to query.
Returns
The index of the sampler in the shader, or -1 if not found.

◆ GetNumberOfTextures()

virtual UInt32 Murl::Video::IShader::GetNumberOfTextures ( ) const
pure virtual

Get the total number of texture samplers present in the shader.

Returns
The number of samplers.

◆ GetTextureLocation()

virtual SInt32 Murl::Video::IShader::GetTextureLocation ( UInt32  textureIndex) const
pure virtual

Get the location (texture unit) of a sampler at a given index.

Parameters
textureIndexThe index, from 0 to GetNumberOfTextures()-1.
Returns
The location, or -1 if the index is out of range.

◆ GetTextureType()

virtual IEnums::TextureType Murl::Video::IShader::GetTextureType ( UInt32  textureIndex) const
pure virtual

Get the type of a texture sampler at a given index.

Parameters
textureIndexThe index, from 0 to GetNumberOfTextures()-1.
Returns
The sampler type.

◆ GetTextureSemantic()

virtual IEnums::TextureSemantic Murl::Video::IShader::GetTextureSemantic ( UInt32  textureIndex,
IEnums::ColorComponent  colorComponent 
) const
pure virtual

Get the texture semantic of a sampler for a given index and color component.

Parameters
textureIndexThe index, from 0 to GetNumberOfTextures()-1.
colorComponentThe color component to query.
Returns
The semantic, or IEnums::TEXTURE_SEMANTIC_UNDEFINED if the index is out of range.

◆ GetTextureSemanticIndex()

virtual UInt32 Murl::Video::IShader::GetTextureSemanticIndex ( UInt32  textureIndex,
IEnums::ColorComponent  colorComponent 
) const
pure virtual

Get the texture semantic index of a sampler for a given index and color component.

Parameters
textureIndexThe index, from 0 to GetNumberOfTextures()-1.
colorComponentThe color component to query.
Returns
The semantic index, or 0 if the index is out of range.

◆ GetTextureName()

virtual const String& Murl::Video::IShader::GetTextureName ( UInt32  textureIndex) const
pure virtual

Get the name of a texture sampler at a given index.

Parameters
textureIndexThe index, from 0 to GetNumberOfTextures()-1.
Returns
The name, or an empty string if the index is out of range.

◆ GetNumberOfTextureAlternativeNames()

virtual UInt32 Murl::Video::IShader::GetNumberOfTextureAlternativeNames ( UInt32  textureIndex) const
pure virtual

Get the number of alternative names of a texture sampler at a given index.

Parameters
textureIndexThe index, from 0 to GetNumberOfTextures()-1.
Returns
The number of alternative names, or 0 if the index is out of range.

◆ GetTextureAlternativeName()

virtual const String& Murl::Video::IShader::GetTextureAlternativeName ( UInt32  textureIndex,
UInt32  alternativeNameIndex 
) const
pure virtual

Get an alternative name of a texture sampler at a given index.

Parameters
textureIndexThe texture index, from 0 to GetNumberOfTextures()-1.
alternativeNameIndexThe name index, from 0 to GetNumberOfTextureAlternativeNames()-1.
Returns
The alternative name, or an empty string if an index is out of range.

◆ IsValid()

virtual Bool Murl::Video::IShader::IsValid ( ) const
pure virtual

Check if the shader is valid.

If creation/compilation of the shader object fails, this method returns false.

Returns
true if shader compilation succeeded during initialization.

◆ GetCompilerLog()

virtual const String& Murl::Video::IShader::GetCompilerLog ( ) const
pure virtual

Get the shader compiler log.

If creation/compilation of the shader object fails, this method returns the output provided by the OS/video API. Otherwise, an empty string is returned.

Returns
The compiler log message.

The documentation for this interface was generated from the following file:
  • murl_video_i_shader.h


Copyright © 2011-2018 Spraylight GmbH.