Se ha lanzado la biblioteca SDL 2.0.18 (Simple DirectMedia Layer), orientada a simplificar la escritura de juegos y aplicaciones multimedia. La biblioteca SDL proporciona herramientas como salida acelerada por hardware de gráficos 2D y 3D, manejo de entradas, reproducción de sonido, 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. Para utilizar las capacidades de SDL en proyectos en varios lenguajes de programación, se proporcionan enlaces. El código de la biblioteca se distribuye bajo la licencia Zlib.
En esta nueva versión:
- Para cada función se proporciona información sobre la versión de SDL en la que apareció dicha función. Se asegura la sincronización automática de la documentación en la wiki con los archivos de encabezado.
- Se han añadido nuevas funciones:
- SDL_RenderGeometry() y SDL_RenderGeometryRaw() para dibujar formas arbitrarias mediante el 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 lógicas de renderizado.
- SDL_RenderSetVSync() para habilitar la sincronización de salida con el pulso de apagado de fotogramas (vblank).
- SDL_PremultiplyAlpha() para aplicar transparencia a bloques de píxeles en el formato SDL_PIXELFORMAT_ARGB8888.
- SDL_SetWindowMouseRect() y SDL_GetWindowMouseRect() para restringir el movimiento del cursor a un área determinada de la ventana.
- SDL_GameControllerHasRumble(), SDL_GameControllerHasRumbleTriggers(), SDL_JoystickHasRumble() y SDL_JoystickHasRumbleTriggers() para verificar el soporte de efectos de vibración adaptativa (rumble) en el controlador de juegos y el joystick.
- SDL_GetWindowICCProfile() para obtener el perfil de color ICC de la ventana (para verificar el cambio de perfil se ha propuesto el evento SDL_WINDOWEVENT_ICCPROF_CHANGED).
- Se han añadido nuevos indicadores: 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 en las ventanas EGL.
- Se ha añadido un nuevo evento de ventana SDL_WINDOWEVENT_DISPLAY_CHANGED, que se genera al cambiar la pantalla donde se muestra la ventana.
- Se ha proporcionado la capacidad de definir parámetros de movimiento precisos de la rueda del ratón mediante los campos "preciseX" y "preciseY" en los parámetros del evento.
- La función SDL_WaitEvent() ha sido rediseñada para reducir la carga en la CPU.
- La API hidapi ha sido trasladada a la categoría pública y ahora está disponible a través del archivo de encabezado SDL_hidapi.h.
- En la plataforma Windows, se ha mejorado la detección del movimiento relativo del ratón en Windows Remote Desktop. Se ha añadido el indicador SDL_HINT_IME_SHOW_UI para mostrar los componentes nativos de la interfaz (por defecto están ocultos). Para las aplicaciones UWP, se ha utilizado WGI en lugar de XInput para mejorar el soporte de los controladores de entrada.
- Para la plataforma Linux, se han implementado los indicadores: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME para asociar acciones que se muestran al desactivar el salvapantallas; SDL_HINT_LINUX_JOYSTICK_CLASSIC para elegir qué dispositivo (/dev/input/js* o /dev/input/event*) utilizar para el joystick; SDL_HINT_JOYSTICK_DEVICE para establecer el dispositivo que se abrirá para el joystick. Se ha añadido la función SDL_LinuxSetThreadPriorityAndPolicy() para gestionar la asignación de prioridades para los hilos.
- Para la plataforma Android, se ha implementado el soporte para la salida y captura de audio mediante la API AAudio. Por defecto, el soporte para el controlador Steam Controller está deshabilitado (el indicador SDL_HINT_JOYSTICK_HIDAPI_STEAM se ha propuesto para habilitarlo).
Adición: Uno de los autores de SDL, Ryan Gordon (icculus), ha informado que planea añadir a SDL una API 3D sencilla que soporte las capacidades de las API de las GPU modernas (Vulkan, Direct3D 12, Metal). Esta desarrollo será financiado por Epic Games, en el marco del programa Epic Megagrant. Gordon presentó la solicitud de subvención en mayo de 2021, y hace dos semanas recibió una respuesta positiva.
Fuente: opennet.ru
