Se lanzó la biblioteca SDL 2.0.18 (Simple DirectMedia Layer), cuyo objetivo es simplificar la escritura de juegos y aplicaciones multimedia. La biblioteca SDL proporciona herramientas como salida de gráficos 2D y 3D acelerada por hardware, procesamiento de entrada, reproducción de audio, salida 3D a través de OpenGL/OpenGL ES/Vulkan y muchas otras operaciones relacionadas. La biblioteca está escrita en C y se distribuye bajo la licencia zlib. Se proporcionan enlaces para utilizar capacidades SDL en proyectos en varios lenguajes de programación. El código de la biblioteca se distribuye bajo la licencia Zlib.
En el nuevo lanzamiento:
- Para cada función, se proporciona información sobre la versión de SDL en la que apareció la función. Se proporciona sincronización automática de la documentación wiki con archivos de encabezado.
- Nuevas funciones adicionales:
- SDL_RenderGeometry() y SDL_RenderGeometryRaw() para renderizar formas arbitrarias usando la API de renderizado 2D.
- SDL_SetTextureUserData() y SDL_GetTextureUserData() para vincular datos de la aplicación a una textura.
- SDL_RenderWindowToLogical() y SDL_RenderLogicalToWindow() para convertir entre coordenadas de ventana y coordenadas de representación lógica.
- SDL_RenderSetVSync() para habilitar la sincronización de salida con pulso de supresión vertical (vblank).
- SDL_PremultiplyAlpha() para aplicar transparencia a bloques de píxeles en el formato SDL_PIXELFORMAT_ARGB8888.
- SDL_SetWindowMouseRect() y SDL_GetWindowMouseRect() para limitar el movimiento del cursor del mouse a un área específica de la ventana.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() y SDL_JoystickHasRumbleTriggers() para comprobar si el controlador del juego y el joystick admiten el efecto de vibración adaptativa (retumbo)
- SDL_GetWindowICCProfile() para obtener el perfil de color ICC de la ventana (el evento SDL_WINDOWEVENT_ICCPROF_CHANGED se propone para verificar cambios en el perfil).
- Se han agregado nuevos atributos: SDL_HINT_APP_NAME para transmitir información sobre el nombre de la aplicación y SDL_HINT_VIDEO_EGL_ALLOW_TRANSPARENCY para habilitar la transparencia para las ventanas EGL.
- Se agregó un nuevo evento de ventana, SDL_WINDOWEVENT_DISPLAY_CHANGED, que se genera cuando cambia la pantalla en la que se muestra la ventana.
- Es posible definir los parámetros exactos del movimiento de la rueda del ratón utilizando los campos “preciseX” y “preciseY” en los parámetros del evento.
- La función SDL_WaitEvent() ha sido rediseñada para reducir la carga de la CPU.
- La API de Hidapi se ha movido a la categoría pública y ahora está disponible a través del archivo de encabezado SDL_hidapi.h.
- En la plataforma Windows Detección mejorada del movimiento relativo del ratón en Windows Escritorio remoto. Se agregó la bandera SDL_HINT_IME_SHOW_UI para mostrar los componentes nativos de la interfaz de usuario (ocultos por defecto). Para las aplicaciones UWP, se ha utilizado WGI en lugar de XInput para mejorar la compatibilidad con los controladores de entrada.
- Para plataforma Linux Se han implementado las siguientes características: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME para vincular las acciones que se muestran cuando se desactiva el protector de pantalla; SDL_HINT_LINUX_JOYSTICK_CLASSIC para seleccionar cuál de los dispositivos (/dev/input/js* o /dev/input/event*) usar para el joystick; SDL_HINT_JOYSTICK_DEVICE para configurar el dispositivo abierto para el joystick. Se ha añadido la función SDL_.LinuxUtilice SetThreadPriorityAndPolicy() para controlar la configuración de prioridad de los subprocesos.
- Para plataforma Android Se ha implementado la compatibilidad con la salida y captura de audio mediante la API AAudio. La compatibilidad con el Steam Controller está desactivada por defecto (se ha propuesto la bandera SDL_HINT_JOYSTICK_HIDAPI_STEAM para habilitarla).
Adición: Uno de los autores de SDL, Ryan Gordon (icculus), dijo que planea agregar una API 3D simple a SDL que admita las capacidades API de las GPU modernas (Vulkan, Direct3D 12, Metal). Este desarrollo será financiado por Epic Games como parte del programa Epic Megagrant. Gordon presentó una solicitud para la subvención en mayo de 2021 y hace dos semanas recibió una respuesta positiva.
Fuente: opennet.ru
