1 unit Main; 2 3 {$mode objfpc}{$H+} 4 5 interface 6 7 uses 8 Classes, OpenGLContext, SysUtils, FileUtil, Forms, Controls, Graphics, 9 Dialogs, ExtCtrls, TAGraph, TASeries, TASources, GL, GLU; 10 11 type 12 13 { TForm1 } 14 15 TForm1 = class(TForm) 16 Bevel1: TBevel; 17 Chart1: TChart; 18 Chart1BarSeries1: TBarSeries; 19 Chart1LineSeries1: TLineSeries; 20 Chart1PieSeries1: TPieSeries; 21 OpenGLControl1: TOpenGLControl; 22 RandomChartSource1: TRandomChartSource; 23 procedure Chart1AfterPaint(ASender: TChart); 24 procedure FormCreate(Sender: TObject); 25 procedure OpenGLControl1Paint(Sender: TObject); 26 end; 27 28 var 29 Form1: TForm1; 30 31 implementation 32 33 {$R *.lfm} 34 35 uses 36 TADrawUtils, TADrawerOpenGL in '../../tadraweropengl.pas', TADrawerCanvas; 37 38 procedure TForm1.Chart1AfterPaint(ASender: TChart); 39 begin 40 OpenGLControl1.Invalidate; 41 end; 42 43 procedure TForm1.FormCreate(Sender: TObject); 44 begin 45 // If the text engine does not find the fonts needed for the OpenGL output 46 // copy the fonts to the exe folder and uncomment the next line 47 // Requires TAFonts in "uses" 48 49 // InitFonts(ExtractFilePath(ParamStr(0))); 50 end; 51 52 procedure TForm1.OpenGLControl1Paint(Sender: TObject); 53 var 54 d: IChartDrawer; 55 begin 56 glClearColor(1.0, 1.0, 1.0, 1.0); 57 glClear(GL_COLOR_BUFFER_BIT); 58 glMatrixMode(GL_PROJECTION); 59 glLoadIdentity(); 60 with OpenGLControl1 do 61 gluOrtho2D(0, Width, Height, 0); 62 glMatrixMode(GL_MODELVIEW); 63 glLoadIdentity(); 64 65 d := TOpenGLDrawer.Create; 66 d.DoChartColorToFPColor := @ChartColorSysToFPColor; 67 Chart1.DisableRedrawing; 68 Chart1.Title.Text.Text := 'OpenGL'; 69 Chart1.Draw(d, Rect(0, 0, OpenGLControl1.Width, OpenGLControl1.Height)); 70 Chart1.Title.Text.Text := 'Standard'; 71 Chart1.EnableRedrawing; 72 73 OpenGLControl1.SwapBuffers; 74 end; 75 76 end. 77 78