Exemple #1
0
void ShaderController::createVFShader(const string& shader_name, const char * vert_file, const char* frag_file )
{
	shaders[shader_name] = GLSLProgram();
	shaders[shader_name].compileShaderFromFile(vert_file,GLSLShader::VERTEX);
	shaders[shader_name].compileShaderFromFile(frag_file,GLSLShader::FRAGMENT);
	shaders[shader_name].link();
}
GLSLProgram::GLSLProgram(const char* vert_shader, 
						 const char* frag_shader)
{	
	bool vert_compiled = true;
	bool frag_compiled = false;

	*this = GLSLProgram();
	m_shader_info->ID = glCreateProgram();

	if(vert_shader)
	{
		vert_compiled = Load_shader(vert_shader,GL_VERTEX_SHADER_ARB);
	}

	if(frag_shader)
	{
		frag_compiled = Load_shader(frag_shader,GL_FRAGMENT_SHADER_ARB);
	}

	if(vert_compiled&&frag_compiled)
	{
		m_shader_info->Compiled = true;
		Link();
	}	

	Bind();
}
 //-----------------------------------------------------------------------
 HighLevelGpuProgram* GLSLProgramFactory::create(ResourceManager* creator, 
     const String& name, ResourceHandle handle,
     const String& group, bool isManual, ManualResourceLoader* loader)
 {
     return OGRE_NEW GLSLProgram(creator, name, handle, group, isManual, loader);
 }