31 bool LightingShaderWaterImplementation::isSupported(
Renderer* renderer) {
51 "shader/" + shaderVersion +
"/lighting/specular",
52 "render_vertexshader.vert",
53 "#define LIGHT_COUNT " + to_string(
Engine::LIGHTS_MAX) +
"\n#define HAVE_WATER_SHADER\n#define HAVE_DEPTH_FOG",
54 FileSystem::getInstance()->getContentAsString(
55 "shader/" + shaderVersion +
"/functions",
64 "shader/" + shaderVersion +
"/lighting/specular",
65 "render_fragmentshader.frag",
66 "#define LIGHT_COUNT " + to_string(
Engine::LIGHTS_MAX) +
"\n#define HAVE_WATER_SHADER\n#define HAVE_DEPTH_FOG",
67 FileSystem::getInstance()->getContentAsString(
68 "shader/" + shaderVersion +
"/functions/specular",
69 "specular_lighting.inc.glsl"
114 for (
auto i = 0; i < 4; i++)
angle[i] = -Math::PI / 3.0f + Math::random() * Math::PI * 2.0f / 3.0f;
119 Engine::ShaderType::SHADERTYPE_OBJECT,
134 for (
auto i = 0; i < 4; i++) {
static void registerShader(ShaderType type, const string &shaderId, const vector< Shader::ParameterDefaults > ¶meterDefaults={}, bool internal=false)
Register shader.
Shader parameter model class.
int64_t getDeltaTime()
Gets the time passed between last and current frame.
Lighting shader implementation.
virtual void updateMatrices(Renderer *renderer, int contextIdx) override
Update matrices to program.
virtual void initialize() override
Initialize renderer.
virtual void useProgram(Engine *engine, int contextIdx) override
Use lighting program.
Lighting shader implementation.
array< float, WAVES_MAX > angle
int32_t uniformWaterHeight
static constexpr int WAVES_MAX
virtual void updateMatrices(Renderer *renderer, int contextIdx) override
Update matrices to program.
virtual void initialize() override
Initialize renderer.
array< int32_t, WAVES_MAX > uniformWaterDirection
int32_t uniformWaterWaves
array< int32_t, WAVES_MAX > uniformWaterWaveLength
virtual void registerShader() override
Register shader.
virtual const string getId() override
int32_t uniformModelMatrix
virtual void useProgram(Engine *engine, int contextIdx) override
Use lighting program.
LightingShaderWaterImplementation(Renderer *renderer)
Public constructor.
virtual void updateShaderParameters(Renderer *renderer, int contextIdx) override
Update shader parameters.
array< int32_t, WAVES_MAX > uniformWaterSpeed
array< int32_t, WAVES_MAX > uniformWaterAmplitude
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 void setProgramUniformFloatVec2(int contextIdx, int32_t uniformId, const array< float, 2 > &data)=0
Set up a float vec2 uniform value.
virtual void setProgramUniformInteger(int contextIdx, int32_t uniformId, int32_t value)=0
Set up a integer uniform value.
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 const string getShaderVersion()=0
virtual void setProgramUniformFloat(int contextIdx, int32_t uniformId, float value)=0
Set up a float uniform value.
const array< float, 16 > & getArray() const
File system singleton class.