Перейти к содержанию
    

Нужна помощь по Freetype

18 минут назад, aaarrr сказал:

1 и 2 соответственно.

Ну вот и смотрите, Y начальное равно 2, т.е. 15-2=13  итог - мы начинаем рисовать символ с коорд. 13, при его размере в 22 (font.height = 22) получается больше половины символа сверху - это пробелы, по моему ерунда какая-то, вот для примера результат GRC с вводными (LiberationSans-Regular.ttf, 17)

 

/***********************************
 * Character - 35
 ***********************************/
.byte 0x00, 0x00        //                 
.byte 0x00, 0x00        //                 
.byte 0x00, 0x00        //                 
.byte 0x00, 0x00        //                 
.byte 0x88, 0x00        //    *   *        
.byte 0x88, 0x00        //    *   *        
.byte 0x88, 0x00        //    *   *        
.byte 0xFF, 0x01        // *********       
.byte 0x44, 0x00        //   *   *         
.byte 0x44, 0x00        //   *   *         
.byte 0x44, 0x00        //   *   *         
.byte 0x44, 0x00        //   *   *         
.byte 0xFF, 0x01        // *********       
.byte 0x22, 0x00        //  *   *          
.byte 0x22, 0x00        //  *   *          
.byte 0x22, 0x00        //  *   *          
.byte 0x00, 0x00        //                 
.byte 0x00, 0x00        //                 
.byte 0x00, 0x00        //                 
.byte 0x00, 0x00        //                 

отступы сверху 4 и снизу 4, никак не 13...

12 минут назад, mantech сказал:

отступы сверху 4 и снизу 4, никак не 13...

Подобрал так, чтоб размер самого символа тоже был 22 точки

/***********************************
 * Character - 35
 ***********************************/
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x80, 0x40, 0x00        //        *      *         
.byte 0xC0, 0x60, 0x00        //       **     **         
.byte 0xC0, 0x60, 0x00        //       **     **         
.byte 0xC0, 0x60, 0x00        //       **     **         
.byte 0x40, 0x20, 0x00        //       *      *          
.byte 0x60, 0x30, 0x00        //      **     **          
.byte 0xFE, 0xFF, 0x01        //  ****************       
.byte 0xFE, 0xFF, 0x01        //  ****************       
.byte 0x60, 0x30, 0x00        //      **     **          
.byte 0x20, 0x10, 0x00        //      *      *           
.byte 0x30, 0x18, 0x00        //     **     **           
.byte 0x30, 0x18, 0x00        //     **     **           
.byte 0x30, 0x18, 0x00        //     **     **           
.byte 0x30, 0x18, 0x00        //     **     **           
.byte 0xFF, 0xFF, 0x01        // *****************       
.byte 0xFF, 0xFF, 0x01        // *****************       
.byte 0x18, 0x0C, 0x00        //    **     **            
.byte 0x18, 0x0C, 0x00        //    **     **            
.byte 0x08, 0x04, 0x00        //    *      *             
.byte 0x08, 0x04, 0x00        //    *      *             
.byte 0x0C, 0x06, 0x00        //   **     **             
.byte 0x0C, 0x06, 0x00        //   **     **             
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         
.byte 0x00, 0x00, 0x00        //                         

стало 9 строчек отступа сверху (что тоже многовато), но не 13...

 

Так-то бы фиг с ним, рассчитал бы я средний отступ, но как быть с символами Й и Ц, как их высчитать, чтоб они были все на одной линии?

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще раз внимательно посмотрите, что я писал. При начальной координате Y=0 рисование начнется с Y=2.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, aaarrr сказал:

При начальной координате Y=0 рисование начнется с Y=2.

Тоже не может быть, тогда с какой координаты начнется рисование Й ? С отрицательной?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 minutes ago, mantech said:

Тоже не может быть, тогда с какой координаты начнется рисование Й ? С отрицательной?

Нет, просто font.height станет 26, если кириллицу добавить.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, aaarrr сказал:

Нет, просто font.height станет 26, если кириллицу добавить.

Хм.. А font.height там одно число для всего шрифта или для каждого символа по-отдельности?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 минуты назад, aaarrr сказал:

Для всего шрифта, разумеется.

Ок. Попробую завтра с утра еще раз подумать, что и где не так :dirol:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...