30 bool DeferredLightingShaderTerrainImplementation::isSupported(
Renderer* renderer) {
39 return "defer_terrain";
50 "shader/" + shaderVersion +
"/lighting/specular",
51 "render_vertexshader.vert",
59 "shader/" + shaderVersion +
"/lighting/specular",
60 "defer_fragmentshader.frag",
62 FileSystem::getInstance()->getContentAsString(
63 "shader/" + shaderVersion +
"/functions",
66 FileSystem::getInstance()->getContentAsString(
67 "shader/" + shaderVersion +
"/functions/specular",
68 "specular_lighting.inc.glsl"
static Engine * getInstance()
Returns engine instance.
static TextureManager * getTextureManager()
const string & getId() const
Lighting shader implementation.
int32_t uniformStoneTextureUnit
virtual void loadTextures(const string &pathName) override
Load textures.
virtual void updateMatrices(Renderer *renderer, int contextIdx) override
Update matrices to program.
virtual void initialize() override
Initialize renderer.
int32_t uniformSnowTextureUnit
virtual void unloadTextures() override
Unload textures.
virtual void registerShader() override
Register shader.
virtual const string getId() override
int32_t uniformDirtTextureUnit
virtual void unUseProgram(int contextIdx) override
Unuse lighting program.
int32_t uniformModelMatrix
virtual void useProgram(Engine *engine, int contextIdx) override
Use lighting program.
int32_t uniformGrasTextureUnit
DeferredLightingShaderTerrainImplementation(Renderer *renderer)
Public constructor.
virtual void updateShaderParameters(Renderer *renderer, int contextIdx) override
Update shader parameters.
string additionalDefinitions
Lighting shader implementation.
virtual void updateMatrices(Renderer *renderer, int contextIdx) override
Update matrices to program.
virtual void initialize() override
Initialize renderer.
virtual void unUseProgram(int contextIdx) override
Unuse lighting program.
virtual void useProgram(Engine *engine, int contextIdx) override
Use lighting program.
void removeTexture(Texture *texture)
Removes a texture from manager.
TextureManager_TextureManaged * addTexture(const string &id, bool &created)
Adds a texture to manager.
virtual void setTextureUnit(int contextIdx, int32_t textureUnit)=0
Sets up texture unit.
virtual int32_t loadShader(int32_t type, const string &pathName, const string &fileName, const string &definitions=string(), const string &functions=string())=0
Loads a shader.
int32_t SHADER_FRAGMENT_SHADER
int32_t SHADER_VERTEX_SHADER
virtual int32_t createProgram(int type)=0
Creates a shader program.
virtual int32_t getTextureUnit(int contextIdx)=0
Get texture unit.
virtual void setProgramUniformInteger(int contextIdx, int32_t uniformId, int32_t value)=0
Set up a integer uniform value.
virtual void bindTexture(int contextIdx, int32_t textureId)=0
Binds a texture with given id or unbinds when using ID_NONE.
virtual void attachShaderToProgram(int32_t programId, int32_t shaderId)=0
Attaches a shader to a program.
virtual void setProgramUniformFloatMatrix4x4(int contextIdx, int32_t uniformId, const array< float, 16 > &value)=0
Set up a float matrix 4x4 uniform value.
virtual int32_t getProgramUniformLocation(int32_t programId, const string &name)=0
Returns location of given uniform variable.
Matrix4x4 & getModelViewMatrix()
virtual bool isDeferredShadingAvailable()=0
int32_t CONTEXTINDEX_DEFAULT
virtual const string getShaderVersion()=0
const array< float, 16 > & getArray() const
File system singleton class.
virtual void releaseReference()
Releases a reference, thus decrementing the counter and delete it if reference counter is zero.
Lighting shader constants.
static constexpr int32_t SPECULAR_TEXTUREUNIT_TERRAIN_DIRT
static constexpr int32_t SPECULAR_TEXTUREUNIT_TERRAIN_STONE
static constexpr int32_t SPECULAR_TEXTUREUNIT_TERRAIN_SNOW
static constexpr int32_t SPECULAR_TEXTUREUNIT_TERRAIN_BRUSH
static constexpr int32_t SPECULAR_TEXTUREUNIT_TERRAIN_GRAS