Правильный способ визуализации большого количества текста с Direct2d в отдельной теме - PullRequest
0 голосов
/ 20 февраля 2019

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

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

Проблема возникает, когда пользователь изменяет размер окна, перетаскивая угол окна, где поток рендеринга получает сообщение для рендеринга, и до того, как он заканчивает рендеринг, размер окна снова изменяется,и это заставляет текст растягиваться, потому что рендер рассчитан на небольшую ширину, а ширина уже увеличивается.

В конце выполняется новый рендер, и текст выглядит превосходно, но при изменении шириныВ окне пользователь видит растянутый текст, и это очень не приятно.

On Документация Direct2D описывается поведение:

Если EndDraw представляет буфер, это растровое изображение растягивается, чтобы покрыть поверхность, где он представлен: всю клиентскую областьwindow

Как решить эту проблему?

...