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.

 

 

 

Articolo precedente

Delphi XE2 Update 4

Articolo successivo

Firemonkey ancora problemi con i Font