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({%H-}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, 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