Π Π΅Π»ΠΈΠ· Π½Π° ΠΌΡƒΠ»Ρ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° SDL 3.4.0

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Ρ€Π΅Π»ΠΈΠ· Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° SDL 3.4.0 (Simple DirectMedia Layer). Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π΅ насочСна към опростяванС Π½Π° написванСто Π½Π° ΠΈΠ³Ρ€ΠΈ ΠΈ ΠΌΡƒΠ»Ρ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½ΠΈ прилоТСния, ΠΈ прСдоставя Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π·Π° Ρ…Π°Ρ€Π΄ΡƒΠ΅Ρ€Π½ΠΎ ускорСно ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° 2D ΠΈ 3D Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° входящи Π΄Π°Π½Π½ΠΈ, Π²ΡŠΠ·ΠΏΡ€ΠΎΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π·Π²ΡƒΠΊ ΠΈ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° 3D ΠΏΡ€Π΅Π· OpenGL, OpenGL ES, Metal, Direct3D ΠΈΠ»ΠΈ Vulkan. ΠšΠΎΠ΄ΡŠΡ‚ Π΅ написан Π½Π° Π΅Π·ΠΈΠΊΠ° C ΠΈ сС разпространява ΠΏΠΎΠ΄ лицСнзията Zlib. ΠžΡΠΈΠ³ΡƒΡ€ΡΠ²Π°Ρ‚ сС ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° SDL Π² ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ½ΠΈ Π΅Π·ΠΈΡ†ΠΈ.

SDL 3.4.0 Π΅ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½Π° стабилна вСрсия Π² сСрията SDL 3.x – ΠΏΡŠΡ€Π²Π°Ρ‚Π° стабилна вСрсия Π΅ обявСна Π² сСрията 3.2.x, Π° вСрсията 3.3.x Π΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΎΠ½ΠΈΡ€Π°Π½Π° ΠΊΠ°Ρ‚ΠΎ СкспСримСнтална. ΠžΡΠ½ΠΎΠ²Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² SDL 3.4.0 са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с подобряванС Π½Π° прСносимостта ΠΌΠ΅ΠΆΠ΄Ρƒ API Π·Π° 3D GPU ΠΈ API Π·Π° Π΄Π²ΡƒΠΌΠ΅Ρ€Π½ΠΎ рисуванС, Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π² WebAssembly с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Emscripten, подобряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° с Π³Ρ€Π°Ρ„ΠΈΡ‡Π½ΠΈ Ρ‚Π°Π±Π»Π΅Ρ‚ΠΈ ΠΈ Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ ΠΏΠ΅Ρ€Π°, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ добавянС Π½Π° Π²Π³Ρ€Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° изобраТСния PNG.

