Ahora la cámara hereda de Transformable.
Preparando la "proyección" de Rects respecto a Camera.
Probablemente requiera crear la clase Window para ello.
Ahora en las tx, el SDL_Rect index 0 es la tx completa por defecto.
Revisamos los Assets y el AssetManager.
Añadimos seguridad en los métodos y controlamos excepciones.
Reescribimos comentarios y recolocamos código.
El Renderer extrae los datos de los drawables, eliminando la clase DrawCall.
Los Drawables utilizan los nuevos Drawables. Aunque falta pulir la forma en que lo hacen.
Se ha añadido un método para cambiar el color de clear.
Se ha abstraido la cámara del renderer para más versatilidad a futuro.
Nota: La implementación de la cámara no es nada segura. Tocará revisarlo
Se ha eliminado la antigua clase Game y movido a la nueva clase Engine.
La clase Engine, encargada de iniciar las cosas, ahora está en el Engine
Además, tiene seguridad en la inicialización.
Ya no se inicia el juego si hay error al cargar libs o sistemas.
Se ha actualizado premake5 para que soporte VS22 y se ha añadido para linux.
Modificada la configuración de premake para crear los makefiles correctamente en sistemas linux.
Modificados todos los include para ser compatibles con linux (cambiar la barrita \ por / ).
Adiciones al .gitignore para ignorar archivos de .make .
Hemos implementado un sistema para el renderizado de textos mediante fuentes TTF. Para ello utilizamos la librería SDL_TTF.
Se ha creado una clase Wrapper (UE::Font) que gestiona una fuente. Está diseñado para poder tener un cache de fuentes de diferentes tamaños. Es posible que hagamos un refactor al AssetManager para convertir las texturas a un Wrapper (más que nada para limpiar el código del AsMng y llevarme la responsabilidad de las texturas a otro sitio.
Actualización de las librerías Vendor Dear ImGui y SDL2 a sus últimas versiones. (Es posible que actualicemos ImGui al "Docking Branch" en un futuro).
Preparación inicial para el renderizado mediante ImGui (SDL+SDL_Renderer). (Hará falta un pequeño rediseño al renderer para hacer posible el renderizado de ImGui fuera de UE).
Modificada la clase Sprite para adaptarse al nuevo funcionamiento de las texturas.
Extraidas las clases Drawable y Transformable de Sprite, para poder hacer más objetos con esas características.
Implementada una clase Time que calcula DeltaTime y limita los FPS. Al fin limpiamos el Main y eliminamos todo este código temporal.
Cambios al sistema de escenas, pero se acerca un refactor completo al sistema.
Hace bastante desde el último Commit. Ahí va todo.
GLHF!