ИздањС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ мСдија Π‘Π”Π› 2.0.18

ΠžΠ±Ρ˜Π°Π²Ρ™Π΅Π½Π° јС Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π‘Π”Π› 2.0.18 (Π‘ΠΈΠΌΠΏΠ»Π΅ Π”ΠΈΡ€Π΅Ρ†Ρ‚ΠœΠ΅Π΄ΠΈΠ° Π›Π°ΠΈΠ΅Ρ€) која ΠΈΠΌΠ° Π·Π° Ρ†ΠΈΡ™ Π΄Π° ΠΏΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²ΠΈ писањС ΠΈΠ³Π°Ρ€Π° ΠΈ ΠΌΡƒΠ»Ρ‚ΠΈΠΌΠ΅Π΄ΠΈΡ˜Π°Π»Π½ΠΈΡ… Π°ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡ˜Π°. Π‘Π”Π› Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΏΡ€ΡƒΠΆΠ° Π°Π»Π°Ρ‚Π΅ ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ су хардвСрски ΡƒΠ±Ρ€Π·Π°Π½ΠΈ 2Π” ΠΈ 3Π” Π³Ρ€Π°Ρ„ΠΈΡ‡ΠΊΠΈ ΠΈΠ·Π»Π°Π·, ΠΎΠ±Ρ€Π°Π΄Π° ΡƒΠ»Π°Π·Π°, Ρ€Π΅ΠΏΡ€ΠΎΠ΄ΡƒΠΊΡ†ΠΈΡ˜Π° Π·Π²ΡƒΠΊΠ°, 3Π” ΠΈΠ·Π»Π°Π· ΠΏΡ€Π΅ΠΊΠΎ ΠžΠΏΠ΅Π½Π“Π›/ΠžΠΏΠ΅Π½Π“Π› Π•Π‘/Π’ΡƒΠ»ΠΊΠ°Π½ ΠΈ ΠΌΠ½ΠΎΠ³Π΅ Π΄Ρ€ΡƒΠ³Π΅ ΠΏΠΎΠ²Π΅Π·Π°Π½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π΅. Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° јС написана Π½Π° Π¦ ΠΈ дистрибуира сС ΠΏΠΎΠ΄ Π·Π»ΠΈΠ± Π»ΠΈΡ†Π΅Π½Ρ†ΠΎΠΌ. Π’Π΅Π·ΠΈΠ²Π°ΡšΠ° су ΠΎΠ±Π΅Π·Π±Π΅Ρ’Π΅Π½Π° Π·Π° ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ΅ Π‘Π”Π› могућности Ρƒ ΠΏΡ€ΠΎΡ˜Π΅ΠΊΡ‚ΠΈΠΌΠ° Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΠΌ програмским Ρ˜Π΅Π·ΠΈΡ†ΠΈΠΌΠ°. Π¨ΠΈΡ„Ρ€Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ΅ сС дистрибуира ΠΏΠΎΠ΄ Π—Π»ΠΈΠ± Π»ΠΈΡ†Π΅Π½Ρ†ΠΎΠΌ.

