SDL 2.0.22 llega con mejoras para Wayland y nuevas funciones
Se dio a conocer el lanzamiento de la nueva versión de SDL 2.0.22, versión en la cual se han realizado diversas mejoras de compatibilidad con Wayland, asi como tambien se ha introducido diversas mejoras y más.
Para quienes desconocen de la biblioteca SDL, deben saber que esta, 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 y muchas otras operaciones relacionadas.
SDL es análogo a DirectX, a lo cuál se podría argumentar que el análogo de DirectX es OpenGL. DirectX, también funciona con dispositivos de entrada y con sonido. Cuando Loki Software comenzó a hacer ports de juegos AAA en Linux, reemplazó Direct3D con OpenGL y no hubo reemplazo para todo lo demás y dado que actualmente es difícil escribir aplicaciones en «X» incluso con WinAPI en la API X11, pero con DirectDraw en WinAPI lo cual ya es un problema, es el cómo nació SDL.
Principales novedades de SDL 2.0.22
En esta nueva versión que se presenta, se destacan las mejoras de compatibilidad con el protocolo Wayland, pues inicialmente, se planeó cambiar a usar el protocolo Wayland de forma predeterminada en entornos que brindan soporte simultáneo para Wayland y X11, pero debido a problemas relacionados con Wayland en juegos y controladores NVIDIA, se decidió posponer la transición (en entornos Wayland con el componente XWayland, la salida todavía se usa usando el protocolo X11).
Para usar Wayland, se debe establecer la variable de entorno «SDL_VIDEODRIVER=wayland» antes de iniciar la aplicación, o agregar la función ‘SDL_SetHint(SDL_HINT_VIDEODRIVER, «wayland,x11»)’ al código antes de llamar a SDL_Init(). La compilación con Wayland requiere al menos libwayland-client 1.18.0.
Otro de los cambios que se destaca es que se agregó un conjunto de funciones para manipular áreas rectangulares (determinar la ocurrencia de puntos, borrar, comparar, fusionar, etc.), operando con coordenadas y tamaños basados en números de punto flotante.
Para Linux, se agregó el indicador SDL_HINT_X11_WINDOW_TYPE para establecer el parámetro _NET_WM_WINDOW_TYPE en Windows, ademas de que tambien se agregó el indicador SDL_HINT_VIDEO_WAYLAND_PREFER_LIBDECOR para que Linux use libdecor con servidores compuestos que admitan xdg-decoration.
Para Android, la función SDL_AndroidSendMessage() se implementa para enviar un comando arbitrario al controlador Java SDL.
De los demás cambios que se destacan:
- Se agregó el indicador SDL_HINT_QUIT_ON_LAST_WINDOW_CLOSE para habilitar la entrega del evento SDL_QUIT cuando se cierra la última ventana de la aplicación.
- Se agregó el rasgo SDL_HINT_JOYSTICK_ROG_CHAKRAM para manejar el mouse ROG Chakram como un joystick.
Se agregó la función SDL_RenderGetWindow() para obtener la ventana asociada con SDL Renderer. - Se agregó la función SDL_IsTextInputShown() para verificar si se muestra el área de entrada de texto.
- Se agregó la función SDL_ClearComposition() para borrar el área de entrada de texto sin deshabilitar el método de entrada (IME).
- Se agregó el evento SDL_TEXTEDITING_EXT para manejar áreas de entrada de texto largas y el indicador SDL_HINT_IME_SUPPORT_EXTENDED_TEXT para habilitar este evento.
- Se agregó el indicador SDL_HINT_MOUSE_RELATIVE_MODE_CENTER para habilitar la restricción del mouse solo al centro de la ventana en lugar de a toda la ventana cuando el modo relativo está habilitado.
- Captura automática habilitada del mouse al hacer clic en los botones del mouse. El atributo SDL_HINT_MOUSE_AUTO_CAPTURE se propone para deshabilitar.
Finalmente si estás interesado en poder conocer más al respecto de esta nueva versión, puedes consultar los detalles en el siguiente enlace.
¿Como instalar Simple DirectMedia Layer en Linux?
La instalación de esta biblioteca en Linux es bastante sencilla puesto que la mayoría de las distribuciones de Linux cuentan con ella dentro de sus repositorios.
Para el caso de Debian, Ubuntu y distribuciones derivadas de estos, solo tendrán que ejecutar los siguientes comandos en una terminal:
sudo apt-get install libsdl2-2.0 sudo apt-get install libsdl2-dev
Mientras que para el caso de los que son usuarios de Arch Linux solo tenemos que ejecutar lo siguiente:
sudo pacman -S sdl2
Para el caso de los que son usuarios de Fedora, Centos, RHEL o cualquier distribución basada en estas, solo tienen que ejecutar el siguiente comando:
sudo yum install SDL2 sudo yum install SDL2-devel
Para el resto de las distribuciones de Linux, pueden realizar la búsqueda del paquete “sdl” o “libsdl” para su instalación o realizar la descarga y compilación del código fuente.
Esto lo hacen con:
git clone https://hg.libsdl.org/SDL SDL cd SDL mkdir build cd build ./configure make sudo make install