Lanzamiento de la biblioteca multimedia SDL 3.4.0

Se presenta el lanzamiento de la biblioteca SDL 3.4.0 (Simple DirectMedia Layer). La biblioteca tiene como objetivo simplificar la escritura de juegos y aplicaciones multimedia, y proporciona características como renderizado acelerado por hardware de gráficos 2D y 3D, manejo de entradas, reproducción de sonido y salida 3D a través de OpenGL, OpenGL ES, Metal, Direct3D o Vulkan. El código está escrito en C y se distribuye bajo la licencia Zlib. Se proporcionan enlaces para utilizar SDL en proyectos en varios lenguajes de programación.

SDL 3.4.0 es la segunda rama estable significativa de la serie SDL 3.x — la primera rama estable fue la serie 3.2.x, y la rama 3.3.x se posicionó como experimental. Los cambios principales en SDL 3.4.0 están relacionados con la mejora de la portabilidad entre APIs de GPU 3D y APIs para renderizado 2D, la expansión del soporte de compilación en WebAssembly con el compilador Emscripten, la mejora del funcionamiento con tabletas gráficas y stylus, y la inclusión de soporte integrado para el formato de imágenes PNG.

Entre las nuevas características en SDL 3.4.0:

  • Se ha añadido soporte integrado para imágenes en formato PNG, para las cuales se ofrecen funciones SDL_LoadPNG(), SDL_LoadPNG_IO(), SDL_SavePNG() y SDL_SavePNG_IO(). Se han añadido las funciones SDL_LoadSurface() y SDL_LoadSurface_IO() para determinar el formato (PNG o BMP) y cargar imágenes como superficies.
  • Se ha añadido la función SDL_RotateSurface() para crear una copia girada de la superficie.
  • Se ha añadido la función SDL_CreateAnimatedCursor() para crear cursores animados de colores, así como la indicación SDL_HINT_MOUSE_DPI_SCALE_CURSORS para el escalado automático de los cursores en relación con el nivel de escalado de la pantalla.
  • Se han añadido las funciones SDL_SetWindowProgressState(), SDL_SetWindowProgressValue(), SDL_GetWindowProgressState() y SDL_GetWindowProgressValue() para mostrar el progreso de la operación en el icono de la aplicación en la barra de tareas.
  • Se han añadido propiedades para usar la API de GPU con hardware antiguo.
  • Se ha añadido la propiedad SDL_PROP_GPU_DEVICE_CREATE_VULKAN_OPTIONS_POINTER y SDL_PROP_GPU_DEVICE_CREATE_VULKAN_REQUIRE_HARDWARE_ACCELERATION_BOOLEAN para configurar y habilitar las capacidades de la API Vulkan al crear dispositivos GPU.
  • Se ha añadido la función SDL_GetGPUDeviceProperties() para solicitar información sobre la GPU.
  • Se han añadido las funciones SDL_CreateGPURenderer() y SDL_GetGPURendererDevice() para utilizar la GPU en la representación 2D, así como SDL_SetGPURenderStateFragmentUniforms(), SDL_SetGPURenderState() y SDL_DestroyGPURenderState() para habilitar sombreadores de fragmentos en la representación 2D.
  • En la representación 2D utilizando la GPU, se ha implementado soporte para texturas YUV y HDR. Se ha añadido soporte para texturas con paleta, para las cuales se han incorporado las funciones SDL_GetTexturePalette() y SDL_SetTexturePalette(). Se han añadido las funciones SDL_GetPixelFormatFromGPUTextureFormat() y SDL_GetGPUTextureFormatFromPixelFormat() para convertir formatos de texturas, así como los parámetros SDL_PROP_TEXTURE_CREATE_GPU_TEXTURE_POINTER y SDL_PROP_TEXTURE_GPU_TEXTURE_POINTER para crear texturas 2D a partir de texturas de GPU. Para la configuración de texturas, se han añadido las funciones SDL_RenderTexture9GridTiled(), SDL_GetDefaultTextureScaleMode(), SDL_SetDefaultTextureScaleMode(), SDL_GetRenderTextureAddressMode() y SDL_SetRenderTextureAddressMode().
  • Se ha añadido el parámetro SDL_SCALEMODE_PIXELART para utilizar un algoritmo de escalado optimizado para gráficos de píxeles.
  • Se han implementado los eventos SDL_EVENT_DISPLAY_USABLE_BOUNDS_CHANGED, SDL_EVENT_SCREEN_KEYBOARD_SHOWN, SDL_EVENT_SCREEN_KEYBOARD_HIDDEN, SDL_EVENT_PINCH_BEGIN, SDL_EVENT_PINCH_UPDATE, SDL_EVENT_PINCH_END y SDL_EVENT_AUDIO_DEVICE_ADDED, que se activan ante cambios en los límites, aparición/ocultamiento del teclado en pantalla, gestos en pantalla y adición de dispositivos de audio.
  • Se han añadido las funciones SDL_PutAudioStreamDataNoCopy() y SDL_PutAudioStreamPlanarData() para un manejo más eficiente de flujos de audio.
  • Se ha añadido soporte para controladores de juegos Nintendo Switch 2 conectados por USB. Se ha ampliado el soporte para controladores 8BitDo, FlyDigi y Hand Held Legend SInput.
  • Para mejorar el funcionamiento de aplicaciones WebAssembly compiladas con el compilador Emscripten, se ha añadido la función SDL_SetWindowFillDocument() y se han implementado los parámetros SDL_WINDOW_FILL_DOCUMENT, SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_CANVAS_ID_STRING y SDL_PROP_WINDOW_CREATE_EMSCRIPTEN_KEYBOARD_ELEMENT_STRING.
  • En la plataforma Linux se ha implementado soporte para operaciones atómicas al usar KMSDRM, activadas mediante la propiedad SDL_HINT_KMSDRM_ATOMIC. Se ha añadido el parámetro SDL_PROP_DISPLAY_WAYLAND_WL_OUTPUT_POINTER para solicitar el dispositivo de salida wl_output asociado con la pantalla en entornos basados en Wayland.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster