Какой смысл использовать двойную буферизацию в цепочке отображения текстового редактора? - PullRequest
2 голосов
/ 13 ноября 2011

Хорошо, так что это может быть немного глупо, я не знаю, но мне было интересно, есть ли смысл в двойной буферизации текстового редактора. Я думал о том, чтобы печатать каждый символ в буферный буфер один за другим или, может быть, слово за словом в буфер, а затем представлять обновленную часть текста на экране с помощью BitBlt? Это было бы хорошо? Извините, если это было глупо, я возьму этот вопрос, если это не соответствует стандартам.

С уважением, Devjeet

Ответы [ 2 ]

2 голосов
/ 13 ноября 2011

Я не могу представить себе какую-либо современную ОС / оконную систему, в которой подобный доступ к памяти или фрейм-буферу был бы практичным - или дал бы какое-либо улучшение производительности. Что касается текста, то высокое качество рендеринга шрифтов истинного типа было решено давно. Большинство оконных систем (X11 / Quartz / Aero) используют кэширование шрифтов и используют возможности графического оборудования для компоновки.

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

2 голосов
/ 13 ноября 2011

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

Вызывайте BitBlt () с экрана (я называю это «живым») постоянным током как можно позже.

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