✨ 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
Printde la claseNGN_TextLayer, mediante el código de escape\ay el color en hexadecimal (ej.\a0xFF00FFpara 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 claseNGN_Render, el cual renderiza el fotograma de vídeo actual decodificado porNGN_Video.
- Añadida la clase
- Gestión de Archivos:
- Modificado el método
ReadBinaryFile()de la claseNGN_Diskpara que admita la lectura parcial de un archivo. - Añadido el método
LoadFileChunk()a la claseNGN_Load, el cual lee un fragmento de un archivo desde un origen predeterminado.
- Modificado el método
- Sprites y Animación: Añadido el parámetro opcional
loop_delayal métodoAddAnimationde la claseNGN_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 de0, manteniendo la compatibilidad con versiones anteriores). - Herramientas de Profiling: Se añaden los métodos
GetFrameTime()yGetWorkLoad()enNGN_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.0fa 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.