Rilis Perpustakaan Media SDL 2.0.18

Pustaka SDL 2.0.18 (Simple DirectMedia Layer) dirilis, bertujuan untuk menyederhanakan penulisan game dan aplikasi multimedia. Pustaka SDL menyediakan alat seperti keluaran grafis 2D dan 3D yang dipercepat perangkat keras, pemrosesan masukan, pemutaran audio, keluaran 3D melalui OpenGL/OpenGL ES/Vulkan dan banyak operasi terkait lainnya. Perpustakaan ditulis dalam C dan didistribusikan di bawah lisensi zlib. Binding disediakan untuk menggunakan kemampuan SDL dalam proyek dalam berbagai bahasa pemrograman. Kode perpustakaan didistribusikan di bawah lisensi Zlib.

Dalam rilis baru:

  • Untuk setiap fungsi, informasi disediakan tentang versi SDL di mana fungsi tersebut muncul. Sinkronisasi otomatis dokumentasi wiki dengan file header disediakan.
  • Fitur Lainnya:
    • SDL_RenderGeometry() dan SDL_RenderGeometryRaw() untuk merender bentuk arbitrer menggunakan 2D Render API.
    • SDL_SetTextureUserData() dan SDL_GetTextureUserData() untuk mengikat data aplikasi ke suatu tekstur.
    • SDL_RenderWindowToLogical() dan SDL_RenderLogicalToWindow() untuk mengkonversi antara koordinat jendela dan koordinat render logis.
    • SDL_RenderSetVSync() untuk mengaktifkan sinkronisasi output dengan pulsa blanking vertikal (vblank).
    • SDL_PremultiplyAlpha() untuk menerapkan transparansi pada blok piksel dalam format SDL_PIXELFORMAT_ARGB8888.
    • SDL_SetWindowMouseRect() dan SDL_GetWindowMouseRect() untuk membatasi pergerakan kursor mouse pada area tertentu di jendela.
    • SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() dan SDL_JoystickHasRumbleTriggers() untuk memeriksa apakah pengontrol game dan joystick mendukung efek getaran adaptif (gemuruh)
    • SDL_GetWindowICCProfile() untuk mendapatkan profil warna ICC jendela (acara SDL_WINDOWEVENT_ICCPROF_CHANGED diusulkan untuk memeriksa perubahan profil).
  • Atribut baru telah ditambahkan: SDL_HINT_APP_NAME untuk menyampaikan informasi tentang nama aplikasi dan SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARNCY untuk mengaktifkan transparansi untuk jendela EGL.
  • Menambahkan peristiwa jendela baru, SDL_WINDOWEVENT_DISPLAY_CHANGED, yang dihasilkan ketika layar tempat jendela ditampilkan berubah.
  • Dimungkinkan untuk menentukan parameter yang tepat dari pergerakan roda mouse menggunakan bidang β€œpreciseX” dan β€œpreciseY” di parameter acara.
  • Fungsi SDL_WaitEvent() telah didesain ulang untuk mengurangi beban CPU.
  • API hidapi telah dipindahkan ke kategori publik dan sekarang tersedia melalui file header SDL_hidapi.h.
  • Pada platform Windows, peningkatan deteksi pergerakan relatif mouse di Windows Remote Desktop. Menambahkan atribut SDL_HINT_IME_SHOW_UI untuk menampilkan komponen antarmuka asli (disembunyikan secara default). Untuk aplikasi UWP, WGI digunakan sebagai pengganti XInput untuk meningkatkan dukungan bagi pengontrol input.
  • Untuk platform Linux, atribut berikut telah diterapkan: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME untuk tindakan pengikatan yang ditampilkan saat screen saver dinonaktifkan; SDL_HINT_LINUX_JOYSTICK_CLASSIC untuk memilih perangkat mana (/dev/input/js* atau /dev/input/event*) yang akan digunakan sebagai joystick; SDL_HINT_JOYSTICK_DEVICE untuk mengatur perangkat agar terbuka untuk joystick. Menambahkan fungsi SDL_LinuxSetThreadPriorityAndPolicy() untuk mengontrol prioritas thread.
  • Untuk platform Android, dukungan untuk output dan pengambilan audio menggunakan AAudio API telah diterapkan. Secara default, dukungan untuk Steam Controller dinonaktifkan (flag SDL_HINT_JOYSTICK_HIDAPI_STEAM telah disarankan untuk diaktifkan).

Tambahan: Salah satu penulis SDL, Ryan Gordon (icculus), mengatakan bahwa ia berencana menambahkan API 3D sederhana ke SDL yang mendukung kemampuan API GPU modern (Vulkan, Direct3D 12, Metal). Pengembangan ini akan dibiayai oleh Epic Games sebagai bagian dari program Epic Megagrant. Gordon mengajukan permohonan hibah pada Mei 2021, dan dua minggu lalu mendapat tanggapan positif.

Sumber: opennet.ru

Tambah komentar