Dagon 0.21.0
Выпустил новую версию движка. В этом релизе очень много изменений, в особенности касающихся системы загрузки текстур.
- Переход на SDL 2.32. Под Linux движок теперь предоставляет готовую библиотеку libSDL2-2.0.so, которая копируется в папку с приложением — чтобы ее использовать вместо системной, нужно собирать с флагом линкера
"lflags-linux": ["-rpath=$$ORIGIN"]
(либо перед запуском задавать рабочую папку вLD_LIBRARY_PATH
, что, на мой взгляд, намного менее удобно) - Текстуры теперь загружаются через библиотеку SDL2_Image, если она присутствует. Благодаря этому появилась поддержка прогрессивных JPEG, WebP, AVIF, SVG и множества других форматов. Необходимые библиотеки также копируются в проект при сборке (для 64-битных Windows и Linux). Также можно реализовать и подключить к
AssetManager
кастомный загрузчик изображений - Поддержка текстур формата KTX. Полноценная поддержка KTX1 и KTX2. Текстуры, сжатые в Basis Universal, транскодируются в S3TC/RGTC/BPTC или распаковываются в RGBA8, в зависимости от заданной пользователем настройки. Поскольку для этого требуется дополнительная библиотека, за загрузку KTX отвечает расширение
dagon:ktx
- Расширение
dagon:physfs
, которое позволяет примонтировать вAssetManager
виртуальную файловую систему PhysFS и загружать ассеты из архивов - Упрощенные тени в SimpleRenderer: дефолтный шейдер затемняет пиксели в зависимости от удаленности от указанной точки в плоскости XZ, создавая кружочек тени под объектом. Радиус затемнения можно контролировать, чтобы сделать либо мягкий кружок, либо резкий. Центр тени можно привязать, например, к позиции персонажа
- 4-байтное выравнивание в текстурах, которые загружаются из файла вместе с mip-уровнями
- Функция
isExtensionSupported
для проверки поддержки расширений OpenGL. ТакжеmaxTextureUnits
иmaxTextureSize
— для опрашивания максимального количества текстурных блоков и максимального размера текстуры.
Полный список изменений читайте на странице релиза.