
i
i
i
i
i
i
i
i
368 14. High-Quality 3D with OpenGL 2
else if (i == ... // set some of the "uniform" variables for shader "i"
(ones that don’t need to change)
glUniform3f(getUniLoc(progList[i], "LightColor"), 0.0, 10.0, 4.0);
glUniform1f(getUniLoc(progList[i], "Diffuse"),0.45);
// and make any other settings
.. //
} //GOTONEXTSHADER
}
void ShadersClose(void){
int i; for(i=0;i<NPROGRAMS;i++){
glDeleteShader(vertList[i]); glDeleteShader(fragList[i]);
glDeleteProgram(progList[i]);
}
}
void UseShaderProgram(long id){ // choose which shader program to run
glUseProgram(id); // tell OpenGL
if(id == 1){ // set any parameters for the shader
glUniform3f(getUniLoc(progList[id], ...