Versión de la biblioteca multimedia SDL 2.0.18

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 mouse en el Escritorio remoto de Windows. Se agregó el atributo SDL_HINT_IME_SHOW_UI para mostrar los componentes de la interfaz nativa (ocultos de forma predeterminada). Para aplicaciones UWP, se utiliza WGI en lugar de XInput para mejorar la compatibilidad con los controladores de entrada.
  • Para la plataforma Linux, se han implementado los siguientes atributos: SDL_HINT_SCREENSAVER_INHIBIT_ACTIVITY_NAME para vincular acciones que se muestran cuando el protector de pantalla está deshabilitado; SDL_HINT_LINUX_JOYSTICK_CLASSIC para seleccionar qué dispositivo (/dev/input/js* o /dev/input/event*) usar para el joystick; SDL_HINT_JOYSTICK_DEVICE para configurar el dispositivo para que se abra para el joystick. Se agregó la función SDL_LinuxSetThreadPriorityAndPolicy() para controlar la priorización de subprocesos.
  • Para la plataforma Android, se ha implementado soporte para salida y captura de audio mediante la API AAudio. De forma predeterminada, la compatibilidad con Steam Controller está deshabilitada (se ha sugerido habilitar el indicador SDL_HINT_JOYSTICK_HIDAPI_STEAM).

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

Añadir un comentario