Какой самый быстрый способ многократно заполнить окно данными RGB из массива?

Сейчас я пишу простую игру. Мой графический код запускается один раз за кадр (примерно 30 раз в секунду) и записывает данные RGB в массив с 640 * 480 = 307200 записями.

Я создал окно Win32 с клиентской областью размером точно 640 x 480 пикселей. . Какой самый быстрый способ отобразить мои данные RGB в пустом окне?

Окно необходимо обновлять каждый кадр, поэтому мне нужно избегать мерцания. Стоит ли использовать для этого GDI? Или есть более быстрый подход с использованием другой библиотеки - скажем, DirectDraw?

Изменить:

Спасибо за все ответы. Во-первых, позвольте мне исключить Direct2D как вариант - мне нужно поддерживать Windows XP. Во-вторых, у меня есть опыт работы с 3D, поэтому метод, предложенный Янном Рамином и Беном Войтто - использование Direct3D / OpenGL и одного текстурированного четырехугольника - это то, как я всегда делал это в прошлом.

Однако мне было интересно узнать выяснить, может ли 2D API быть лучшим решением. Так как однозначного ответа не было, скинул тестовую программу. Код просто многократно отображает буфер кадра на экране с максимально возможной скоростью.

Я опубликовал свои результаты как часть этого дополнительного вопроса .

5
задан Community 23 May 2017 в 12:29
поделиться