Jump to content

    

aaarrr

Модераторы
  • Content Count

    12433
  • Joined

Community Reputation

0 Обычный

Контакты

  • Сайт
    Array
  • ICQ
    Array

Recent Profile Visitors

12554 profile views
  1. Почему 2MB? Попробуйте пересчитать еще раз.
  2. А почему, собственно, невозможно?
  3. Нет, не наступит. Для того и применяются механизмы выравнивания износа.
  4. Для всего шрифта, разумеется.
  5. Нет, просто font.height станет 26, если кириллицу добавить.
  6. Еще раз внимательно посмотрите, что я писал. При начальной координате Y=0 рисование начнется с Y=2.
  7. x += glyph->x; y += font->height - font->bot - glyph->y; 1 и 2 соответственно.
  8. LiberationSans-Regular.ttf, 17 Для глифа "#". Вычисление экранных показал.
  9. Символ "#": x = 1, y = 15, width = 12, height = 15, x_off = 14 font.height = 22 font.bot = 5 font->height - font->bot - glyph->y = 2
  10. И что смущает? отрицательное смещение по x?
  11. Подробностей сейчас не помню, но когда-то давно писал конвертер (еще с cp1251, хе-хе): fontconv.c cp1251.h Процедура вывода символа: int gui_put_char(uint32_t ch, uint32_t x, uint32_t y, GUI_FONT *font, GUI_COLOR fcolor, GUI_COLOR bcolor) { GLYPH_INFO *glyph = &font->glyphs[ch - font->first_ch]; uint8_t *dataptr; uint32_t rx, ry, a; DISP_COLOR c[16]; if((ch < font->first_ch) || (ch > font->last_ch)) return 0; dataptr = &font->glyph_bitmaps[glyph->bm_offset[0] | glyph->bm_offset[1] << 8 | glyph->bm_offset[2] << 16]; x += glyph->x; y += font->height - font->bot - glyph->y; c[0] = bcolor; for(a = 1; a < 15; a++) c[a] = gamma_corr(disp_cl_blend(fcolor, bcolor, a * 16)); c[15] = fcolor; for(ry = 0; ry < glyph->height; ry++) { for(rx = 0; rx < glyph->width; rx++) { if((rx & 1) == 0) a = *dataptr >> 4; else a = *dataptr++ & 0xf; disp_set_dot(x + rx, y + ry, c[a]); } if(rx & 1) dataptr++; } return glyph->x_off; } В общем, можно разобраться, что куда идет в результате.
  12. А что тут интересного? Накрылся блок - заменили.
  13. Часть изначально непригодна, остальное резервируется под ремап и пул свободных блоков.