Доброго времени суток! Такой вопрос возник, товарищи программисты Делаю рендер шрифтов. Вызываю GetGlyphOutline c GGO_GRAY8_BITMAP. Всё бы хорошо, винда отдаёт от 0 до 0x40 в буфер. Однако вот со структурой GLYPHMETRICS обнаружились некоторые проблемы. MSDN сообщает, что: gmBlackBoxX Specifies the width of the smallest rectangle that completely encloses the glyph (its black box). gmBlackBoxY Specifies the height of the smallest rectangle that completely encloses the glyph (its black box). Однако это не так Начинаю рисовать символ с шириной в gmBlackBoxX. Некоторые символы рисуются нормально - некоторые нет. Более того. gmBlackBoxX*gmBlackBoxY*4 != размеру буфера, запрашиваемого функцией. Буфер больше. В результате - "искривление" символов итд. Кто-нить работал с этой функцией? Поможите, не могу уже, мозги кипят. Весь день убил...
Проблема была в невнимательности прочтения MSDN Сканлинии глифа в буфере просто были выровнены по DWORD. Теперь возникла другая проблема. Не могу понять как выровнять символы, чтобы они были на одном уровне. В GLYPHMETRICS есть член gmptGlyphOrigin, который вроде бы отвечает за расположение символа в character cell. Однако значение y в этой структуре мне совершенно не понятно. Оно почти всегда совпадает со значением gmBlackBoxY. Неужели никто не работал с этой функцией? :-(