- procedure TGLForm.FormCreate(Sender: TObject);
- var
- vst: TStringList;
- VertexText: String;
- VertexL: Integer;
- fst: TStringList;
- FragmentText: String;
- FragmentL: Integer;
- begin
- vst:= TStringList.Create;
- vst.LoadFromFile('vertex.txt');
- VertexText:= vst.Text;
- VertexL:= Length(VertexText);
- fst:= TStringList.Create;
- fst.LoadFromFile('fragment.txt');
- FragmentText:= fst.Text;
- FragmentL:= Length(FragmentText);
- InitOpenGL;
- dc:= GetDC(Handle);
- rc:= CreateRenderingContext(dc, [opDoubleBuffered], 32, 24, 8, 0, 0, 0);
- ActivateRenderingContext(dc,rc);
- // Shader
- po:= glCreateProgramObjectARB;
- vs:= glCreateShaderObjectARB(GL_VERTEX_SHADER_ARB);
- fs:= glCreateShaderObjectARB(GL_FRAGMENT_SHADER_ARB);
- glShaderSourceARB(vs, 1, @VertexText, @VertexL);
- glShaderSourceARB(fs, 1, @FragmentText, @FragmentL);
- glCompileShaderARB(vs);
- ShowMessage(GetInfoLog(vs));
- glCompileShaderARB(fs);
- ShowMessage(GetInfoLog(fs));
- glAttachObjectARB(po, vs);
- glAttachObjectARB(po, fs);
- glDeleteObjectARB(vs);
- glDeleteObjectARB(fs);
- glLinkProgramARB(po);
- end;