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;
}
Exemplo n.º 2
0
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 );
}