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