Как приложения, такие как Firefox, эффективно рассчитывают высоту текста? - PullRequest
1 голос
/ 25 сентября 2010

Мне любопытно, какой метод быстрые приложения (может быть, Safari - лучший пример здесь), чтобы вычислить высоту очень длинной страницы текста (например, журнала чата или огромного документа).

Учитывая, что имеется огромное количество текста с одинаковой высотой строки, это уже то, что можно умножить на количество этих строк.Однако, как узнать, сколько строк <p> будет занимать определенную ширину?

Что я могу получить, так это то, что они:

  • Рассчитывают ширину каждого символа исохраните его для быстрого добавления,
  • Используйте это для вычисления ширины слов,
  • Добавьте ширину слов и пробелов при сравнении с шириной уровня блока, добавляя строки по мере необходимости.

Это кажется действительно очень быстрым, поскольку добавления и сравнения намного, намного быстрее, чем измерение строки в GDI +.Но я понятия не имею, будет ли выполнено что-то подобное, так как надежность стоит на первом месте, а рендеринг текста AFAIK обычно вводит кернинг, и я понятия не имею, насколько легко или сложно получить эту информацию из GDI +. снимок экрана с ReactOS заставил меня поверить, что Firefox вычисляет размер и положение каждой буквы.

...