- type
- // Projekt Canvas OpenGL
- TfemCustomOpenGLCanvas = class(TCustomControl)
- private
- // Device Context
- FDC: HWND;
- // Rendering Context
- FRC: HGLRC;
- // Schriftspeicher
- FFontLists: Cardinal;
- // OpenGL bereit
- FOpenGLReady: Boolean;
- // Sichtfeld Winkel
- FFieldOfViewAngle: Double;
- // Clipping
- FClippingNear, FClippingFar: Double;
- // Kameraverschiebung
- FMoveX, FMoveY, FMoveZ: Single;
- // Objektdrehung
- FRotateX, FRotateY, FRotateZ: Single;
- // Schrift setzen
- procedure SetFontList;
- // Sichtfeld Winkel
- procedure SetFieldOfViewAngle(const Value: Double);
- function GetFieldOfViewAngleStored: Boolean;
- // Clipping
- procedure SetClipping(Index: Integer; const Value: Double);
- function GetClippingStored(Index: Integer): Boolean;
- // Kameraverschiebung
- procedure SetMove(Index: Integer; const Value: Single);
- function GetMoveStored(Index: Integer): Boolean;
- // Objektdrehung
- procedure SetRotate(Index: Integer; const Value: Single);
- function GetRotateStored(Index: Integer): Boolean;
- protected
- procedure CreateWnd; override;
- procedure DestroyWnd; override;
- procedure WMSize(var Msg: TWMSize); message WM_SIZE;
- procedure WMEraseBkgnd(var Msg: TWmEraseBkgnd); message WM_ERASEBKGND;
- procedure CMFontChanged(var Msg: TMessage); message CM_FONTCHANGED;
- procedure Paint; override;
- // Text an Position X, Y ausgeben (Bildschirmkoordinaten)
- procedure ShowTextAt(X, Y: Integer; const S: string);
- // Sichtfeld Winkel
- property FieldOfViewAngle: Double read FFieldOfViewAngle write SetFieldOfViewAngle stored GetFieldOfViewAngleStored;
- // Clipping
- property ClippingNear: Double index 1 read FClippingNear write SetClipping stored GetClippingStored;
- property ClippingFar: Double index 2 read FClippingFar write SetClipping stored GetClippingStored;
- // Kameraverschiebung
- property MoveX: Single index 1 read FMoveX write SetMove stored GetMoveStored;
- property MoveY: Single index 2 read FMoveY write SetMove stored GetMoveStored;
- property MoveZ: Single index 3 read FMoveZ write SetMove stored GetMoveStored;
- // Objektdrehung
- property RotateX: Single index 1 read FRotateX write SetRotate stored GetRotateStored;
- property RotateY: Single index 2 read FRotateY write SetRotate stored GetRotateStored;
- property RotateZ: Single index 3 read FRotateZ write SetRotate stored GetRotateStored;
- public
- // Initialisierung
- constructor Create(AOwner: TComponent); override;
- // Freigabe
- destructor Destroy; override;
- published
- end;