Релиз Genome2d 0.9.0

Вчера вышла новая версия Genome2d 0.9.0
Этот релиз не несет в себе новых фич, но был направлен на рефакторинг и чистку проекта. Данная версия будет последней перед версией 1.0 (которая по видимому будет содержать много новых фич) и является крайне важным этапом.
Давайте посмотрим чего изменилось.

Только один рендер движок.
Автор вырезал полностью софтверный движок, оставив только Stage3d. В софтверном двиге больше нет нужды, так как AIR 3.2 поддерживает аппаратное ускорение на мобильных платформах, а Adobe держит фокус на поддержку старых версий драйверов, это значит что на старых компах можно будет запускать флешки с поддержкой Stage3d.
Избавившись от софтвера автор сможет сфокусироваться на фичах, которые просят люди, не думая о том, что это еще надо будет реализовать для софт. двига (а это занимает много времени). Вместе с этим библиотека будет меньше в весе.

Связанные списки везде.
Хотя и в прошлых версиях тоже использовались связные списки но вместе с ними использовались массивы, которые помогали реализовать дополнительную функциональность. Но также они замедляли исполнение. Например, массивы помогали реализовать такие методы как getChildAt/setChildIndex, но они очень медленны и несли накладные расходы в других местах двига. В конце-концов автор решил вырезать массивы и с ними эти методы, в которых, как он утверждает, не видит нужды.
Например, для итерации теперь можно работать напрямую с списком, что намного быстрее чем использовать getChildAt, а для сценариев где нужно было использовать setChildIndex почти всегда можно использовать swapChildren.
Для таких вещей как сортировка, автор реализовал свою сортировку заточенную для использования с списками и потому она очень быстрая, быстрее чем родной флешевой сорт. Сортировать «детей» можно по их x,y или через свою кастомную используя свойство userData.

Че за фигня с этими именами?
В новой версии первым делом можно заметить изменения в именах пакетов и классов. Теперь все находится в новом рутовом пакете com.genome2d вместо старого com.flash-core. Также, для большего удобства, был изменен префикс к классам — вместо прежнего G2D теперь только G (это пожелание пользователей).

За фабриками будущее.
Следующим шагом рефакторинга был вынос создающих методов в отдельные классов. Новые классы-фабрики будут содержать эти методы. Такой подход более структурирован и логичен.
Существуют три фабрики: GTextureFactory, GTextureAtlasFactory и GNodeFactory. Теперь, рекомендуется использовать фабрики вместо того, чтобы создавать объекты напрямую (через конструктор).
Например, вы можете создать напрямую new GNode(), но лучше это делать так GNodeFactory.createNode(), так как в будущем могут быть интегрированы дополнительные зависимости и чтобы избежать головной боли и кучи рефакторинга используйте фабрики.

www.genome2d.com
Автор зарегистрировал домен специально для проекта Genome2D, пока еще он редиректит на его блог но в ближайшем будущем поставит его на ноги.
Также, автор просит помощи в создании примеров, документации, туториалов, так как все сам не выгребает, да и кодить больше любит.

Open source
Начиная с версии 1.0 Genome2D будет в опен сорс.

Ссылки
Новые примеры
Последняя версия библиотеки
ASDoc документация

Ну что ж, пора поковырять его :)

Поделиться в соц. сетях

Опубликовать в LiveJournal
Опубликовать в Google Plus
  • User17

    >>для итерации теперь можно работать напрямую с списком, что намного быстрее чем использовать getChildAt, а для сценариев где нужно было использовать setChildIndex почти всегда можно использовать swapChildren

    Как это всё делается? Где достать список? Каким образом setChildIndex заменяется swapChildren’ом?