Π‘Ρ€Π΅Π΄ Π½ΠΎΠ²ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² SDL 3.4.0:

  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π²Π³Ρ€Π°Π΄Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° изобраТСния Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° PNG, Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() ΠΈ SDL_SavePNG_IO(). Π—Π° опрСдСлянС Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° (PNG ΠΈΠ»ΠΈ BMP) ΠΈ Π·Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° изобраТСния ΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ²ΡŠΡ€Ρ…Π½ΠΎΡΡ‚ΠΈ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SDL_LoadSurface() ΠΈ SDL_LoadSurface_IO().
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функция SDL_RotateSurface() Π·Π° създаванС Π½Π° Π·Π°Π²ΡŠΡ€Ρ‚ΡΠ½Π° копия Π½Π° ΠΏΠΎΠ²ΡŠΡ€Ρ…Π½ΠΎΡΡ‚Ρ‚Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функция SDL_CreateAnimatedCursor() Π·Π° създаванС Π½Π° Ρ†Π²Π΅Ρ‚Π½ΠΈ Π°Π½ΠΈΠΌΠΈΡ€Π°Π½ΠΈ курсори, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΡ€ΠΈΠ·Π½Π°ΠΊ SDL_HINT_MOUSE_DPI_SCALE_CURSORS Π·Π° Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΡ‡Π½ΠΎ ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° курсоритС Π² зависимост ΠΎΡ‚ Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅ Π½Π° Π΅ΠΊΡ€Π°Π½Π°.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() ΠΈ SDL_GetWindowProgressValue() Π·Π° ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° прогрСса Π½Π° опСрацията Π² ΠΈΠΊΠΎΠ½ΠΊΠ°Ρ‚Π° Π½Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ Π² ΠΏΠ°Π½Π΅Π»Π° със Π·Π°Π΄Π°Ρ‡ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са свойства Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с GPU API Π½Π° ΠΏΠΎ-старо ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΎ Π΅ свойство SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER ΠΈ SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN Π·Π° настройка ΠΈ задСйстванС Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° API Vulkan ΠΏΡ€ΠΈ създаванС Π½Π° GPU устройства.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ функция SDL_GetGPUDeviceProperties() Π·Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Π½Π° информация Π·Π° GPU.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ SDL_CreateGPURenderer() ΠΈ SDL_GetGPURendererDevice() Π·Π° задСйстванС Π½Π° GPU ΠΏΡ€ΠΈ 2D рисуванС, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() ΠΈ SDL_DestroyGPURenderState() Π·Π° задСйстванС Π½Π° Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Π½ΠΈ ΡˆΠ΅ΠΉΠ΄ΡŠΡ€ΠΈ ΠΏΡ€ΠΈ 2D рисуванС.
  • ΠŸΡ€ΠΈ 2D-отрисовкС с ΠΏΠΎΠΌΠΎΡ‰ΡŽ Π½Π° GPU Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° YUV тСкстури ΠΈ HDR. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° тСкстури с ΠΏΠ°Π»ΠΈΡ‚Ρ€ΠΈ, Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с ΠΊΠΎΠΈΡ‚ΠΎ са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ SDL_GetTexturePalette() ΠΈ SDL_SetTexturePalette(). Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ SDL_GetPixelFormatFromGPUTextureFormat() ΠΈ SDL_GetGPUTextureFormatFromPixelFormat() Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ Π½Π° тСкстури, ΠΊΠ°ΠΊΡ‚ΠΎ ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER ΠΈ SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER Π·Π° създаванС Π½Π° 2D тСкстури ΠΎΡ‚ GPU тСкстури. Π—Π° настройка Π½Π° тСкстуритС са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode(), SDL_SetRenderTextureAddressMode().
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ SDL_SCALEMODE_PIXELART Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ Π·Π° пиксСлна Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΡŠΠΌ Π·Π° ΠΌΠ°Ρ‰Π°Π±ΠΈΡ€Π°Π½Π΅.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ са ΡΡŠΠ±ΠΈΡ‚ΠΈΡ SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED, SDL_EVENT_SCREEN_KEYBOARD_SHOWN, SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, SDL_EVENT_PINCH_BEGIN, SDL_EVENT_PINCH_UPDATE, SDL_EVENT_PINCH_END ΠΈ SDL_EVENT_AUDIO_DEVICE_ADDED, ΠΊΠΎΠΈΡ‚ΠΎ сС задСйстват ΠΏΡ€ΠΈ промяна Π½Π° Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅, ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅/скриванС Π½Π° Π΅ΠΊΡ€Π°Π½Π½Π°Ρ‚Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°, Π΅ΠΊΡ€Π°Π½Π½ΠΈ ТСстовС ΠΈ добавянС Π½Π° Π·Π²ΡƒΠΊΠΎΠ²ΠΎ устройство.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ SDL_PutAudioStreamDataNoCopy() ΠΈ SDL_PutAudioStreamPlanarData() Π·Π° ΠΏΠΎ-Π΅Ρ„Π΅ΠΊΡ‚ΠΈΠ²Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π·Π²ΡƒΠΊΠΎΠ²ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° ΠΈΠ³Ρ€ΠΎΠ²ΠΈ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ Nintendo Switch 2, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ Ρ‡Ρ€Π΅Π· USB. Π Π°Π·ΡˆΠΈΡ€Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅Ρ€ΠΈ 8BitDo, FlyDigi ΠΈ Hand Held Legend SInput.
  • Π—Π° подобряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° WebAssembly прилоТСния, ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° Emscripten, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° функцията SDL_SetWindowFillDocument() ΠΈ са Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING ΠΈ SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING.
  • На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Linux Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π°Ρ‚ΠΎΠΌΠ°Ρ€Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° KMSDRM, Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ΠΈ Ρ‡Ρ€Π΅Π· свойството SDL_HINT_KMSDRM_ATOMIC. Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER Π·Π° Π·Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅ Π½Π° устройството Π·Π° ΠΈΠ·Ρ…ΠΎΠ΄ wl_output, асоциирано с Π΅ΠΊΡ€Π°Π½Π°, Π² срСди Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Wayland.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС със Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS ΠΈ VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster