Skip to content

Commit

Permalink
GRAPHICS: Optionally rebuild shader program in ShaderRenderable
Browse files Browse the repository at this point in the history
  • Loading branch information
mirv-sillyfish authored and DrMcCoy committed Nov 17, 2018
1 parent 4d7af91 commit 2c74478
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 7 deletions.
13 changes: 8 additions & 5 deletions src/graphics/shader/shaderrenderable.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,16 +57,19 @@ Mesh::Mesh *ShaderRenderable::getMesh() {
return _mesh;
}

void ShaderRenderable::setSurface(Shader::ShaderSurface *surface) {
void ShaderRenderable::setSurface(Shader::ShaderSurface *surface, bool rebuildProgram) {
// TODO: check old surface for usage count decrement.
_surface = surface;
updateProgram();
if (rebuildProgram) {
updateProgram();
}
}

void ShaderRenderable::setMaterial(Shader::ShaderMaterial *material) {
// TODO: check old surface for usage count decrement.
void ShaderRenderable::setMaterial(Shader::ShaderMaterial *material, bool rebuildProgram) {
_material = material;
updateProgram();
if (rebuildProgram) {
updateProgram();
}
}

void ShaderRenderable::setMesh(Mesh::Mesh *mesh) {
Expand Down
4 changes: 2 additions & 2 deletions src/graphics/shader/shaderrenderable.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,8 @@ class ShaderRenderable {
ShaderProgram *getProgram();
Mesh::Mesh *getMesh();

void setSurface(Shader::ShaderSurface *surface);
void setMaterial(Shader::ShaderMaterial *material);
void setSurface(Shader::ShaderSurface *surface, bool rebuildProgram = true);
void setMaterial(Shader::ShaderMaterial *material, bool rebuildProgram = true);
void setMesh(Mesh::Mesh *mesh);

void renderImmediate(const glm::mat4 &tform, float alpha = 1.0f);
Expand Down

0 comments on commit 2c74478

Please sign in to comment.