Ich habe ein Problem beim Zeichnen auf einen FMX-Canvas. Das sieht alles total pixelig und verschwommen aus. Ich zeichne aber mit den gleichen Befehlen, die Firemonkey intern dafür verwendet. Ich habe sogar die Objekteigenschaften im Debugger verglichen. Bis auf die Farben ist alles identisch. Was fehlt da?
Beispiel für ein FMX TEllipse, das scharf gezeichnet wird:
Delphi-Quellcode:
Cursor := TEllipse.Create(ImageControl1);
Cursor.Visible := False;
Cursor.HitTest := False;
Cursor.Width := Target.BulletWidth * Painter.Scale;
Cursor.Height := Cursor.Width;
Cursor.Parent := ImageControl1;
Cursor.StrokeThickness := 1;
Beispiel für eine selbst gezeichnete Ellipse, die ist unscharf. Wie übrigens auch die Textausgaben:
Delphi-Quellcode:
FBitmap.Canvas.BeginScene;
FBitmap.Canvas.StrokeThickness := 1; //FScale;
FBitmap.Canvas.Fill.Kind := TBrushKind.bkSolid;
FBitmap.Canvas.Stroke.Kind := TBrushKind.bkSolid;
FBitmap.Canvas.Fill.Color := FTarget.BackColor;
FBitmap.Canvas.Stroke.Color := FTarget.Color;
r := RectF(FScale*(Ring-1)*FTarget.RingWidth+1,
0,
FScale* (FTarget.Width-(Ring-1)*FTarget.RingWidth)-1,
0);
r.Top := r.Left;
r.Bottom := r.Right;
FBitmap.Canvas.FillEllipse(r, 1);
FBitmap.Canvas.DrawEllipse(r, 1);
FBitmap.Canvas.EndScene;