Пример #1
0
	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 ;
	}