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