Shader refactor

This commit is contained in:
Dane Johnson
2021-01-22 15:27:32 -06:00
parent b08552c9fa
commit 1ee5ed3e88
11 changed files with 38 additions and 42 deletions

View File

@@ -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";}

View File

@@ -4,4 +4,5 @@ class ScreenShader : public Shader {
public:
ScreenShader();
Name GetName() const;
void UpdateTex(Texture texture);
};

View File

@@ -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) {

View File

@@ -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;