Class TCastleImageControl
Unit
Declaration
type TCastleImageControl = class(TCastleUserInterface)
Description
Image control. Size is automatically adjusted to the image size, if Stretch is False
(default). You should set TCastleImageControl.Left, TCastleImageControl.Bottom properties, and load your image by setting TCastleImageControl.URL property or straight TCastleImageControl.Image.
We automatically use alpha test or alpha blending based on loaded image alpha channel (see TDrawableImage.Alpha). You can influence this by AlphaChannel property.
Hierarchy
- TObject
- TPersistent
- TComponent
- TCastleComponent
- TCastleUserInterface
- TCastleImageControl
Overview
Methods
procedure PreferredSize(var PreferredWidth, PreferredHeight: Single); override; |
|
constructor Create(AOwner: TComponent); override; |
|
destructor Destroy; override; |
|
procedure Render; override; |
|
procedure GLContextOpen; override; |
|
procedure EditorAllowResize( out ResizeWidth, ResizeHeight: Boolean; out Reason: String); override; |
|
function PropertySections(const PropertyName: String): TPropertySections; override; |
|
procedure ImageChanged; |
Properties
property Image: TEncodedImage read GetImage write SetImage; |
|
property OwnsImage: boolean read GetOwnsImage write SetOwnsImage default true; |
|
property DrawableImage: TDrawableImage read GetDrawableImage write SetDrawableImage; |
|
property OwnsDrawableImage: boolean read GetOwnsDrawableImage write SetOwnsDrawableImage default true; |
|
property Color: TCastleColor read GetColor write SetColor; |
|
property Corners: TVector4Integer read GetCorners write SetCorners; deprecated 'use ProtectedSides'; |
|
property CenterX: Single read GetCenterX write SetCenterX default 0.5; deprecated 'use RotationCenter'; |
|
property CenterY: Single read GetCenterY write SetCenterY default 0.5; deprecated 'use RotationCenter'; |
|
property RotationCenter: TVector2 read GetRotationCenter write SetRotationCenter; |
|
property ClipLine: TVector3 read GetClipLine write SetClipLine; |
|
property CustomShader: TGLSLProgram read GetCustomShader write SetCustomShader; |
|
property Blending: boolean read GetBlending write SetBlending stored false; deprecated 'use AlphaChannel'; |
|
property Proportional: boolean read GetProportional write SetProportional stored false default false; deprecated 'use ProportionalScaling'; |
|
property FileName: string read GetURL write SetURL stored false; deprecated 'use URL'; |
|
property Content: TCastleImagePersistent read FContent; |
|
property URL: string read GetURL write SetURL stored false; |
|
property AlphaChannel: TAutoAlphaChannel
read GetAlphaChannel write SetAlphaChannel stored false default acAuto; |
|
property SmoothScaling: boolean
read GetSmoothScaling write SetSmoothScaling stored false default true; |
|
property Stretch: boolean read FStretch write SetStretch default false; |
|
property ProportionalScaling: TProportionalScaling
read FProportionalScaling write SetProportionalScaling default psNone; |
|
property Cache: boolean read GetCache write SetCache stored false default true; |
|
property FlipHorizontal: Boolean read GetFlipHorizontal write SetFlipHorizontal
stored false default false; |
|
property FlipVertical: Boolean read GetFlipVertical write SetFlipVertical
stored false default false; |
|
property ProtectedSides: TBorder read GetProtectedSides stored false; |
|
property DetectScaleFromUrl: Boolean
read FDetectScaleFromUrl write SetDetectScaleFromUrl default false; |
|
property Rotation: Single read GetRotation write SetRotation stored false default 0; |
|
property Clip: boolean read GetClip write SetClip stored false default false; |
|
property ColorPersistent: TCastleColorPersistent read FColorPersistent stored false; |
|
property ClipLinePersistent: TCastleVector3Persistent read FClipLinePersistent stored false; |
|
property RotationCenterPersistent: TCastleVector2Persistent read FRotationCenterPersistent stored false; |
Description
Methods
procedure PreferredSize(var PreferredWidth, PreferredHeight: Single); override; |
|
constructor Create(AOwner: TComponent); override; |
|
destructor Destroy; override; |
|
procedure Render; override; |
|
procedure GLContextOpen; override; |
|
procedure EditorAllowResize( out ResizeWidth, ResizeHeight: Boolean; out Reason: String); override; |
|
function PropertySections(const PropertyName: String): TPropertySections; override; |
|
procedure ImageChanged; |
|
If you modified the Image contents (colors, or maybe even image size) you need to call this. See also
|
Properties
property Image: TEncodedImage read GetImage write SetImage; |
|
Image contents, or Note that by default the TEncodedImage instance assigned here is owned by this component (see OwnsImage). So if you set this property to your custom TEncodedImage instance you should leave memory management of this instance to this component. You can either create a copy by TEncodedImage.MakeCopy if you want to give here only a copy, or you can change OwnsImage to It is allowed to modify the contents or even size of this image. Just make sure to call ImageChanged after the modifications are done to update the rendered image (and possibly the UI control size, e.g. in case TCastleImageControl uses this TCastleImagePersistent, and TCastleImageControl.Stretch=false). See also
|
property OwnsImage: boolean read GetOwnsImage write SetOwnsImage default true; |
|
Whether the memory management of assigned Image is automatic. See Image documentation for details. Note that setting URL changes Image, and changes Note that setting DrawableImage changes Image too, and changes See also
|
property DrawableImage: TDrawableImage read GetDrawableImage write SetDrawableImage; |
|
Image used for drawing. Never Usually you do not want to change this property. You can change URL, or Image, and the drawable image will reflect this. But there are good use-cases to change the DrawableImage directly: e.g. you can use fast image-to-image drawing using TDrawableImage.DrawFrom. Or you can set a new instance of TDrawableImage here. Be sure to adjust OwnsDrawableImage as needed. Note that when OpenGL(ES) context is lost and recreated (which can happen at any moment on mobile devices), the contents of this are reinitialized from Image. See also
|
property OwnsDrawableImage: boolean read GetOwnsDrawableImage write SetOwnsDrawableImage default true; |
|
Whether we should automatically free the DrawableImage instance. Note that this is restored to See also
|
property Color: TCastleColor read GetColor write SetColor; |
|
Color tint of the image. This simply multiplies the image RGBA components, just like TDrawableImage.Color. By default this is opaque white, which means that image colors are unchanged. See also
|
property Corners: TVector4Integer read GetCorners write SetCorners; deprecated 'use ProtectedSides'; |
|
Warning: this symbol is deprecated: use ProtectedSides
|
property RotationCenter: TVector2 read GetRotationCenter write SetRotationCenter; |
|
Center of rotation. Expressed as a fraction within the drawn ScreenRectangle, (0,0) means bottom-left corner, (1,1) means top-right corner. Default (0.5,0.5). See also
|
property ClipLine: TVector3 read GetClipLine write SetClipLine; |
|
If Clip, this is the line equation used to determine whether we clip the given pixel. Given a line (A, B, C) and pixel (x, y), the pixel is clipped (rejected) if The equation is calculated in the coordinates in which image X, Y spans from (0, 0) (bottom-left) to (1, 1) (top-right). For example See also
|
property CustomShader: TGLSLProgram read GetCustomShader write SetCustomShader; |
|
Custom GLSL shading code. See TDrawableImage.CustomShader for explanation. See also
|
property Blending: boolean read GetBlending write SetBlending stored false; deprecated 'use AlphaChannel'; |
|
Warning: this symbol is deprecated: use AlphaChannel |
property Proportional: boolean read GetProportional write SetProportional stored false default false; deprecated 'use ProportionalScaling'; |
|
Warning: this symbol is deprecated: use ProportionalScaling |
property FileName: string read GetURL write SetURL stored false; deprecated 'use URL'; |
|
Warning: this symbol is deprecated: use URL |
property Content: TCastleImagePersistent read FContent; |
|
Image contents to display. |
property URL: string read GetURL write SetURL stored false; |
|
See also
|
property AlphaChannel: TAutoAlphaChannel
read GetAlphaChannel write SetAlphaChannel stored false default acAuto; |
|
How to treat alpha channel of the assigned image. By default, this is acAuto, which means that image contents together with current Color determine how the alpha of image is treated (opaque, alpha test, alpha blending). Set this to force specific treatment. See also
|
property SmoothScaling: boolean
read GetSmoothScaling write SetSmoothScaling stored false default true; |
|
Is the image scaling mode smooth (bilinear filtering) or not (nearest-pixel filtering). See TDrawableImage.SmoothScaling. See also
|
property Stretch: boolean read FStretch write SetStretch default false; |
|
How does the loaded image size affect the size of the image control.
|
property ProportionalScaling: TProportionalScaling
read FProportionalScaling write SetProportionalScaling default psNone; |
|
property Cache: boolean read GetCache write SetCache stored false default true; |
|
If See also
|
property FlipHorizontal: Boolean read GetFlipHorizontal write SetFlipHorizontal
stored false default false; |
|
Display image horizontally flipped. See also |
property FlipVertical: Boolean read GetFlipVertical write SetFlipVertical
stored false default false; |
|
Display image vertically flipped. See also |
property ProtectedSides: TBorder read GetProtectedSides stored false; |
|
Corners and edges of the image that are protected from scaling distortion when Stretch is used. We use the 9-slicing algorithm, described at TDrawableImage.Draw3x3 and https://en.wikipedia.org/wiki/9-slice_scaling to scale the image. See also
|
property DetectScaleFromUrl: Boolean
read FDetectScaleFromUrl write SetDetectScaleFromUrl default false; |
|
Set this to auto-detect that image is scaled compared to it's desired size. This detects URL endings like 'xxx@2x.png', and we will automatically adjust to it (the size determined by AutoSize will be actually 2x smaller than the PNG size). Preparing images at a 2x or 4x larger size than "desired" is a useful trick when using UI scaling, when you want the image to look good at various scales. |
property Rotation: Single read GetRotation write SetRotation stored false default 0; |
|
Rotation in radians. Default value 0. See also
|
property Clip: boolean read GetClip write SetClip stored false default false; |
|
See also
|
property ColorPersistent: TCastleColorPersistent read FColorPersistent stored false; |
|
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
|
property ClipLinePersistent: TCastleVector3Persistent read FClipLinePersistent stored false; |
|
ClipLine 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 ClipLine directly. See also |
property RotationCenterPersistent: TCastleVector2Persistent read FRotationCenterPersistent stored false; |
|
RotationCenter 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 RotationCenter directly. See also
|
Generated by PasDoc 0.16.0.