{Hint: save all files to location: /home/handoko/Desktop/MicroWorld/jni }
unit unit1;
{$mode delphi}
interface
uses
Classes, SysUtils, AndroidWidget, Laz_And_Controls, Laz_And_GLESv2_Canvas,
Laz_And_GLESv2_Canvas_h;
type
{ TAndroidModule1 }
TAndroidModule1 = class(jForm)
jButton1: jButton;
jCanvasES2_1: jCanvasES2;
jTextView1: jTextView;
jTimer1: jTimer;
procedure AndroidModule1Close(Sender: TObject);
procedure AndroidModule1JNIPrompt(Sender: TObject);
procedure jButton1Click(Sender: TObject);
procedure jCanvasES2_1GLDown(Sender: TObject; Touch: TMouch);
procedure jCanvasES2_1GLDraw(Sender: TObject);
procedure jTimer1Timer(Sender: TObject);
private
var
grScaleX, grScaleY: Single; // Used internally for my graphics engine
procedure grCalculateScaleValues;
procedure ShowInfo;
end;
var
AndroidModule1 : TAndroidModule1;
TouchCount : Integer = 0;
implementation
{$R *.lfm}
{ TAndroidModule1 }
procedure TAndroidModule1.AndroidModule1Close(Sender: TObject);
begin
jTimer1.Enabled := False;
end;
procedure TAndroidModule1.AndroidModule1JNIPrompt(Sender: TObject);
begin
jCanvasES2_1.DispatchTouchDown(False);
jCanvasES2_1.DispatchTouchMove(False);
jCanvasES2_1.DispatchTouchUp(False);
end;
procedure TAndroidModule1.jButton1Click(Sender: TObject);
begin
jTimer1.Enabled := not(jTimer1.Enabled);
ShowInfo;
end;
procedure TAndroidModule1.jCanvasES2_1GLDown(Sender: TObject; Touch: TMouch);
begin
Inc(TouchCount);
ShowInfo;
end;
procedure TAndroidModule1.jCanvasES2_1GLDraw(Sender: TObject);
begin
jCanvasES2_1.Screen_Setup (jCanvasES2_1.Width, jCanvasES2_1.Height, xp2D,cCull_YES);
jCanvasES2_1.Screen_Clear(1,1,1,1);
grCalculateScaleValues;
end;
procedure TAndroidModule1.jTimer1Timer(Sender: TObject);
begin
jCanvasES2_1.Refresh;
end;
procedure TAndroidModule1.grCalculateScaleValues;
begin
if (jCanvasES2_1.Height = 0) then Exit;
grScaleX := jCanvasES2_1.Width/jCanvasES2_1.Height;
grScaleX := 1;
end;
procedure TAndroidModule1.ShowInfo;
var
S: string;
begin
case jTimer1.Enabled of
True: S := 'Timer is on.';
False: S := 'Timer is off.';
end;
jTextView1.Text := S + LineEnding + 'TouchCount = ' + TouchCount.ToString;
end;
end.