使用 DXGI_FORMAT_YUY2 作为格式时 CreateTexture2D() 失败
CreateTexture2D() fails when using DXGI_FORMAT_YUY2 as Format
当 D3D10_TEXTURE2D_DESC
包含以下内容时:
textureDesc.Width = 1920 * 2;
textureDesc.Height = 1080 * 2;
textureDesc.MipLevels = 1;
textureDesc.ArraySize = 1;
textureDesc.Format = DXGI_FORMAT_YUY2;
textureDesc.SampleDesc.Count = 1;
textureDesc.SampleDesc.Quality = 0;
textureDesc.Usage = D3D10_USAGE_DYNAMIC;
textureDesc.BindFlags = D3D10_BIND_SHADER_RESOURCE;
textureDesc.CPUAccessFlags = D3D10_CPU_ACCESS_WRITE;
textureDesc.MiscFlags = 0;
ID3D10Device::CreateTexture2D() 失败。
但是,如果我将格式更改为 DXGI_FORMAT_R8G8B8A8_UNORM
,ID3D10Device::CreateTexture2D() 就会成功。有人可以解释为什么吗?
我知道,如果您设置 D3D10_CREATE_DEVICE_DEBUG 标志,DirectX 可以将有关错误的注释输出到 stderr 或 stdout。看来能帮你找到失败的原因。
当 D3D10_TEXTURE2D_DESC
包含以下内容时:
textureDesc.Width = 1920 * 2;
textureDesc.Height = 1080 * 2;
textureDesc.MipLevels = 1;
textureDesc.ArraySize = 1;
textureDesc.Format = DXGI_FORMAT_YUY2;
textureDesc.SampleDesc.Count = 1;
textureDesc.SampleDesc.Quality = 0;
textureDesc.Usage = D3D10_USAGE_DYNAMIC;
textureDesc.BindFlags = D3D10_BIND_SHADER_RESOURCE;
textureDesc.CPUAccessFlags = D3D10_CPU_ACCESS_WRITE;
textureDesc.MiscFlags = 0;
ID3D10Device::CreateTexture2D() 失败。
但是,如果我将格式更改为 DXGI_FORMAT_R8G8B8A8_UNORM
,ID3D10Device::CreateTexture2D() 就会成功。有人可以解释为什么吗?
我知道,如果您设置 D3D10_CREATE_DEVICE_DEBUG 标志,DirectX 可以将有关错误的注释输出到 stderr 或 stdout。看来能帮你找到失败的原因。