带DirectDraw(2d)覆盖的Direct3D 11

时间:2013-01-06 20:11:45

标签: directx direct3d direct2d directdraw direct3d11

基本上,我想在3D交换链上进行2D绘图。但我的代码注入另一个程序,我没有源代码。

我可以进行绘图,但只有在使用DXGI_FORMAT_B8G8R8A8_UNORM(BGR)格式创建交换链时才有效。

原来,程序使用DXGI_FORMAT_R8G8B8A8_UNORM(RGB),当我将其切换到BGR时,程序会在窗口/屏幕旁边渲染。几乎所有东西都更大。

有没有办法使用RGB将Direct3D 11与2D互操作或者使用BGR使应用程序渲染正常工作?

1 个答案:

答案 0 :(得分:0)

如果使用DXGI_FORMAT_R8G8B8A8_UNORM格式创建交换链,则只需确保传递给渲染目标的CreateBitmapFromDxgiSurface方法的Direct2D位图属性也指定相同的DXGI_FORMAT_R8G8B8A8_UNORM像素格式。