We need a class to abstract the shader linking process.
[ ] Constructor will accept 6 shaders for our rendering pipeline
[ ] Vertex Shader
[ ] Tessellation Control Shader
[ ] Tessellation Evaluation Shader
[ ] Geometry Shader
[ ] Fragment Shader
[ ] Compute Shader
[ ] ShaderProgram may require boolean to determine if shader program should be in ProgramPipeline mode to support separate shader objects. ShaderProgramPipelines may be a separate or child class. Discuss.
[ ] ShaderProgram must support setShader(Shader toSet) to update individual pipeline components
[ ] ShaderProgram must have getID()
[ ] ShaderProgram must have three build control functions:
[ ] attach() to attach/reattach Shaders to the ShaderProgram
[ ] link() to link attached programs into a finalized program
[ ] use() to use the given ShaderProgram
[ ] ShaderProgram should verify all shaders are compiled before linking. If not;
[ ] call build() on all Shaders in Program
[ ] ShaderProgram must support glIsProgram() functionality
[ ] ShaderProgram should have a debug output functionality
We may find other functionality we wish to implement. If we can think of some, we'll comment it below.
We need a class to abstract the shader linking process.
We may find other functionality we wish to implement. If we can think of some, we'll comment it below.