Class TCastleControl
Unit
Declaration
type TCastleControl = class(TCustomOpenGLControl)
Description
Control to render everything (3D or 2D) with Castle Game Engine.
See https://castle-engine.io/control_on_form for a documentation how to use this.
You can use this with TCastleView, following https://castle-engine.io/control_on_form instructions. In this case, all user interface creation and event handling should be inside some view.
You can also add any user-interface controls to the Controls property. User-interface controls are any TCastleUserInterface descendants, like TCastleImageControl or TCastleButton or TCastleViewport. Use their events like TCastleUserInterface.OnPress to react to input. Use event TCastleUserInterface.OnUpdate to do something continuously.
By default, the control is filled with simple color from Container.BackgroundColor.
This control is an alternative to rendering things using TCastleWindow. Note that you cannot use both TCastleControl
and TCastleWindow within the same application.
Hierarchy
- TObject
- TPersistent
- TComponent
- TLCLComponent
- TControl
- TWinControl
- TCustomOpenGLControl
- TCastleControl
Overview
Fields
class var MainControl: TCastleControl deprecated 'this should no longer be useful, if you change views using MyControl.Container.View := .. or MyControl.Container.PushView(...)'; |
Methods
procedure DestroyHandle; override; |
|
procedure DoExit; override; |
|
procedure Resize; override; |
|
procedure KeyDown(var Key: Word; Shift: TShiftState); override; |
|
procedure UTF8KeyPress(var UTF8Key: TUTF8Char); override; |
|
procedure KeyUp(var Key: Word; Shift: TShiftState); override; |
|
procedure MouseDown(Button: Controls.TMouseButton; Shift:TShiftState; X,Y:Integer); override; |
|
procedure MouseUp(Button: Controls.TMouseButton; Shift:TShiftState; X,Y:Integer); override; |
|
procedure MouseMove(Shift: TShiftState; NewX, NewY: Integer); override; |
|
function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint): Boolean; override; |
|
procedure DoUpdate; virtual; |
|
constructor Create(AOwner: TComponent); override; |
|
destructor Destroy; override; |
|
function Controls: TInternalChildrenControls; |
|
function MakeCurrent(SaveOldToStack: boolean = false): boolean; override; |
|
procedure Invalidate; override; |
|
procedure Paint; override; |
|
function Pressed: TKeysPressed; deprecated 'use Container.Pressed'; |
|
function MousePressed: TCastleMouseButtons; deprecated 'use Container.MousePressed'; |
|
procedure ReleaseAllKeysAndMouse; |
|
function Fps: TFramesPerSecond; deprecated 'use Container.Fps'; |
|
procedure SaveScreen(const Url: String); overload; deprecated 'use Container.SaveScreen'; |
|
function SaveScreen: TRGBImage; overload; deprecated 'use Container.SaveScreen'; |
|
function SaveScreen(const SaveRect: TRectangle): TRGBImage; overload; deprecated 'use Container.SaveScreen'; |
|
function SaveScreenBuffer: TColorBuffer; |
|
function Rect: TRectangle; |
|
function DesignedComponent(const ComponentName: String): TComponent; deprecated 'use Container.DesignedComponent'; |
Properties
property GLInitialized: boolean read FGLInitialized; |
|
property MousePosition: TVector2 read GetMousePosition write SetMousePosition; deprecated 'use Container.MousePosition'; |
|
property Align; |
|
property Anchors; |
|
property BorderSpacing; |
|
property Enabled; |
|
property OpenGLMajorVersion; |
|
property OpenGLMinorVersion; |
|
property MultiSampling; |
|
property AlphaBits; |
|
property DepthBits; |
|
property StencilBits default DefaultStencilBits; |
|
property AUXBuffers; |
|
property Options; |
|
property OnChangeBounds; |
|
property OnConstrainedResize; |
|
property OnDblClick; |
|
property OnDragDrop; |
|
property OnDragOver; |
|
property OnEnter; |
|
property OnExit; |
|
property OnMouseEnter; |
|
property OnMouseLeave; |
|
property OnShowHint; |
|
property PopupMenu; |
|
property ShowHint; |
|
property Visible; |
|
property TabOrder; |
|
property TabStop default true; |
|
property AutoFocus: Boolean read FAutoFocus write FAutoFocus default false; |
|
property Container: TCastleControlContainer read FContainer; |
|
property AutoRedisplay: boolean read FAutoRedisplay write SetAutoRedisplay
default true; |
|
property DesignUrl: String read GetDesignUrl write SetDesignUrl stored false; deprecated 'use Container.DesignUrl'; |
Description
Fields
class var MainControl: TCastleControl deprecated 'this should no longer be useful, if you change views using MyControl.Container.View := .. or MyControl.Container.PushView(...)'; |
|
Warning: this symbol is deprecated: this should no longer be useful, if you change views using MyControl.Container.View := .. or MyControl.Container.PushView(...) Central control. This is only important now if you use deprecated way of setting TCastleView, using class properties/methods TCastleView.Current, TCastleView.Push. If instead you use new way of setting TCastleView, using container properties/methods TCastleContainer.Current, TCastleContainer.Push, then this value isn't useful. This means that in new applications, you probably have no need to set this value. |
Methods
procedure DestroyHandle; override; |
|
This item has no description. |
procedure DoExit; override; |
|
This item has no description. |
procedure Resize; override; |
|
This item has no description. |
procedure KeyDown(var Key: Word; Shift: TShiftState); override; |
|
This item has no description. |
procedure UTF8KeyPress(var UTF8Key: TUTF8Char); override; |
|
This item has no description. |
procedure KeyUp(var Key: Word; Shift: TShiftState); override; |
|
This item has no description. |
procedure MouseDown(Button: Controls.TMouseButton; Shift:TShiftState; X,Y:Integer); override; |
|
This item has no description. |
procedure MouseUp(Button: Controls.TMouseButton; Shift:TShiftState; X,Y:Integer); override; |
|
This item has no description. |
procedure MouseMove(Shift: TShiftState; NewX, NewY: Integer); override; |
|
This item has no description. |
function DoMouseWheel(Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint): Boolean; override; |
|
This item has no description. |
procedure DoUpdate; virtual; |
|
This item has no description. |
constructor Create(AOwner: TComponent); override; |
|
This item has no description. |
destructor Destroy; override; |
|
This item has no description. |
function Controls: TInternalChildrenControls; |
|
List of user-interface controls currently active. You can add your TCastleUserInterface instances (like TCastleViewport, TCastleButton and much more) to this list. We will pass events to these controls, draw them etc. See TCastleContainer.Controls for details. |
function MakeCurrent(SaveOldToStack: boolean = false): boolean; override; |
|
This item has no description. |
procedure Invalidate; override; |
|
This item has no description. |
procedure Paint; override; |
|
This item has no description. |
function Pressed: TKeysPressed; deprecated 'use Container.Pressed'; |
|
Warning: this symbol is deprecated: use Container.Pressed Keys currently pressed. |
function MousePressed: TCastleMouseButtons; deprecated 'use Container.MousePressed'; |
|
Warning: this symbol is deprecated: use Container.MousePressed This item has no description. |
procedure ReleaseAllKeysAndMouse; |
|
This item has no description. |
function Fps: TFramesPerSecond; deprecated 'use Container.Fps'; |
|
Warning: this symbol is deprecated: use Container.Fps Application speed. |
function SaveScreen: TRGBImage; overload; deprecated 'use Container.SaveScreen'; |
|
Warning: this symbol is deprecated: use Container.SaveScreen This item has no description. |
function SaveScreen(const SaveRect: TRectangle): TRGBImage; overload; deprecated 'use Container.SaveScreen'; |
|
Warning: this symbol is deprecated: use Container.SaveScreen This item has no description. |
function SaveScreenBuffer: TColorBuffer; |
|
Color buffer where we draw, and from which it makes sense to grab pixels. Use only if you save the screen using low-level SaveScreen_NoFlush function. Usually, you should save the screen using the simpler SaveScreen method, and then the |
function Rect: TRectangle; |
|
Rectangle representing the inside of this container. Always (Left,Bottom) are zero, and (Width,Height) correspond to container sizes. |
Properties
property GLInitialized: boolean read FGLInitialized; |
|
This item has no description. |
property MousePosition: TVector2 read GetMousePosition write SetMousePosition; deprecated 'use Container.MousePosition'; |
|
Warning: this symbol is deprecated: use Container.MousePosition Current mouse position. See TTouch.Position for a documentation how this is expressed. Get and set Container.MousePosition instead. |
property Align; |
|
This item has no description. |
property Anchors; |
|
This item has no description. |
property BorderSpacing; |
|
This item has no description. |
property Enabled; |
|
This item has no description. |
property OpenGLMajorVersion; |
|
This item has no description. |
property OpenGLMinorVersion; |
|
This item has no description. |
property MultiSampling; |
|
This item has no description. |
property AlphaBits; |
|
This item has no description. |
property DepthBits; |
|
This item has no description. |
property StencilBits default DefaultStencilBits; |
|
This item has no description. |
property AUXBuffers; |
|
This item has no description. |
property Options; |
|
This item has no description. |
property OnChangeBounds; |
|
This item has no description. |
property OnConstrainedResize; |
|
This item has no description. |
property OnDblClick; |
|
This item has no description. |
property OnDragDrop; |
|
This item has no description. |
property OnDragOver; |
|
This item has no description. |
property OnEnter; |
|
This item has no description. |
property OnExit; |
|
This item has no description. |
property OnMouseEnter; |
|
This item has no description. |
property OnMouseLeave; |
|
This item has no description. |
property OnShowHint; |
|
This item has no description. |
property PopupMenu; |
|
This item has no description. |
property ShowHint; |
|
This item has no description. |
property Visible; |
|
This item has no description. |
property TabOrder; |
|
This item has no description. |
property TabStop default true; |
|
This item has no description. |
property AutoFocus: Boolean read FAutoFocus write FAutoFocus default false; |
|
Automatically make this control focused (receiving key input) when user clicks on it. If this is |
property Container: TCastleControlContainer read FContainer; |
|
Access Castle Game Engine container properties and events, not specific to Lazarus LCL. |
property AutoRedisplay: boolean read FAutoRedisplay write SetAutoRedisplay
default true; |
|
Should we automatically redraw the window all the time, without the need for an Invalidate call. If If your game may have a still screen (nothing animates), then this approach is a little unoptimal, as we use CPU and GPU for drawing, when it's not needed. In such case, you can set this property to |
property DesignUrl: String read GetDesignUrl write SetDesignUrl stored false; deprecated 'use Container.DesignUrl'; |
|
Warning: this symbol is deprecated: use Container.DesignUrl Load and show the design (.castle-user-interface file). You can reference the loaded components by name using DesignedComponent. If you have more complicated control flow, we recommend to leave this property empty, and split your management into a number of views (TCastleView) instead. In this case, load design using TCastleView.DesignUrl. This property makes it however easy to use .castle-user-interface in simple cases, when TCastleControl just shows one UI. The design loaded here is visible also at design-time, when editing the form in Lazarus/Delphi. Though we have to way to edit it now in Lazarus/Delphi (you have to use CGE editor to edit the design), so it is just a preview in this case. |
Generated by PasDoc 0.16.0-snapshot.