Shader refactor
This commit is contained in:
@@ -4,4 +4,8 @@
|
||||
|
||||
ScreenShader::ScreenShader() : Shader(screen_vert, screen_frag) {}
|
||||
|
||||
void ScreenShader::UpdateTex(Texture tex){
|
||||
glBindTexture(GL_TEXTURE_2D, tex.id);
|
||||
}
|
||||
|
||||
Name ScreenShader::GetName() const {return "Screen Shader";}
|
||||
|
||||
@@ -4,4 +4,5 @@ class ScreenShader : public Shader {
|
||||
public:
|
||||
ScreenShader();
|
||||
Name GetName() const;
|
||||
void UpdateTex(Texture texture);
|
||||
};
|
||||
|
||||
@@ -53,27 +53,19 @@ void Shader::UpdateProjection(Matrix projection) {
|
||||
glUniformMatrix4fv(glGetUniformLocation(id, "PROJECTION"), 1, GL_FALSE, glm::value_ptr(projection));
|
||||
}
|
||||
|
||||
void Shader::UpdateColor(bool usesColor) {
|
||||
glUniform1i(glGetUniformLocation(id, "material.usesColor"), (int) usesColor);
|
||||
}
|
||||
|
||||
void Shader::UpdateColor(bool usesColor, Color color) {
|
||||
glUniform1i(glGetUniformLocation(id, "material.usesColor"), (int) usesColor);
|
||||
glUniform3f(glGetUniformLocation(id, "material.color"), color.r, color.g, color.b);
|
||||
}
|
||||
|
||||
void Shader::UpdateTex(bool usesTex) {
|
||||
glUniform1i(glGetUniformLocation(id, "material.usesTex"), (int) usesTex);
|
||||
}
|
||||
void Shader::UpdateTex(bool usesTex, Texture tex) {
|
||||
glUniform1i(glGetUniformLocation(id, "material.usesTex"), (int) usesTex);
|
||||
glBindTexture(GL_TEXTURE_2D, tex.id);
|
||||
}
|
||||
void Shader::UpdateAlphaScissor(cfloat alphaScissor) {
|
||||
glUniform1f(glGetUniformLocation(id, "material.alphaScissor"), alphaScissor);
|
||||
}
|
||||
void Shader::UpdateUnshaded(bool unshaded) {
|
||||
glUniform1i(glGetUniformLocation(id, "material.unshaded"), (int) unshaded);
|
||||
void Shader::UpdateMaterial(Material material) {
|
||||
glUniform1i(glGetUniformLocation(id, "material.usesColor"), (int) material.usesColor);
|
||||
glUniform3f(glGetUniformLocation(id, "material.color"),
|
||||
material.color.r,
|
||||
material.color.g,
|
||||
material.color.b);
|
||||
glUniform1i(glGetUniformLocation(id, "material.usesTex"), (int) material.usesTex);
|
||||
if (material.usesTex) {
|
||||
glBindTexture(GL_TEXTURE_2D, material.tex.id);
|
||||
}
|
||||
glUniform1f(glGetUniformLocation(id, "material.alphaScissor"), material.alphaScissor);
|
||||
glUniform1i(glGetUniformLocation(id, "material.unshaded"), (int) material.unshaded);
|
||||
glUniform1i(glGetUniformLocation(id, "material.cullBack"), (int) material.cullBack);
|
||||
}
|
||||
|
||||
void Shader::UpdateDirectionalLight(DirectionalLight directionalLight) {
|
||||
|
||||
@@ -16,13 +16,9 @@ public:
|
||||
void UpdateView(Matrix view);
|
||||
void UpdateModel(Matrix model);
|
||||
void UpdateProjection(Matrix projection);
|
||||
void UpdateColor(bool usesColor);
|
||||
void UpdateColor(bool usesColor, Color color);
|
||||
void UpdateTex(bool usesTex);
|
||||
void UpdateTex(bool usesTex, Texture tex);
|
||||
void UpdateAlphaScissor(cfloat alphaScissor);
|
||||
void UpdateUnshaded(bool unshaded);
|
||||
|
||||
void UpdateMaterial(Material material);
|
||||
|
||||
void UpdateDirectionalLight(DirectionalLight directionalLight);
|
||||
|
||||
virtual Name GetName() const;
|
||||
|
||||
Reference in New Issue
Block a user