Lysa  0.0
Lysa 3D Engine
ShaderMaterial Class Reference

Detailed Description

Shader-based material

+ Inheritance diagram for ShaderMaterial:

Public Member Functions

 ShaderMaterial (const std::shared_ptr< ShaderMaterial > &orig)
 
 ShaderMaterial (const std::string &fragShaderFileName, const std::string &vertShaderFileName="", uint32 parameterCount=0, RenderingPhase stage=RenderingPhase::DEFAULT)
 
pipeline_id getPipelineId () const override
 
const std::string & getFragFileName () const
 
const std::string & getVertFileName () const
 
void setParameter (int index, const float4 &value)
 
float4 getParameter (int index) const
 
auto getParameterCount () const
 
RenderingPhase getRenderingPhase () const
 
MaterialData getMaterialData () const override
 
- Public Member Functions inherited from Material
auto getCullMode () const
 
void setCullMode (const vireo::CullMode mode)
 
auto getDepthWrite () const
 
void setDepthWrite (const bool enable)
 
auto getDepthCompareOp () const
 
void setDepthCompareOp (const vireo::CompareOp op)
 
auto getTransparency () const
 
void setTransparency (const Transparency transparencyMode)
 
auto getAlphaScissor () const
 
void setAlphaScissor (const float scissor)
 
auto isUploaded () const
 
void upload () const
 
const auto & getIndex () const
 
auto getType () const
 
 ~Material () override = default
 
- Public Member Functions inherited from ManagedResource
 ManagedResource () = default
 
 ManagedResource (UniqueResource &) = delete
 
ManagedResource & operator= (ManagedResource &) = delete
 
- Public Member Functions inherited from Resource
bool operator== (const Resource &other) const
 
 Resource () = default
 
 Resource (const unique_id id)
 
virtual ~Resource () = default
 

Additional Inherited Members

- Public Types inherited from Material
enum  Type { STANDARD, SHADER }
 
- Public Attributes inherited from ManagedResource
uint32 refCounter {0}
 
- Public Attributes inherited from Resource
unique_id id {INVALID_ID}
 
- Protected Member Functions inherited from Material
 Material (Type type)
 

Constructor & Destructor Documentation

ShaderMaterial ( const std::shared_ptr< ShaderMaterial > &  orig)

Creates a ShaderMaterial by copy

ShaderMaterial ( const std::string &  fragShaderFileName,
const std::string &  vertShaderFileName = "",
uint32  parameterCount = 0,
RenderingPhase  stage = RenderingPhase::DEFAULT 
)

Creates a ShaderMaterial

Parameters
fragShaderFileNamefragment shader file path, relative to the application directory
vertShaderFileNamevertex shader file path, relative to the application directory
parameterCountnumber of float4 parameters exposed to the shader
stagepipeline stage

Member Function Documentation

const std::string& getFragFileName ( ) const
inline

Returns the fragment shader file path, relative to the application directory

MaterialData getMaterialData ( ) const
overridevirtual

Returns the packed GPU-ready material data for this material.

Implements lysa::Material::getMaterialData()

float4 getParameter ( int  index) const

Returns a parameter value

auto getParameterCount ( ) const
inline

Returns the number of float4 parameters for this material

pipeline_id getPipelineId ( ) const
overridevirtual

Returns the pipeline identifier used to select the correct render pipeline.

Implements lysa::Material::getPipelineId()

RenderingPhase getRenderingPhase ( ) const
inline
const std::string& getVertFileName ( ) const
inline

Returns the vertex shader file path, relative to the application directory

void setParameter ( int  index,
const float4 &  value 
)

Sets a parameter value

Friends And Related Function Documentation

friend class MaterialManager
friend