Π― ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ ΠΊΡΠΏΠΈΠ» 13-Π΄ΡΠΉΠΌΠΎΠ²ΡΠΉ Mac Retina ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ ΠΎΠΊΠ½Π°, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ GLFW, ΠΈΠΌΠ΅ΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ (ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΎΠΊΠ½Π° Π² Π²Π΅ΡΡ Π½Π΅ΠΌ Π»Π΅Π²ΠΎΠΌ ΡΠ³Π»Ρ ΠΈ ΡΠ΅ΠΊΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΎΠΊΠ½Π°). Π€Π»Π°Π³ GLFW_USE_RETINA cmake Π²ΠΊΠ»ΡΡΠ΅Π½, Π½ΠΎ Ρ Π΄ΡΠΌΠ°Ρ, ΡΡΠΎ ΡΡΠΎ Π²Π»ΠΈΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΠΏΠΎΠ²Π΅ΡΡ Π½ΠΎΡΡΡ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³Π° GL (Π½ΠΎ Π½Π° ΡΠΊΡΠΈΠ½ΡΠΎΡΠ΅ ΠΏΠΎΡ ΠΎΠΆΠ΅, ΡΡΠΎ ΡΠ΅Π½Π΄Π΅ΡΠΈΠ½Π³ ΡΠΎΠΆΠ΅ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ, Ρ ΠΎΡΡ ΡΠ»Π°Π³ _GLFW_USE_RETINA ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½ ΠΈ Π² ΠΎΡΠ»Π°Π΄ΡΠΈΠΊΠ΅ Π²Π·ΡΡ ΠΏΡΡΡ ΠΊΠΎΠ΄Π° setWantsBestResolution):
#if defined(_GLFW_USE_RETINA)
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6)
[window->ns.view setWantsBestResolutionOpenGLSurface:YES];
#endif /*MAC_OS_X_VERSION_MAX_ALLOWED*/
#endif /*_GLFW_USE_RETINA*/
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ Π·Π½Π°Ρ, ΡΡΠΎ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ²:
<key>NSHighResolutionCapable</key>
<true/>
Π ΡΠ°ΠΉΠ»Ρ Info.plist
ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡ ΠΏΠΎ ΠΏΡΡΠΈ *.app/Contents/Info.plist
).
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ Π½Π΅ Π·Π½Π°Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΡΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΡΡΠΎΡ ΠΊΠ»ΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅Π΅ HiDPI Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ. Π.
ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π·Π½Π°Π΅Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΎΠ³ΠΎ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ Info.plist
, ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°.
Π§ΡΠΎ ΡΠΊΠ°Π·Π°Π» @shurcooL .
Π― Π΄ΠΎΠ±Π°Π²Π»Ρ Π»ΡΡΡΠΈΠΉ ΡΠ°Π±Π»ΠΎΠ½ plist Π΄Π»Ρ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π³ΠΎ Π²ΡΠΏΡΡΠΊΠ°.
Π‘ΠΏΠ°ΡΠΈΠ±ΠΎ, ΡΡΠΎ ΡΡΠ°Π±ΠΎΡΠ°Π»ΠΎ! ΠΡΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅ΡΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Π΅ ΡΡΠΎΠΉ ΡΡΡΠ°Π½ΠΈΡΡ: https://developer.apple.com/library/mac/documentation/GraphicsAnimation/Conceptual/HighResolutionOSX/Explained/Explained.html#//apple_ref/doc/uid/TP40012302 -CH4- SW10
ΠΡΠΎ Π±ΡΠ»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ 10.9 ΠΈΠ»ΠΈ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°Π»ΠΎ? Π― Π½Π΅ ΠΌΠΎΠ³Ρ ΠΏΡΠΈΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎΠ±Ρ ΠΊΡΠΎ-Π½ΠΈΠ±ΡΠ΄Ρ ΡΠΏΠΎΠΌΠΈΠ½Π°Π» ΠΎΠ± ΡΡΠΎΠΌ Π΄ΠΎ Π²ΡΡ ΠΎΠ΄Π° 10.10.
ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΠΎΠΊΠ°ΠΆΠ΅ΡΡΡ Π·Π΄Π΅ΡΡ, Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ΡΡ ΠΏΠΎΠΈΡΠΊΠΎΠΌ. ΠΡΠΎ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ΅ΡΠ°Π΅Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ, Π½ΠΎ Π΅ΡΠ»ΠΈ ΡΡΠΎ Π½Π΅ Π΄Π»Ρ Π²Π°Ρ, ΠΏΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΡΡ ΠΊ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΡ
ΠΎΠΆΠ΅, ΡΡΠΎ OSX caching plist ΡΠ°ΡΡΠΈΡΠ½ΠΎ. ΠΠΎΡΠ»Π΅ ΡΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΠ» ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ / tmp (Π΄Π»Ρ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ), ΠΎΠΏΡΠΈΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ»Π°ΡΡ.
ΠΠΎΠ²Π΅ΡΠ΅Π»ΠΈΡΡ.
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΠΏΠ°ΠΊΠ΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Ρ Π·Π½Π°Ρ, ΡΡΠΎ ΡΡΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΅ΡΠΈΡΡ, Π΄ΠΎΠ±Π°Π²ΠΈΠ²:
Π ΡΠ°ΠΉΠ»Ρ
Info.plist
ΠΏΠ°ΠΊΠ΅ΡΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ (ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠΌΡ ΠΏΠΎ ΠΏΡΡΠΈ*.app/Contents/Info.plist
).ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, Ρ Π½Π΅ Π·Π½Π°Ρ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΏΡΡΠΈ, ΠΊΡΠΎΠΌΠ΅ ΡΡΠΎΠ³ΠΎ. ΠΡΠ»ΠΈ Π²Ρ Π½Π΅ ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ ΡΡΠΎΡ ΠΊΠ»ΡΡ, ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ»ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠ΅Π΅ HiDPI Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ ΠΎΡ Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ°ΠΊΡΠΎΡΠΎΠ², ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΠΎΠΊΠΎΠ½ Ρ Π½ΠΈΠ·ΠΊΠΈΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈ Ρ. Π.
ΠΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ Π·Π½Π°Π΅Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΡΠΉ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π΄ΠΎΠ±ΠΈΡΡΡΡ ΡΡΠΎΠ³ΠΎ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡΡ
Info.plist
, ΠΏΠΎΠ΄Π΅Π»ΠΈΡΠ΅ΡΡ, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°.