从像素缓冲区到设备上下文的最快方法

晚上好, 我在内存缓冲区中有几个32位图像,我希望快速将其“blit”到设备上下文。速度是一个问题,因为缓冲区将被不断地操纵,需要反复进入DC。 缓冲区的颜色深度为32位,因此它已经是DIB预期的SetDIBits()格式。然而,这是相当麻烦的,因为在操作之前不能将SetDIBits()的位图目标选择到DC中。因此,我需要不断更换DC的位图,调用SetDIBits(),将位图交换回DC,然后将DC blit到Window的DC。对我来说,这似乎是CPU上的大量工作量和Windows API中的过多分支;对于最佳性能而言太过分了。 我有兴趣使用DirectX,如果它没有强迫我使用设备上下文进行2D操作,或者在显示它们之前将纹理上传到视频内存,因为图像的内容在不断变化。 我的问题很简单(尽管篇幅很长)。对于我来说,将图像从内存中的像素缓冲区blit到屏幕上的最快方法是什么?直接访问DC的像素缓冲区会很棒,但我知道这不会发生。 感谢您阅读我的长篇文章。     
已邀请:
有一个API方法CreateDIBSection来创建应用程序可以直接写入的DIB。这允许不断更新位图(memcopy或直接写入它)。 有关详细信息,请参阅MSDN文章。   必须同步对位图的访问。通过调用GdiFlush函数来完成此操作。     

要回复问题请先登录注册