bool GLSLProgram::Load_shader(const char* shader_src, unsigned int shader_type)const { std::string shader; Read_Shader_src(shader_src,&shader); std::cout << shader << std::endl; unsigned int shaderID = glCreateShader(shader_type); const char* files[1] = {(const char*)(shader.c_str())}; glShaderSource(shaderID,1,files,NULL); glCompileShader(shaderID); int status; glGetShaderiv((unsigned int)shaderID,GL_COMPILE_STATUS,&status); if( status != GL_TRUE ) { std::string log = Get_log( (unsigned int)shaderID ); std::cout << log.c_str() << std::endl; throw GlslProgCompileExc(log,shader_type); return false; } glAttachShader(m_shader_info->ID, shaderID); return true; }
void GlslProg::loadShader( const char *shaderSource, GLint shaderType ) { GLuint handle = glCreateShader( shaderType ); glShaderSource( handle, 1, reinterpret_cast<const GLchar**>( &shaderSource ), NULL ); glCompileShader( handle ); GLint status; glGetShaderiv( (GLuint) handle, GL_COMPILE_STATUS, &status ); if( status != GL_TRUE ) { std::string log = getShaderLog( (GLuint)handle ); throw GlslProgCompileExc( log, shaderType ); } glAttachShader( mObj->mHandle, handle ); }