procedure TForm2.Button5Click(Sender: TObject);
var
FragmentShaderObject : GLhandle;
ShaderText: String;
ShaderLength: Integer;
Shader: TStringList;
const
tc_offsetArr: array[0..8] of Single = (1.0,2.0,1.0,2.0,1.0,2.0,1.0,2.0,1.0);
begin
showmessage(gluErrorString(glGetError));
Shader := TStringList.Create;
try
Shader.LoadFromFile('Shader_Blur_frag.txt');
ShaderText := Shader.Text;
ShaderLength := Length(ShaderText);
FragmentShaderObject := glCreateShader(GL_FRAGMENT_SHADER);
glShaderSource(FragmentShaderObject, 1, @ShaderText, @ShaderLength);
glCompileShader(FragmentShaderObject);
ShowMessage(GetInfoLog(FragmentShaderObject));
ProgramObject := glCreateProgram;
glAttachShader(ProgramObject, FragmentShaderObject);
glDeleteShader(FragmentShaderObject);
glLinkProgram(ProgramObject);
glUniform1i(glGetUniformLocation(ProgramObject, PGLCharARB('sampler0')), 1);
glUniform2fvARB(glGetUniformLocation(ProgramObject, PGLCharARB('tc_offset')), 9,
@tc_offsetArr);
finally
Shader.Free;
end;
end;