Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Text-Rendering-Qualität: VCL vs. FMX (https://www.delphipraxis.net/214668-text-rendering-qualitaet-vcl-vs-fmx.html)

Bernhard73 18. Feb 2024 13:16

Text-Rendering-Qualität: VCL vs. FMX
 
Liste der Anhänge anzeigen (Anzahl: 2)
Hallo zusammen,

das Thema wurde hier wahrscheinlich schon einmal besprochen und ist für Euch vielleicht auch ein alter Hut, ich habe jedoch keinen aussagekräftigen Thread gefunden. Deshalb meine Frage: Kann es sein, dass die Text-Rendering-Qualität und FMX schlechter ist als unter VCL?

Im Anhang 2 Beispiele: Labels unter FMX und VCL und (besonders krasser Unterschied) Text in einem StringGrid unter FMX (rechts) und VCL (links).

FMX ist für mich relativ neu, möglicherweise liegt der Fehler daher auch auf meiner Seite. Kann man da irgendetwas machen oder muss man sich damit abfinden?

Danke,
Bernhard

himitsu 18. Feb 2024 13:42

AW: Text-Rendering-Qualität: VCL vs. FMX
 
FMX ist eine 3D-Engine ... die Rendern nunmal ungern pixelgenau.

Ich hatte es anfangs mal, dass ich Labels um ein halbes Pixel verschieben mußte, damit der Text nicht zwischen den Pixeln landet und damit schärfer wird .... mir war aber so, dass die das mal verbessert hatten.

Bernhard73 18. Feb 2024 14:28

AW: Text-Rendering-Qualität: VCL vs. FMX
 
Danke für die Antwort. Dann bleibe ich erstmal bei VCL. Es wäre schön, wenn es Embarcadero gelänge, da noch was rauszuholen - wenn ich sehe, wie schön Text in einem Browser gerendert werden kann, dann muss das irgendwie doch auch in Anwendungen möglich sein. Wäre ein Quantensprung, optisch gesehen.
Wenn ich mich nicht irre, benutzt Chrome ja scheinbar Skia, aber mit Skia4Delphi waren meine Ergebnisse auch nicht viel anders.

Gruß, Bernhard

himitsu 18. Feb 2024 14:43

AW: Text-Rendering-Qualität: VCL vs. FMX
 
Im Delphi 12 ist Skia nun auch mit drin.

In wie weit es auf Firemonkey eine Wirkung hat, kann ich nicht sagen.


Du hast nicht zufällig eine Skalierung im Windows eingestellt? (z.B. 125% und so, womit ja alles um ein viertel/halbes/dreiviertel Pixel verrutschen kann, während es in der VCL einfach auf's nächstliegende ganzzahlige Pixel rutscht)

Bernhard73 18. Feb 2024 15:31

AW: Text-Rendering-Qualität: VCL vs. FMX
 
Ich hab's gerade nochmal überprüft, die Skalierung unter Windows ist bei mir 100 %, das kann es also nicht sein.

Schon die Cleartype-Engine von Windows ist ja nicht unbedingt das Gelbe vom Ei. Da ist es schade, das FMX dahinter noch zurückbleibt. Ein Schriftbild wie unter MacOS (Quartz-Engine) wäre optimal - bei Microsoft liegt der Fokus aber augenscheinlich auf Bildschirmlesbarkeit. Mal sehen, was die Weiterentwicklung von FMX so bringt...

fred.ahrens 18. Feb 2024 16:10

AW: Text-Rendering-Qualität: VCL vs. FMX
 
Wenn man die Unit FMX.Types in die .dpr aufnimmt, kann man mit
Code:
GlobalUseDirect2D := false
das unter VCL gewohnte Textrendering erreichen. Außerdem startet die Anwendung etwas schneller.

Ich gehe aber davon aus, dass damit einige Möglichkeiten von FMX wegfallen.

Bernhard73 18. Feb 2024 16:53

AW: Text-Rendering-Qualität: VCL vs. FMX
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ja, das bringt was. Vielleicht weicht das Bild noch ein wenig ab, bin nicht ganz sicher. Das Rendering/Antialiasing erfolgt jetzt wieder wie unter VCL unter Verwendung von "Farben", die von der eigentlichen Textfarbe abweichen, was sich optisch positiv auswirkt. FMX arbeitet beim Antialiasing nur mit einer Farbe und variiert deren Transparenz, mit dem bekannten nicht so berauschenden Ergebnis.

TiGü 19. Feb 2024 10:29

AW: Text-Rendering-Qualität: VCL vs. FMX
 
Halt doch mal einen Breakpoint in TTextLayoutD2D.DoDrawLayout in der Unit FMX.Canvas.D2D rein (Debug-DCUs einschalten!) und lass dir Target.GetTextAntialiasMode ausgeben (Evaluate/Modify -> Ctrl + F7)

TiGü 20. Feb 2024 12:24

AW: Text-Rendering-Qualität: VCL vs. FMX
 
https://stackoverflow.com/questions/...061135#9061135

Beachte die Punkte 1 und 2 in der Aufzählung, vielleicht hilfts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:11 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz