D lodepng ошибка компиляции - PullRequest
0 голосов
/ 05 июля 2011

У меня проблемы с компиляцией lodepng (http://lodev.org/lodepng/) для D в мой проект.

В Encode.d у меня есть следующий код, где компилятор не ожидает утверждения assert. Удаление этого блока решает проблему.

invariant
{
    assert(compressionLevel >=0 && compressionLevel <= 9, "invalid zlib compression level");
    assert(targetColorType == ColorType.Any ||
            targetColorType == ColorType.RGB ||
            targetColorType == ColorType.RGBA, "colortype is not supported");
}

В Decode.d у меня еще больше проблем с ошибкой "нет идентификатора для объявления inout (значение)" для средней линии в:

info.backgroundColor.length = chunk.data.length / 2;
foreach(index, inout value; info.backgroundColor)
    value = chunk.data[index * 2];

Есть ли здесь проблемы со старым синтаксисом, и как я могу это исправить? Есть ли какой-нибудь другой способ создания изображений png в D простым способом?

Ответы [ 2 ]

0 голосов
/ 10 июля 2011

Я отказался от lodepng и использовал код на http://www.dsource.org/projects/plot2kill/browser/trunk/png.d который работает после некоторых незначительных изменений.

0 голосов
/ 09 июля 2011

Не уверен насчет инвариантной проблемы, но вторую проблему следует решить, заменив «inout» на «ref» (изменение синтаксиса D2).

...