Class TCastleShape
Unit
CastleControls
Declaration
type TCastleShape = class(TCastleUserInterface)
Description
Draw a simple shape (rectangle, circle, triangle) with given color and optional outline.
Hierarchy
Overview
Methods
Properties
Description
Methods
|
constructor Create(AOwner: TComponent); override; |
This item has no description. |
|
destructor Destroy; override; |
This item has no description. |
|
procedure Render; override; |
This item has no description. Showing description inherited from TCastleUserInterface.Render.
Render a control. Called only when Exists and render context is initialized.
Do not call this method. It will be automatically called by the engine when needed. It will be called when UI is part of TCastleContainer.Controls list or rendered (e.g. for off-screen rendering) by TCastleContainer.RenderControl.
You should only override this method.
See https://castle-engine.io/manual_2d_ui_custom_drawn.php for examples what you can put here.
You can depend on some OpenGL state being set before calling this method. You can depend on it being set, and you can carelessly change it. This state we set:
Beware that GLSL RenderContext.CurrentProgram has undefined value when this is called. You should always set it, before making direct OpenGL drawing calls (all the engine drawing routines do it already, this is only a concern if you make direct OpenGL / OpenGLES calls).
|
Properties
|
property Color: TCastleColor read FColor write SetColor; |
The fill color, used if Filled. By default, opaque white.
|
|
property OutlineColor: TCastleColor read FOutlineColor write SetOutlineColor; |
The outline color, used if Outline. By default, opaque black.
|
|
property ShapeType: TShapeType read FShapeType write SetShapeType default stRectangle; |
The shape (rectangle, circle, triangle) to be drawn.
|
|
property OutlineThick: boolean read FOutlineThick write SetOutlineThick default false; |
Determines the drawing method of the outline, used if Outline.
False (default)
Draw the outline using lines, and apply OutlineWidth by changing line width.
Disadvantage: outline widths thicker than 1 pixel are not guaranteed to be supported. In particular they will almost never work on mobile (OpenGLES).
Consider using other methods if you need to draw a thick shape outline in a reliable manner. For example, set OutlineThick to True . Or draw the shape as an image with a frame, using TCastleImageControl and TCastleImageControl.ProtectedSides.
True
Draw the outline by first drawing a larger shape with OutlineColor underneath the smaller shape with Color.
Disadvantages:
Cannot work sensibly if Filled is False , so it's disabled then. When Filled is False , it's like OutlineThick was always also False .
The alpha blending may not be exactly what you want, since the pixels inside are overdrawn with both OutlineColor and then with Color.
May look a little worse in case of small OutlineWidth and non-rectangular shapes.
Advantage: thick OutlineWidth works reliably.
|
|
property OutlineWidth: Single read FOutlineWidth write SetOutlineWidth
default 1.0; |
The outline width, used if Outline. It is affected by UI scaling.
If OutlineThick is False , then outline widths thicker than 1 pixel are not guaranteed to be supported. In particular they will almost never work on mobile (OpenGLES). Change OutlineThick to True to have reliable thick outlines.
|
|
property Outline: boolean read FOutline write SetOutline default false; |
Display outline of the shape using OutlineColor.
|
|
property Filled: boolean read FFilled write SetFilled default true; |
Display inside of the shape using Color.
|
|
property ColorPersistent: TCastleColorPersistent read FColorPersistent ; |
Color that can be visually edited in Castle Game Engine Editor, Lazarus and Delphi. Normal user code does not need to deal with this, instead read or write Color directly.
See also
- Color
- The fill color, used if Filled.
|
|
property OutlineColorPersistent: TCastleColorPersistent read FOutlineColorPersistent ; |
OutlineColor that can be visually edited in Castle Game Engine Editor, Lazarus and Delphi. Normal user code does not need to deal with this, instead read or write OutlineColor directly.
See also
- OutlineColor
- The outline color, used if Outline.
|
Generated by PasDoc 0.16.0-snapshot.