Как ускорить загрузку изображений

Совет пользователям dlib. Не декодируйте изображение напрямую из файлового потока, это слишком медленно. Вместо этого рекомендую загрузить файл в память целиком, создать поток массива (ArrayStream) и уже его передавать в функцию-декодер:

InputStream input = openForInput("image.jpg");
ubyte[] data = New!(ubyte[])(input.size);
input.fillArray(data);
ArrayStream arrStrm = New!ArrayStream(data);
SuperImage img = loadJPEG(arrStrm);
Delete(arrStrm);
Delete(data);
input.close();

Для JPEG, например, это дает ускорение в 5-10 раз, в зависимости от размера картинки.

Новые статьи

Я написал две статьи на Medium (на английском):

Game UI with Nuklear – о тулкитах немедленного режима и о том, как использовать Nuklear в приложениях на основе Dagon. Я задумал цикл статей на эту тему, так как Nuklear поддерживает очень много всякого интересного, и на нем можно делать достаточно сложные вещи.

Metaprogramming with Alias Sequences – вводная статья о последовательностях псевдонимов. Это довольно мощный инструмент метапрограммирования в D, хотя и редко используемый.

Несколько новостей

  • Готовлю к выпуску dlib 1.0. Бета-релиз, скорее всего, состоится уже в январе – осталось довести покрытие до 50% (поставил такую цель несколько лет назад) и провести аудит некоторых модулей
  • Выложил все свои старые игры на этот сервер, ссылки в разделе Игры обновлены.

Newton Dynamics 4

Классный подарок на Новый год: на днях наконец-то вышел Newton 4. Скомпилировал, потестил – очень понравились производительность и точность в сценах с большим количеством тел, а также примеры с физикой автомобиля. К сожалению, пока нет C-интерфейса, поэтому невозможно написать биндинг для D, но, похоже, работа в этом направлении ведется (разработчики планируют использовать SWIG, либо собственный генератор API для произвольных языков).

DagoBan

DagoBan возвращается! Игра, изначально написанная Mateusz Muszyński в целях демонстрации возможностей тулкита Nuklear в Dagon, недавно была портирована мной на актуальную версию движка. Сборку для Windows можно скачать здесь.

Напомню, DagoBan – это мини-клон Sokoban на D со встроенным редактором уровней.