Castor3D 0.12.0
Multiplatform 3D engine
Classes | Public Member Functions | Protected Attributes | Friends | List of all members
castor3d::ShaderProgram Class Reference

#include <Program.hpp>

Inheritance diagram for castor3d::ShaderProgram:
Inheritance graph
[legend]
Collaboration diagram for castor3d::ShaderProgram:
Collaboration graph
[legend]

Classes

struct  CompiledShader
 

Public Member Functions

C3D_API ShaderProgram (castor::String const &name, RenderSystem &renderSystem)
 Constructor. More...
 
C3D_API ~ShaderProgram ()
 Destructor. More...
 
C3D_API void setFile (VkShaderStageFlagBits target, castor::Path const &pathFile)
 Sets the shader file. More...
 
C3D_API castor::Path getFile (VkShaderStageFlagBits target) const
 Retrieves the shader file. More...
 
C3D_API bool hasFile (VkShaderStageFlagBits target) const
 Tells if the shader object has a source file. More...
 
C3D_API void setSource (VkShaderStageFlagBits target, castor::String const &source)
 Sets the shader source. More...
 
C3D_API void setSource (VkShaderStageFlagBits target, ShaderPtr shader)
 Sets the shader source. More...
 
C3D_API ShaderModule const & getSource (VkShaderStageFlagBits target) const
 Retrieves the shader source. More...
 
C3D_API bool hasSource (VkShaderStageFlagBits target) const
 Tells if the shader object has a source code. More...
 
ashes::PipelineShaderStageCreateInfoArray const & getStates () const
 

Protected Attributes

std::map< VkShaderStageFlagBits, castor::Path > m_files
 
std::map< VkShaderStageFlagBits, ShaderModulem_modules
 
std::map< VkShaderStageFlagBits, CompiledShaderm_compiled
 
ashes::PipelineShaderStageCreateInfoArray m_states
 

Friends

class castor::TextWriter< castor3d::ShaderProgram >
 

Constructor & Destructor Documentation

◆ ShaderProgram()

C3D_API castor3d::ShaderProgram::ShaderProgram ( castor::String const &  name,
RenderSystem renderSystem 
)
explicit

Constructor.

Parameters
[in]nameThe program name.
[in]renderSystemThe RenderSystem.

◆ ~ShaderProgram()

C3D_API castor3d::ShaderProgram::~ShaderProgram ( )

Destructor.

Member Function Documentation

◆ getFile()

C3D_API castor::Path castor3d::ShaderProgram::getFile ( VkShaderStageFlagBits  target) const

Retrieves the shader file.

Parameters
[in]targetThe shader object concerned.
Returns
The file name.

◆ getSource()

C3D_API ShaderModule const & castor3d::ShaderProgram::getSource ( VkShaderStageFlagBits  target) const

Retrieves the shader source.

Parameters
[in]targetThe shader object concerned.
Returns
The source code.

◆ getStates()

ashes::PipelineShaderStageCreateInfoArray const & castor3d::ShaderProgram::getStates ( ) const
inline

name Getters.

References m_states.

◆ hasFile()

C3D_API bool castor3d::ShaderProgram::hasFile ( VkShaderStageFlagBits  target) const

Tells if the shader object has a source file.

Parameters
[in]targetThe shader object concerned.
Returns
true if the shader object has a source file.

◆ hasSource()

C3D_API bool castor3d::ShaderProgram::hasSource ( VkShaderStageFlagBits  target) const

Tells if the shader object has a source code.

Parameters
[in]targetThe shader object concerned.
Returns
true if the shader object has a source code.

◆ setFile()

C3D_API void castor3d::ShaderProgram::setFile ( VkShaderStageFlagBits  target,
castor::Path const &  pathFile 
)

Sets the shader file.

Parameters
[in]targetThe shader module concerned.
[in]pathFileThe file name.

◆ setSource() [1/2]

C3D_API void castor3d::ShaderProgram::setSource ( VkShaderStageFlagBits  target,
castor::String const &  source 
)

Sets the shader source.

Parameters
[in]targetThe shader object concerned.
[in]sourceThe source code.

◆ setSource() [2/2]

C3D_API void castor3d::ShaderProgram::setSource ( VkShaderStageFlagBits  target,
ShaderPtr  shader 
)

Sets the shader source.

Parameters
[in]targetThe shader object concerned.
[in]shaderThe source shader.

Friends And Related Function Documentation

◆ castor::TextWriter< castor3d::ShaderProgram >

friend class castor::TextWriter< castor3d::ShaderProgram >
friend

Member Data Documentation

◆ m_compiled

std::map< VkShaderStageFlagBits, CompiledShader > castor3d::ShaderProgram::m_compiled
protected

◆ m_files

std::map< VkShaderStageFlagBits, castor::Path > castor3d::ShaderProgram::m_files
protected

◆ m_modules

std::map< VkShaderStageFlagBits, ShaderModule > castor3d::ShaderProgram::m_modules
protected

◆ m_states

ashes::PipelineShaderStageCreateInfoArray castor3d::ShaderProgram::m_states
protected

Referenced by getStates().


The documentation for this class was generated from the following file: