N’gine v1.22.0+stable

✨ Nuevas Características y Mejoras

  • Sistema de Texto y Tipografías:
    • Reescritos por completo los métodos de carga de tipografías y de impresión de caracteres. Ahora se genera un atlas con todos los caracteres y la función de impresión almacena la lista de vértices de los glifos hasta renderizar todo el texto pendiente en una sola llamada.
    • Añadido soporte para el cambio de color de tinta en el método Print de la clase NGN_TextLayer, mediante el código de escape \a y el color en hexadecimal (ej. \a0xFF00FF para definir el color de tinta «rosa»).
  • Reproducción de Vídeo:
    • Añadida la clase NGN_Video, la cual permite la reproducción de archivos de vídeo en formato OGV.
    • Añadido el método Video() a la clase NGN_Render, el cual renderiza el fotograma de vídeo actual decodificado por NGN_Video.
  • Gestión de Archivos:
    • Modificado el método ReadBinaryFile() de la clase NGN_Disk para que admita la lectura parcial de un archivo.
    • Añadido el método LoadFileChunk() a la clase NGN_Load, el cual lee un fragmento de un archivo desde un origen predeterminado.
  • Sprites y Animación: Añadido el parámetro opcional loop_delay al método AddAnimation de la clase NGN_Sprite. Este establece un tiempo de espera antes de repetir la animación, en caso de estar configurada en bucle (por defecto tiene un valor de 0, manteniendo la compatibilidad con versiones anteriores).
  • Herramientas de Profiling: Se añaden los métodos GetFrameTime() y GetWorkLoad() en NGN_System, los cuales devuelven el tiempo (en milisegundos) y la carga de trabajo (en porcentaje) del frame anterior.

🐛 Correcciones y Optimizaciones

  • Motor de Render (Canvas): Reescritura de parte del motor de render de la clase NGN_Canvas, acelerando el renderizado un 500% aprox. Esto permite también que las formas dibujadas apliquen el canal alpha del color sobre el contenido actual del canvas (antes el color se sobrescribía directamente).
  • Estabilidad en Evercade: Se fija el formato de píxel a RGBA8888 en todas las texturas, excepto en las tipografías, que mantienen ARGB8888 (requerido internamente por FreeType). Esto soluciona cuelgues al ejecutar código en la plataforma Evercade.
  • Framerate y Temporizadores:
    • Reescritura del método del contador de FPS.
    • Reescritura del método que limita el framerate por software, siendo ahora mucho más preciso.
  • Matemáticas del Core: Optimizaciones internas a nivel de cálculo en múltiples métodos de la librería (ej. cambios de divisiones como /2.0f a multiplicaciones como *0.5f).
  • Corrección de Herramienta (NGN_FileSystem): Corregido un bug en el algoritmo de ofuscación de la herramienta NGN_FileSystem.
    • ⚠️ CRÍTICO: Este cambio en la estructura obliga a reempaquetar todos los archivos de recursos con esta nueva versión de la herramienta si se actualiza a esta versión del SDK.

Descarga: Repositorio oficial en GitHub.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *