LINUX.ORG.RU

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

Исправление a1batross, (текущая версия) :

Возможно у меня узкое место не рендеринг глифа, а их упаковка в атлас или поиск нужного глифа на атласе.

У меня они распиханы в rbtree. Получилось достаточно быстро, как в добавлении, так и в поиске.

Новый атлас - это шанс нарваться на лишнее переключение текстуры при отрисовке строки. Запросто может случиться так, что текстуры будут переключаться по несколько раз на одну строку. Что само по себе печально.

Кстати, верно. На крупный текст выделяется штуки 4-5 таких листов. Нарваться на переключение легко.

Сейчас подумал, что в целом сделать достаточно быстрое расширение буфера несложно. Надо аллоцировать новый буфер в 2 раза больше предыдущего, чтобы по оставаться в степени двойки и старый копировать в новый. Достаточно будет только высоту увеличить.

Надо еще подумать о том, как писать глифы оптимально в высоту, ибо сейчас они записаны с одинаковым пустым местом между строками.

Исходная версия a1batross, :

Возможно у меня узкое место не рендеринг глифа, а их упаковка в атлас или поиск нужного глифа на атласе.

У меня они распиханы в rbtree. Получилось достаточно быстро, как в добавлении, так и в поиске.

Новый атлас - это шанс нарваться на лишнее переключение текстуры при отрисовке строки. Запросто может случиться так, что текстуры будут переключаться по несколько раз на одну строку. Что само по себе печально.

Кстати, верно. На крупный текст выделяется штуки 4-5 таких листов. Нарваться на переключение легко.

Сейчас подумал, что в целом сделать достаточно быстрое расширение буфера несложно. Надо аллоцировать новый буфер в 2 раза больше предыдущего, чтобы по оставаться в степени двойки и старый копировать в новый. Достаточно будет только высоту увеличить, когда заливать текстуру в движок.

Надо еще подумать о том, как писать глифы оптимально в высоту, ибо сейчас они записаны с одинаковым пустым местом между строками.