LINUX.ORG.RU

История изменений

Исправление LINUX-ORG-RU, (текущая версия) :

@Vit чё за херня? )))) Я в своё время тоже добрался, декодер написал вообще отдельно, а это отложил так и отложилось насовсем времени не было разбирать.

что это может быть мусор

Ты перед дебагами от lv_font_conv получи данные символа в сжатом и несжатом видах. Там можно получить в виде исходника на си ещё выхлоп.

И уже имея эталоны, входных данных и выходных. Просто пройдись по выходам функций начиная от той которая выплёвывает данные. Даже наверное лучше с начала без дебагов, а глазами, я было начал дебагать принтами просто выводя битмап до и после обработки в каждом месте, вот не помню уже там толь размеры не правильные выдаются и в конце мусор от этого или ещё чего, хоть убей не помню, но как сказал разбираться не было времени, а как декодеры(разные варианты) я свои похерил так вообще забросил.

Ну ковыряйся =) Расскажешь потом чво там было. К слову в файле lv_font_fmt_txt.c рекомендую реализацию декомпрессора скомпоновать, убрав функции и вызовы, схлопнуть всё в одну функцию, я задолбался по началу глазами прыгать то туда то сюда,

например вызов decompress_line() нафиг не нужен, ибо это просто

static inline void decompress_line(uint8_t * out, lv_coord_t w)
{
    lv_coord_t i;
    for(i = 0; i < w; i++) {
        out[i] = rle_next();
    }
}

Скопировать эту писюльку сразу в decompress() и так со всем остальным почти, гораздо удобнее будет уже переписывать. С учётом того что вызов rle_next() тоже потом будет не нужен, короче всё не нужно всё в итоге схлопнется в 1 цикл ну или парочку вложенных на свищах и всё такое. Хоть тут и inline везде, но компиляторы сейчас такие компиляяторы.

Ладно химичь =)

Исходная версия LINUX-ORG-RU, :

@Vit чё за херня? )))) Я в своё время тоже добрался, декодер написал вообще отдельно, а это отложил так и отложилось насовсем времени не было разбирать.

что это может быть мусор

Ты перед дебагами от lv_font_conv получи данные символа в сжатом и несжатом видах. Там можно получить в виде исходника на си ещё выхлоп.

И уже имея эталоны, входных данных и выходных. Просто пройдись по выходам функций начиная от той которая выплёвывает данные. Даже наверное лучше с начала без дебагов, а глазами, я было начал дебагать принтами просто выводя битмап до и после обработки в каждом месте, вот не помню уже там толь размеры не правильные выдаются и в конце мусор от этого или ещё чего, хоть убей не помню, но как сказал разбираться не было времени, а как декодеры(разные варианты) я свои похерил так вообще забросил.

Ну ковыряйся =) Расскажешь потом чво там было. К слову в файле lv_font_fmt_txt.c рекомендую реализацию декомпрессора скомпоновать, убрав функции и вызовы, схлопнуть всё в одну функцию, я задолбался по началу глазами прыгать то туда то сюда,

например вызов decompress_line() нафиг не нужен, ибо это просто

static inline void decompress_line(uint8_t * out, lv_coord_t w)
{
    lv_coord_t i;
    for(i = 0; i < w; i++) {
        out[i] = rle_next();
    }
}

Скопировать эту писюльку сразу в decompress() и так со всем остальным почти, гораздо удобнее будет уже переписывать.

Ладно химичь =)