ИздаванС Π½Π° ΠΌΡƒΠ»Ρ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° 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 са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с подобряванС Π½Π° прСносимостта ΠΌΠ΅ΠΆΠ΄Ρƒ 3D GPU API ΠΈ 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.
  • Π—Π° подобряванС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° WebAssambly прилоТСния, ΡΡŠΠ±ΠΈΡ€Π°Π½ΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° 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