Π£ Π½ΠΎΠ²ΠΎΠΌ ΠΈΠ·Π΄Π°ΡšΡƒ:

  • Для ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ прСдоставлСна информация ΠΎ вСрсии SDL, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ данная функция появилась. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° автоматичСская синхронизация Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π² wiki с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΌΠΈ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ:
    • SDL_RenderGeometry() ΠΈ SDL_RenderGeometryRaw() для отрисовки ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»ΡŒΠ½Ρ‹Ρ… Ρ„ΠΈΠ³ΡƒΡ€ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ 2D Render API.
    • SDL_SetTextureUserData() ΠΈ SDL_GetTextureUserData() для привязки Π΄Π°Π½Π½Ρ‹Ρ… прилоТСния ΠΊ тСкстурС.
    • SDL_RenderWindowToLogical() ΠΈ SDL_RenderLogicalToWindow() для прСобразования ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ ΠΎΠΊΠ½Π° ΠΈ логичСскими ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ отрисовки.
    • SDL_RenderSetVSync() для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ синхронизации Π²Ρ‹Π²ΠΎΠ΄Π° с ΠΊΠ°Π΄Ρ€ΠΎΠ²Ρ‹ΠΌ гасящим ΠΈΠΌΠΏΡƒΠ»ΡŒΡΠΎΠΌ (vblank).
    • SDL_PremultiplyAlpha() для примСнСния прозрачности ΠΊ Π±Π»ΠΎΠΊΠ°ΠΌ пиксСлСй Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ SDL_PIXELFORMAT_ARGB8888.
    • SDL_SetWindowMouseRect() ΠΈ SDL_GetWindowMouseRect() для ограничСния двиТСния курсора ΠΌΡ‹ΡˆΠΈ Π·Π°Π΄Π°Π½Π½ΠΎΠΉ ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ ΠΎΠΊΠ½Π°.
    • SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() ΠΈ SDL_JoystickHasRumbleTriggers() для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΈΠ³Ρ€ΠΎΠ²Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠΌ ΠΈ дТойстиком эффСкта Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΠΎΠΉ Π²ΠΈΠ±Ρ€Π°Ρ†ΠΈΠΈ (rumble)
    • SDL_GetWindowICCProfile() для получСния Ρ†Π²Π΅Ρ‚ΠΎΠ²ΠΎΠ³ΠΎ ICC-профиля ΠΎΠΊΠ½Π° (для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ измСнСния профиля ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ событиС SDL_WINDOWEVENT_ICCPROF_CHANGED).
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ Π½ΠΎΠ²Ρ‹Π΅ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ: SDL_HINT_APP_NAME для ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‡ΠΈ свСдСний ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠΈ прилоТСния ΠΈ SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ прозрачности для ΠΎΠΊΠΎΠ½ EGL.
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π½ΠΎΠ²ΠΎΠ΅ событиС ΠΎΠΊΠ½Π° SDL_WINDOWEVENT_DISPLAY_CHANGED, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ гСнСрируСтся ΠΏΡ€ΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ экрана, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ показываСтся ΠΎΠΊΠ½ΠΎ.
  • ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ опрСдСлСния Ρ‚ΠΎΡ‡Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² двиТСния колСса ΠΌΡ‹ΡˆΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠΎΠ»Π΅ΠΉ Β«preciseXΒ» ΠΈ Β«preciseYΒ» Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… события.
  • Ѐункция SDL_WaitEvent() ΠΏΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° для сниТСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° CPU.
  • API hidapi ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Ρ‘Π½ Π² ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡŽ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½Ρ‹Ρ… ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ доступСн Ρ‡Π΅Ρ€Π΅Π· Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» SDL_hidapi.h.
  • На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Windows ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ двиТСния ΠΌΡ‹ΡˆΠΈ Π² Windows Remote Desktop. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ SDL_HINT_IME_SHOW_UI для ΠΏΠΎΠΊΠ°Π·Π° Ρ€ΠΎΠ΄Π½Ρ‹Ρ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² интСрфСйса (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‚ΡΡ). Для UWP-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ вмСсто XInput задСйствован WGI для ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ΠΎΠ² Π²Π²ΠΎΠ΄Π°.
  • Для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Linux Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊΠΈ: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME для привязки дСйствий, ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹Ρ… ΠΏΡ€ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ хранитСля экрана; SDL_HINT_LINUX_JOYSTICK_CLASSIC для Π²Ρ‹Π±ΠΎΡ€Π° ΠΊΠ°ΠΊΠΎΠ΅ ΠΈΠ· устройств (/dev/input/js* ΠΈΠ»ΠΈ /dev/input/event*) ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для дТойстика; SDL_HINT_JOYSTICK_DEVICE для установки устройства, ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅ΠΌΠΎΠ³ΠΎ для дТойстика. Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° функция SDL_LinuxSetThreadPriorityAndPolicy() для управлСния расстановки ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠ² для ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ².
  • Для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ Android Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π²Ρ‹Π²ΠΎΠ΄Π° ΠΈ Π·Π°Ρ…Π²Π°Ρ‚Π° Π·Π²ΡƒΠΊΠ° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ API AAudio. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€Π° Steam Controller (для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ SDL_HINT_JOYSTICK_HIDAPI_STEAM).

Π”ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅: Один ΠΈΠ· Π°Π²Ρ‚ΠΎΡ€ΠΎΠ² SDL Π Π°ΠΉΠ°Π½ Π“ΠΎΡ€Π΄ΠΎΠ½ (icculus) сообщил, Ρ‡Ρ‚ΠΎ ΠΏΠ»Π°Π½ΠΈΡ€ΡƒΠ΅Ρ‚ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² SDL простой 3D API, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ возмоТности API соврСмСнных GPU (Vulkan, Direct3D 12, Metal). Π€ΠΈΠ½Π°Π½ΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ эту Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π±ΡƒΠ΄Π΅Ρ‚ компания Epic Games, Π² Ρ€Π°ΠΌΠΊΠ°Ρ… ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Epic Megagrant. Заявку Π½Π° Π³Ρ€Π°Π½Ρ‚ Π“ΠΎΡ€Π΄ΠΎΠ½ ΠΏΠΎΠ΄Π°Π» Π² ΠΌΠ°Π΅ 2021, Π° Π΄Π²Π΅ Π½Π΅Π΄Π΅Π»ΠΈ Π½Π°Π·Π°Π΄ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ» ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚.

Π˜Π·Π²ΠΎΡ€: ΠΎΠΏΠ΅Π½Π½Π΅Ρ‚.Ρ€Ρƒ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€