Pull to refresh

Comments 13

D очень классный, только его создатели гораздо больше сконцентрированы на языке, чем на маркетинге.
Мелькали заявления, что маркетингом должно заниматься сообщество. Но оно все же еще очень маленькое, и пока в игру не вступили крупные компании, D будет сидеть в своей темной нише.

Этот язык с самого начала развивался стихийно, только силами небольшой кучки специалистов. Меня поражает проделанная на сей момент работа и предстоящие проблемы (например, дальнейшая разработка и адаптация инструментов).
Предполагается, что это будет просто синтаксис для static struct (т.е. closed scope) или открытые namespace? В последнем случае это облегчит написание bindings к C++ либам.
Пока не решили еще. На самом деле, мне не очень понятно, какая разница, с закрытыми нэймспейсами писать биндинги точно так же, как с открытыми, только файловая структура не сохранится.
На самом деле я встречал очень мало проектов, где namespace использовали не в качестве имуляции модульной системы. Но в остальных случаях с открытыми namespace можно будет говорить уже об автоматичекой генерации байндингов.
Его создатели занимаются тем, что умеют делать хорошо. Отсутствие маркетинга лучше, чем откровенно плохой.
Инвертирование изображения дважды не порождает операцию, и, в самом деле, i[5, 5] и i.hflip().hflip()[5, 5] генерируют одинаковый машинный код. Компиляторы D с более совершенным бекэндом могут проводоить еще более агрессивные оптимизации: например, если определили функцию flipXY, которая инвертирует оси X и Y, и rotateCW (для поворота изображения на 90° против часовой стрелки) как src.flipXY().hflip(), тогда четыре удачных вызова rotateCW вырезаются при оптимизации.
Впечатляет.
Автор статьи благодарит автора перевода на языке перевода. Необычно.
Как я понимаю пока только есть поддержка чтения/записи BMP и записи PNG?

Я только недавно стал интересоваться шаблонами. И сейчас волнует такой вопрос:
Допустим, код поддерживает чтение PNG. И если main принимает в качестве аргумента имя файла, который является либо BMP, либо PNG — как реализовать чтение такого файла и его последующую обработку?
Как я понимаю пока только есть поддержка чтения/записи BMP и записи PNG?


При загрузке через SDL_image (модуль ae.utils.graphics.sdlimage) поддерживаются след. форматы (из доков sdl_image):
ICO(Icon)/CUR(Cursor)/BMP, PNM (PPM/PGM/PBM), XPM, LBM(IFF ILBM), PCX, GIF, JPEG, PNG, TGA, TIFF, and XV thumbnail formats.
Этот модуль я не тестировал, лучше спросить у автора.

А сохранение идет в BMP и PNG

Допустим, код поддерживает чтение PNG. И если main принимает в качестве аргумента имя файла, который является либо BMP, либо PNG — как реализовать чтение такого файла и его последующую обработку?


Скорей всего, я вопрос понял неправильно. Если использовать sdlimage, то часть определения формата дается на откуп либе, которая уже по расширению выбирает нужный декодер.

Если реализовывать самому, то полностью compile-time'a тут достичь нельзя. Итого все равно будет явный-неявный switch с вызовом нужного декодера. Но можно генерировать его через mixin'ы для всех поддерживаемых расширений. А получив View, уже все как в статье.
Sign up to leave a comment.

Articles