Доступ к растровому изображению должен быть синхронизирован. Сделайте это, вызвав функцию GdiFlush.
й вечер,
У меня есть несколько 32-битных изображений в буферах памяти, которые я хочу быстро «перетянуть» в контекст устройства. Скорость - проблема здесь, потому что буфер будет постоянно манипулировать и должен быть повторно подключен к DC.
Глубина цвета буфера составляет 32 бита, поэтому он уже находится в ожидаемом DIB формате SetDIBits (). Однако это довольно громоздко, поскольку цель битовой карты SetDIBits () уже не может быть выбрана в DC до операции. Поэтому мне нужно будет постоянно поменять битовую карту контроллера домена, вызвать SetDIBits (), вернуть битовую карту обратно в контроллер домена, а затем подключить контроллер домена к контроллеру окна. На мой взгляд, это просто большая нагрузка на ЦП и слишком большая разветвленность в Windows API; слишком много для оптимальной производительности.
Мне было бы интересно использовать DirectX, если бы он не заставлял меня использовать контексты устройств для 2D-операций, или загружать текстуры в видеопамять перед их отображением, потому что содержимое изображения постоянно меняется.
Мой вопрос прост (несмотря на длительную рецензию). Каков был бы самый быстрый способ для меня переместить изображение из буфера пикселей в памяти на экран? Прямой доступ к пиксельному буферу контроллера домена был бы отличным, но я знаю, что этого не произойдет.
Спасибо за чтение моей длинной рецензии.