All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
Eegeo::Rendering::Shader Class Referenceabstract

Base class for Shader programs. More...

#include <Shader.h>

Inheritance diagram for Eegeo::Rendering::Shader:
Eegeo::NonCopyable Eegeo::BlueSphere::BlueSphereShader Eegeo::Data::StencilArea::Materials::StencilAreaShader Eegeo::Rendering::Shaders::BatchedIconShader Eegeo::Rendering::Shaders::BatchedSpriteShader Eegeo::Rendering::Shaders::ColoredVertShader Eegeo::Rendering::Shaders::ColorShader Eegeo::Rendering::Shaders::DiffuseShader Eegeo::Rendering::Shaders::FireworksShader Eegeo::Rendering::Shaders::ModelShader Eegeo::Rendering::Shaders::NullShader Eegeo::Rendering::Shaders::PackedDiffuseAlphaShader Eegeo::Rendering::Shaders::PackedDiffuseFoggedShader Eegeo::Rendering::Shaders::PackedDiffuseShader Eegeo::Rendering::Shaders::PackedDiffuseTransitionShader Eegeo::Rendering::Shaders::PackedStencilShadowShader Eegeo::Rendering::Shaders::SdfTextShader Eegeo::Rendering::Shaders::TextShader Eegeo::Rendering::Shaders::TexturedUniformColoredShader Eegeo::Rendering::Shaders::UniformColoredShader Eegeo::Rendering::Shaders::VertexColoredShader Eegeo::Rendering::Shaders::WaterShader Eegeo::Rendering::Shaders::WaterTransitionShader Eegeo::Rendering::Shaders::WeatherOverlayShader Eegeo::Resources::Interiors::InteriorsChromeShader Eegeo::Resources::Interiors::InteriorsCubeMappedAnimatedUVShader Eegeo::Resources::Interiors::InteriorsCubeMappedShader Eegeo::Resources::Interiors::InteriorsDiffuseSpecularShader Eegeo::Resources::Interiors::InteriorsDiffuseTexturedNoVCShader Eegeo::Resources::Interiors::InteriorsDiffuseTexturedShader Eegeo::Resources::Interiors::InteriorsDiffuseTranslucentShader Eegeo::Resources::Interiors::InteriorsShader Eegeo::Resources::Interiors::InteriorsStencilMirrorMaskShader Eegeo::Resources::Interiors::InteriorsStencilMirrorShader Eegeo::Routes::View::RouteViewShader Eegeo::Routes::View::ScreenSpaceRouteViewShader Eegeo::Shapes::Heatmaps::HeatmapShapeShader Eegeo::Shapes::Polylines::PolylineShader

Public Member Functions

u32 GetId () const
 
virtual void Use (Rendering::GLState &glState) const =0
 
virtual void SetMVP (const m44 &mvp) const =0
 
GLuint GetUniformLocation (const std::string &uniformName) const
 
const
VertexLayouts::VertexAttribs
GetVertexAttributes () const
 

Protected Member Functions

 Shader (const TShaderId shaderId)
 
void CompileProgram (const std::string &vertexShaderCode, const std::string &fragmentShaderCode)
 
void UseProgram (Rendering::GLState &glState) const
 
void SetUniformFloat (const float value, GLuint uniformLocation) const
 
void SetUniformM44 (const m44 &matrix, GLuint uniformLocation, bool transpose) const
 
void SetUniformV2 (const v2 &vec, GLuint uniformLocation) const
 
void SetUniformV3 (const v3 &vec, GLuint uniformLocation) const
 
void SetUniformV4 (const v4 &vec, GLuint uniformLocation) const
 
void SetUniformTextureSampler (Rendering::GLState &glState, GLuint samplerId, GLuint uniformLocation) const
 
void SetUniformBool (const bool value, GLuint uniformLocation) const
 
void SetUniformV4v (const v4 *vec, GLsizei count, GLuint uniformLocation) const
 
- Protected Member Functions inherited from Eegeo::NonCopyable
 NonCopyable (const NonCopyable &)=delete
 
NonCopyableoperator= (const NonCopyable &)=delete
 

Protected Attributes

u32 m_programHandle
 

Detailed Description

Base class for Shader programs.

This class provides base functionality for compiling shader programs and provides an interface to the their uniforms and vertex attributes.


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