Dat is wel heel naief, de developer de schuld geven. Waarom komt het bij Windows dan zo vaak voor dat het niet goed werkt en bij Mac niet? Alle "slechte" developers werken aan Windows apps en alle "goede" developers aan Mac apps?
Weet je wat ik als OSX/iOS developer moet doen om mijn apps te laten werken met high-DPI schermen zodat scaling feilloos werkt?
Hint: Niets. Het werkt gewoon. DPI scaling op onjuiste manier realiseren moet je echt expres doen. "Sane defaults" zou ik dat noemen.
De rede dat het voor Windows een stuk pittiger is, is omdat ze bij Microsoft de fout hebben gemaakt om met DPI scaling te werken: Microsoft apps moeten hun eigen components DPI-aware renderen. Dit heeft als voordeel dat er nooit meer pixels dan nodig getekend worden en dat ieder component zichzelf kan optimaliseren per DPI. Het nadeel is dat je ieder component DPI-aware moet zijn, anders breekt het.
In OSX/iOS hoeft dat niet; vanuit het perspectief van de code is een component altijd evenveel pixels, ongeacht de "DPI scaling" setting van het OS. OSX kijkt naar je scaling-setting, rond deze af op een hele multiplier naar boven, rendert het geheel en gaat tot slot deze downscalen naar schermresolutie.
Dat wil zeggen dat als je een 1000x1000 pixels monitor hebt en je wil een "virtuele" schermresolutie van 750x750 pixels, dan zal OSX renderen op 1500x1500 pixels (200% 750x750) en dit samplen naar 1000x1000.
Alle niet-perfecte scaling settings (anders dan 1x, 2x, 3x, 4x, enz) zullen daarom extra performance hit nemen en kan geen gebruik maken van LCD-specifieke "clear-text" rendering, maar het is qua implementatie wel een heel stuk simpeler.
Alle iOS en OSX devices hebben schermresoluties die fijn werken op 2x (alles behalve iphone 6 plus) of 3x (iphone 6 plus) scaling. Zo worden er niet meer pixels dan nodig verwerkt en zal tekst haarscherp zijn. Dat is ook de rede van de 27" 5K iMac: Die is precies 200% van 2560x1440. 4K op 27" is voor goede Windows-like DPI scaling waarschijnlijk ruimschoots scherp genoeg, maar op OSX zit je dan met 200% 1080p (mega-tekst) of iets van ~160% scaling, wat fuzzy tekst geeft. 5K is precies 200%, wat de meest ideale situatie is in OSX.
[Reactie gewijzigd door Gamebuster op 23 juli 2024 05:55]