Thư viện SDL 2.0.18 (Lớp DirectMedia Đơn giản) đã được phát hành, nhằm mục đích đơn giản hóa việc viết trò chơi và ứng dụng đa phương tiện. Thư viện SDL cung cấp các công cụ như đầu ra đồ họa 2D và 3D được tăng tốc phần cứng, xử lý đầu vào, phát lại âm thanh, đầu ra 3D thông qua OpenGL/OpenGL ES/Vulkan và nhiều hoạt động liên quan khác. Thư viện được viết bằng C và được phân phối theo giấy phép zlib. Các ràng buộc được cung cấp để sử dụng khả năng SDL trong các dự án bằng nhiều ngôn ngữ lập trình khác nhau. Mã thư viện được phân phối theo giấy phép Zlib.
Trong bản phát hành mới:
- Đối với mỗi chức năng, thông tin được cung cấp về phiên bản SDL mà chức năng đó xuất hiện. Tự động đồng bộ hóa tài liệu wiki với các tệp tiêu đề được cung cấp.
- Các tính năng mới được thêm vào:
- SDL_RenderGeometry() và SDL_RenderGeometryRaw() để hiển thị các hình dạng tùy ý bằng API kết xuất 2D.
- SDL_SetTextureUserData() và SDL_GetTextureUserData() để liên kết dữ liệu ứng dụng với một kết cấu.
- SDL_RenderWindowToLogical() và SDL_RenderLogicalToWindow() để chuyển đổi giữa tọa độ cửa sổ và tọa độ hiển thị logic.
- SDL_RenderSetVSync() để bật đồng bộ hóa đầu ra với xung trống dọc (vblank).
- SDL_PremultiplyAlpha() để áp dụng độ trong suốt cho các khối pixel ở định dạng SDL_PIXELFORMAT_ARGB8888.
- SDL_SetWindowMouseRect() và SDL_GetWindowMouseRect() để hạn chế di chuyển con trỏ chuột đến một vùng nhất định của cửa sổ.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() và SDL_JoystickHasRumbleTriggers() để kiểm tra xem bộ điều khiển trò chơi và cần điều khiển có hỗ trợ hiệu ứng rung thích ứng (rumble) hay không
- SDL_GetWindowICCProfile() để lấy cấu hình màu ICC của cửa sổ (sự kiện SDL_WINDOWEVENT_ICCPROF_CHANGED được đề xuất để kiểm tra các thay đổi cấu hình).
- Các thuộc tính mới đã được thêm vào: SDL_HINT_APP_NAME để truyền tải thông tin về tên ứng dụng và SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY để bật tính minh bạch cho các cửa sổ EGL.
- Đã thêm sự kiện cửa sổ mới, SDL_WINDOWEVENT_DISPLAY_CHANGED, được tạo khi màn hình hiển thị cửa sổ thay đổi.
- Có thể xác định các tham số chính xác của chuyển động của bánh xe chuột bằng cách sử dụng các trường “preciseX” và “preciseY” trong các tham số sự kiện.
- Hàm SDL_WaitEvent() đã được thiết kế lại để giảm tải CPU.
- API hidapi đã được chuyển sang danh mục công khai và hiện có sẵn thông qua tệp tiêu đề SDL_hidapi.h.
- Trên nền tảng Windows, tính năng phát hiện chuyển động tương đối của chuột trong Windows Remote Desktop đã được cải thiện. Đã thêm thuộc tính SDL_HINT_IME_SHOW_UI để hiển thị các thành phần giao diện gốc (ẩn theo mặc định). Đối với các ứng dụng UWP, WGI được sử dụng thay cho XInput để cải thiện khả năng hỗ trợ cho bộ điều khiển đầu vào.
- Đối với nền tảng Linux, các thuộc tính sau đã được triển khai: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME cho các hành động liên kết được hiển thị khi trình bảo vệ màn hình bị tắt; SDL_HINT_LINUX_JOYSTICK_CLASSIC để chọn thiết bị nào (/dev/input/js* hoặc /dev/input/event*) sẽ sử dụng cho cần điều khiển; SDL_HINT_JOYSTICK_DEVICE để đặt thiết bị mở cho cần điều khiển. Đã thêm hàm SDL_LinuxSetThreadPriorityAndPolicy() để kiểm soát mức độ ưu tiên của luồng.
- Đối với nền tảng Android, hỗ trợ xuất và thu âm thanh bằng API AAudio đã được triển khai. Theo mặc định, hỗ trợ cho Bộ điều khiển Steam bị tắt (cờ SDL_HINT_JOYSTICK_HIDAPI_STEAM đã được đề xuất để bật).
Bổ sung: Một trong những tác giả của SDL, Ryan Gordon (icculus), cho biết anh dự định thêm API 3D đơn giản vào SDL để hỗ trợ khả năng API của GPU hiện đại (Vulkan, Direct3D 12, Metal). Sự phát triển này sẽ được Epic Games tài trợ như một phần của chương trình Epic Megagrant. Gordon đã nộp đơn xin tài trợ vào tháng 2021 năm XNUMX và hai tuần trước đã nhận được phản hồi tích cực.
Nguồn: opennet.ru
