Fix BUG Firemonkey e font sfuocati dopo Delphi XE2 Update 4
Dopo l’aggiornamento di XE2 Update 4 con mio stupore ho visto tutti i programmi scritti con il framework firemonkey visualizzare i font sfuocati.
Ricercando la soluzione in rete e nel news group ufficiale Embarcadero ho rilevato vari segnalazioni in merito a questo grosso problema.
Qua trovate la segnalazione su QC:
http://qc.embarcadero.com/wc/qcmain.aspx?d=103786
Trovandomi in rilascio di un prodotto basato su questa architettura ho avuto attimo di panico.
Fortunamente Delphi da sempre rilascia i sorgenti delle librerie ed ho iniziato da subito a cercare nel core della libreria il problema.
Dopo varie prove ho notato che il Rendering sulla mia virtual machine veniva svolto in GDI+ (e non D2D come pensavo), quindi ho provato su un PC con Windows 7 reale ed il difetto in Direct2D non si presentava.
Per correggere il problema ho provveduto a copiare nel mio progetto “FMX.Canvas.GDIP.pas e sostituito la riga di codice 738:
TextRenderingDefault = TextRenderingHintAntiAlias;
in
TextRenderingDefault = TextRenderingHintSystemDefault
A questo punto nell’intestazione {$I FMX.Defines.inc} ho messo il contenuto degli IFDEF per semplificare il fix.
Ora compilando magicamente il nostro progetto inizia a funzionare correttamente con i nostri classici font.
Vedremo in questi giorni se uscirà un fix ufficiale o la mia patch non ufficiale mi permettera di avanzare con il mio lavoro.