Объединение 2 DC памяти? - PullRequest
0 голосов
/ 05 апреля 2010

Я пишу элемент управления, через который проходит множество пользовательских рисунков. Из-за этого мне нужно сократить количество «экранных записей», которые происходят. В настоящее время существует только один DC памяти, который используется для записи на экран, чтобы избежать мерцания при перерисовке элемента управления. Я хочу знать, есть ли возможность использовать 2 или более DC памяти для независимой записи обновлений, а затем отправлять их на экран. Таким образом, необходимость рендеринга неизмененных частей экрана сводится к минимуму.

Ответы [ 2 ]

0 голосов
/ 09 апреля 2010

Вы можете сделать столько DC, сколько захотите, подготавливая часть экрана за один раз, BitBlt () «перетаскивая» его содержимое на другой DC, после чего BitBlt () 'выводится на экран или что-либо еще, настолько сложный, как вы. хочу (в пределах винды нр хэндлов и т. д. очевидно).

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

0 голосов
/ 05 апреля 2010

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

Это не принесет вам большой пользы (если вообще что-нибудь) в плане уменьшения рисунка на экране. OTOH, BitBlt обычно достаточно быстр, чтобы вряд ли что-то изменило.

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