SDL significa Simple DirectMedia Layer y es una biblioteca multimedia de código abierto escrita en C y diseñada para proporcionar acceso de bajo nivel a mouse, teclado, audio, joystick, hardware de gráficos 3D a través de Direct3D y OpenGL.
Utilizado en muchos juegos de Humble Bundle o en el galardonado catálogo de Valve
En la actualidad, SDL es muy utilizado por emuladores, software de reproducción de video y numerosos juegos populares, incluido el galardonado puerto Linux de "Civilization: Call To Powe", muchos juegos de Humble Bundle y el galardonado catálogo de Valve.
Se ejecuta en todos los sistemas operativos principales
Simple DirectMedia Layer se ejecuta en numerosos sistemas operativos, incluidos los principales de GNU / Linux, Microsoft Windows y Mac OS X. Los sistemas operativos móviles BeOS, BSD (FreeBSD, OpenBSD), BSD / OS, Solaris, IRIX, QNX, así como los sistemas operativos móviles Android e iOS también son compatibles. Las plataformas de hardware compatibles incluyen 32 y 64 bits.
Primeros pasos con SDL
SDL generalmente está disponible para descargar en numerosos sistemas operativos Linux basados en kernels, a través de sus repositorios oficiales de software. Instalarlo utilizando el último paquete fuente, que se distribuye de forma gratuita en Softoware, es fácil como un pastel.
Descargue y guarde el archivo en su directorio de inicio, descomprímalo, abra una aplicación de Terminal y navegue a la ubicación donde extrajo el archivo (por ejemplo, cd /home/softoware/SDL2-2.0.3).
Ejecute & lsquo; ./ configure && make & rsquo; comando para configurar, optimizar y compilar el programa. Después de una compilación exitosa, ejecuta el & lsquo; sudo make install & rsquo; comando como usuario privilegiado para instalar todo el sistema SDL.
Bajo el capó
Una mirada rápida bajo el capó del proyecto SDL, nos informará que está escrito en el lenguaje de programación C y que funciona de forma nativa con C ++. Enlaces para otros lenguajes de programación también están disponibles, soportando el popular Python, & nbsp; Ada, Java, Lua, Eiffel, ML, PHP, Perl, Pike, Ruby y C #.
Qué hay de nuevo en esta versión:
- General:
- Agregó una API para obtener rutas de sistema de archivos comunes en SDL_filesystem.h: SDL_GetBasePath (), SDL_GetPrefPath ()
- Se agregó una API para realizar actualizaciones optimizadas de texturas YV12 e IYUV: SDL_UpdateYUVTexture ()
- Agregó una API para obtener la cantidad de RAM en el sistema: SDL_GetSystemRAM ()
- Se agregó una macro para realizar comparaciones de marcas de tiempo con SDL_GetTicks (): SDL_TICKS_PASSED ()
- Rendimiento de representación de OpenGL ES 2.0 considerablemente mejorado
- Atributo de OpenGL agregado SDL_GL_FRAMEBUFFER_SRGB_CAPABLE
- Linux:
- Soporte fijo de audio flotante con el controlador PulseAudio
- Se corrigieron los puntos finales de línea faltantes en el renderizador OpenGL en algunos controladores
- Los símbolos X11 ya no están definidos para evitar colisiones al vincular estáticamente
- Android:
- IMPORTANTE: DEBE obtener el SDLActivity.java actualizado para que coincida con el código C
- Inicialización de EGL movida a código nativo
- Se corrigió la rotación del eje del acelerómetro en relación con la rotación del dispositivo
- Se corrigieron las condiciones de carrera cuando se maneja el contexto EGL en pausa / reanudar
- Los dispositivos táctiles están disponibles para la enumeración inmediatamente después del inicio
- Raspberry Pi:
- Se agregó soporte para Raspberry Pi, vea README-raspberrypi.txt para más detalles
Qué hay de nuevo en la versión 2.0.3:
- General:
- Agregó una API para obtener rutas de sistema de archivos comunes en SDL_filesystem.h: SDL_GetBasePath (), SDL_GetPrefPath ()
- Se agregó una API para realizar actualizaciones optimizadas de texturas YV12 e IYUV: SDL_UpdateYUVTexture ()
- Agregó una API para obtener la cantidad de RAM en el sistema: SDL_GetSystemRAM ()
- Se agregó una macro para realizar comparaciones de marcas de tiempo con SDL_GetTicks (): SDL_TICKS_PASSED ()
- Rendimiento de representación de OpenGL ES 2.0 considerablemente mejorado
- Atributo de OpenGL agregado SDL_GL_FRAMEBUFFER_SRGB_CAPABLE
- Linux:
- Soporte fijo de audio flotante con el controlador PulseAudio
- Se corrigieron los puntos finales de línea faltantes en el renderizador OpenGL en algunos controladores
- Los símbolos X11 ya no están definidos para evitar colisiones al vincular estáticamente
- Android:
- IMPORTANTE: DEBE obtener el SDLActivity.java actualizado para que coincida con el código C
- Inicialización de EGL movida a código nativo
- Se corrigió la rotación del eje del acelerómetro en relación con la rotación del dispositivo
- Se corrigieron las condiciones de carrera cuando se maneja el contexto EGL en pausa / reanudar
- Los dispositivos táctiles están disponibles para la enumeración inmediatamente después del inicio
- Raspberry Pi:
- Se agregó soporte para Raspberry Pi, vea README-raspberrypi.txt para más detalles
Qué hay de nuevo en la versión 1.2.14:
- Notas generales:
- Parpadeo fijo al cambiar el tamaño de la ventana de SDL
- Solucionado el bloqueo en SDL_SetGammaRamp ()
- Congelación fija en SDL_memset () con longitud 0 cuando el código de ensamblado está deshabilitado.
- Se agregó la variable de entorno SDL_DISABLE_LOCK_KEYS para habilitar eventos normales de arriba / abajo para las teclas Mayúsculas y Bloq Num.
- Se solucionó el problema de calidad de audio al convertir entre 22050 Hz y 44100 Hz.
- Se corrigió un bloqueo de subprocesos cuando se crean y completan rápidamente algunos subprocesos.
- Mayor precisión de las rutinas de fusión alfa.
- Se corrigió la falla al cargar los archivos BMP guardados con las líneas de exploración invertidas.
- Se corrigió la fijación de coordenadas del mouse si no se llama a SDL_SetVideoMode () en respuesta al evento SDL_VIDEORESIZE.
- Se agregó documentación doxygen para los encabezados de la API SDL.
- Notas de Unix:
- Corrigió la corrupción potencial de la memoria debido al error de ensamblaje con SDL_revcpy ()
- Se corrigieron los bloqueos que intentaban detectar las características SSE en la arquitectura x86_64.
- Conjunto fijo para GCC optimizado con un 50% de blending alpha blits.
- Se agregó la opción de configuración --enable-screensaver, para permitir habilitar el protector de pantalla de forma predeterminada.
- Utilice XResetScreenSaver () en lugar de deshabilitar el protector de pantalla por completo.
- Se eliminó la limitación de tamaño de ventana máxima en X11.
- Corregido SDL_GL_SWAP_CONTROL en X11.
- Se arregló la configuración de la sugerencia de entrada de la ventana X11.
- Icono de ventana X11 fijo distorsionado para algunas imágenes.
- Se corrigió la detección de bibliotecas X11 para carga dinámica en Linux de 64 bits.
- SDL_GL_GetAttribute (SDL_GL_SWAP_CONTROL) devuelve el valor correcto con GLX_SGI_swap_control.
- Se agregó SDL_VIDEO_FULLSCREEN_DISPLAY como sinónimo preferido para SDL_VIDEO_FULLSCREEN_HEAD en X11.
- La variable de entorno SDL_VIDEO_FULLSCREEN_DISPLAY se puede establecer en 0 para colocar ventanas de SDL de pantalla completa en la primera pantalla de Xinerama.
- Agregó la variable de entorno SDL_VIDEO_FBCON_ROTATION para controlar la orientación de salida en la consola framebuffer. Los valores válidos son: no establecido - No está girando, no hay sombra; & quot; NINGUNO & quot; - No gira, pero sigue usando la sombra; & quot; CW & quot; - Pantalla giratoria en el sentido de las agujas del reloj; & quot; UD & quot; - Pantalla giratoria al revés; & quot; CCW & quot; - Pantalla giratoria en sentido contrario a las agujas del reloj.
- Se corrigió la detección de DirectFB en algunas distribuciones de Linux.
- Se agregó código para usar los procesadores PS3 SPE para la conversión de YUV en Linux.
- Soporte actualizado de ALSA para la última API estable
- Ahora se prefiere ALSA sobre el audio OSS. (SDL_AUDIODRIVER = dsp restaurará el comportamiento anterior).
- Soporte mejorado para PulseAudio
- El soporte de Network Audio System ahora se carga dinámicamente en tiempo de ejecución.
- Se solucionó el bloqueo del joystick dual USB MP-8866 en los núcleos Linux más nuevos.
- Solucionado el bloqueo en SDL_Quit () cuando se desenchufa un joystick.
Comentarios que no se encuentran