ImageEn, unit imageenview |
|
TImageEnView.LayersFastDrawing
Declaration
property LayersFastDrawing: TIEFastDrawing;
Description
Improves the performance of
layer rendering by delayed or disabling slow operations.
Item | Description |
iefFast | Layer draw quality is reduced to speed up display (only affects drawing) |
iefDelayed | Fast drawing (iefFast) is used while rotating, moving or resizing layers. After a delay, layers are then drawn at normal quality (iefNormal) |
iefNormal | Layers are drawn at normal quality |
Configure
LayerFastDrawingEffects to specify the effect of LayersFastDrawing.
Default: iefDelayed
Note:
◼LayersFastDrawing only affects what is displayed. It has no effect on the quality of the image when saved
◼LayersFastDrawing is only used when there are multiple layers, or the background layer is being edited (as a layer)
Layer Performance Properties
To improve the performance in layer applications, consider the following properties:
◼LayersCaching: Caches the view of each layer. Much faster but uses more memory.
◼LayersFastDrawing: Display quality of layers (and whether the quality view is delayed).
◼LayerFastDrawingEffects specifies which features are disabled while fast drawing.
◼ZoomFilter/
DelayZoomFilter: Display quality of images (and whether the quality view is delayed). This option is ignored if LayersFastDrawing is active
◼LayersRotationUseFilterOnPreview: Whether the quality filter (
LayersRotationFilter) is previewed without
applying the rotation
Review the Demos\LayerEditing\Layers_AllTypes\ demo for example code.
// Use best display quality (even when manipulating layers)
ImageEnView1.LayersFastDrawing := iefNormal;
// Use best display quality, except when manipulating layers
ImageEnView1.LayersFastDrawing := iefDelayed;
// Best performance - always display layers at lower quality
ImageEnView1.LayersFastDrawing := iefFast;
// Allow changing of preview quality via a combo-box
procedure Tfmain.cmbPreviewQualityChange(Sender: TObject);
const
_cmbPreviewQuality_Fast = 0;
_cmbPreviewQuality_Delayed_Best = 1;
_cmbPreviewQuality_Best = 2;
begin
// Separate code to make it easier to understand
if cmbPreviewQuality.ItemIndex = _cmbPreviewQuality_Fast then
begin
// FASTEST DISPLAY
// Zoom filter
ImageEnView1.ZoomFilter := rfNone;
ImageEnView1.DelayZoomFilter := False;
// Rotation anti-alias
ImageEnView1.LayersRotationFilter := ierBicubic;
// Fast drawing
ImageEnView1.LayersFastDrawing := iefFast;
end
else
if cmbPreviewQuality.ItemIndex = _cmbPreviewQuality_Delayed_Best then
begin
// DELAYED HIGH QUALITY
// Zoom filter
ImageEnView1.ZoomFilter := rfLanczos3;
ImageEnView1.DelayZoomFilter := True;
// Rotation anti-alias
ImageEnView1.LayersRotationFilter := ierBicubic;
// Fast drawing
ImageEnView1.LayersFastDrawing := iefDelayed;
end
else
begin
// HIGH QUALITY
// Zoom filter
ImageEnView1.ZoomFilter := rfLanczos3;
ImageEnView1.DelayZoomFilter := False;
// Rotation anti-alias
ImageEnView1.LayersRotationFilter := ierBicubic;
// Fast drawing
ImageEnView1.LayersFastDrawing := iefNormal;
end;
ImageEnView1.Update();
end;
See Also
◼LayersCaching