Topenglpanel Now
constructor TMyOpenGLPanel.Create(AOwner: TComponent); begin inherited Create(AOwner); FAngle := 0; FTimer := TTimer.Create(Self); FTimer.Interval := 30; // ~33 FPS FTimer.OnTimer := OnTimer; FTimer.Enabled := False; end;
// Setup matrices ModelMat := TMatrix.Identity; ModelMat := ModelMat * TMatrix.CreateRotationY(DegToRad(FAngle)); ModelMat := ModelMat * TMatrix.CreateRotationX(DegToRad(FAngle * 0.7)); TOpenGlPanel
procedure TMyOpenGLPanel.StartAnimation; begin FTimer.Enabled := True; end; constructor TMyOpenGLPanel
type TMyOpenGLPanel = class(TOpenGLPanel) private FAngle: Single; FTimer: TTimer; procedure OnTimer(Sender: TObject); protected procedure Paint; override; procedure Resize; override; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure StartAnimation; procedure StopAnimation; end; constructor TMyOpenGLPanel.Create(AOwner: TComponent)
type TOpenGLContextHelper = class helper for TContext3D public procedure DrawCubeFace(FaceIndex: Integer; Size: Single); end; implementation