ShaderProgram * PhongShader::compileShaderProgram( unsigned char lightMask, bool useTexture ) { Shader * fragmentShader = new Shader(Shader::fragment) ; for(int cpt=0 ; cpt<8 ; ++cpt) { if(((lightMask>>cpt)&1)==1) { fragmentShader->getStream()<<"#define USE_LIGHT"<<cpt<<::std::endl ; } } if(useTexture) { fragmentShader->getStream()<<"#define USE_TEXTURE0"<<::std::endl ; } fragmentShader->loadFromFile(Config::PhongFragmentShaderFile) ; fragmentShader->compile() ; ShaderProgram * program = new ShaderProgram(m_vertexShader, fragmentShader) ; program->compileAndLink() ; return program ; }