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); }