【发布时间】:2017-09-22 10:13:18
【问题描述】:
下午好!
我是 DirectX 初学者,很多东西我都不懂。
我在显卡内存中有一个 RGBA 格式 (DXGI_FORMAT_R8G8B8A8_UNORM) 的纹理。这是一个截获的游戏缓冲区。 在将其内容复制到计算机内存之前,我需要对这个纹理进行转换 格式为 BGRA (DXGI_FORMAT_B8G8R8A8_UNORM)。如何将纹理从一种像素格式转换为另一种像素格式 显卡的方式?
// DXGI_FORMAT_R8G8B8A8_UNORM
ID3D11Texture2D *pTexture1;
// DXGI_FORMAT_B8G8R8A8_UNORM
ID3D11Texture2D *pTexture2;
D3D11_TEXTURE2D_DESC desc2 = {};
desc2.Width = swapChainDesc.BufferDesc.Width;
desc2.Height = swapChainDesc.BufferDesc.Height;
desc2.MipLevels = 1;
desc2.ArraySize = 1;
desc2.Format = DXGI_FORMAT_B8G8R8A8_UNORM;
desc2.BindFlags = D3D10_BIND_SHADER_RESOURCE | D3D11_BIND_RENDER_TARGET;
desc2.SampleDesc.Count = 1;
desc2.Usage = D3D11_USAGE_DEFAULT;
desc2.MiscFlags = 0;
void pixelConvert(ID3D11Texture2D *pTexture1, ID3D11Texture2D *pTexture2)
{
//
// Code....
//
}
我不明白这个解决方案: DX11 convert pixel format BGRA to RGBA 不完整
【问题讨论】:
-
DX11 convert pixel format BGRA to RGBA 的可能副本,但其他方式...
-
我不明白那个答案
标签: c++ directx directx-11