【发布时间】:2020-01-30 11:45:24
【问题描述】:
我想使用 dxgi 格式 DXGI_FORMAT_R1_UNORM 在 DirectX 11 中创建每像素 1 位单色纹理 2D 我已尝试以下方法,但显示以下错误:
D3D11 错误:ID3D11Device::CreateTexture2D:设备不支持格式 R1_UNORM。 [状态创建错误#92:CREATETEXTURE2D_UNSUPPORTEDFORMAT] D3D11:BREAK 为上一条消息启用,即:[ERROR STATE_CREATION #92: CREATETEXTURE2D_UNSUPPORTEDFORMAT]
我试图创建一个用于渲染的纹理,但正如您在上面看到的那样,设备不支持“R1_UNORM”。那么,应该使用哪种格式来创建纹理 2D?
bitmapPixels 是 BYTE 中 1 位颜色数组的动态内存,由正在审查中的算法编写而成 Code Review: Bit Packing algorithm of 1-Bit monochrome image
D3D11_TEXTURE2D_DESC desc;
ZeroMemory(&desc, sizeof(desc));
desc.Width = 32;
desc.Height = 32;
desc.ArraySize = 1;
desc.Format = DXGI_FORMAT_R1_UNORM;
desc.Usage = D3D11_USAGE_DEFAULT;
desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
desc.CPUAccessFlags = D3D11_CPU_ACCESS_WRITE;
desc.MipLevels = 1;
desc.SampleDesc.Count = 1;
desc.MiscFlags = 0;
const D3D11_SUBRESOURCE_DATA subResourceData = {bitmapPixels, 4, 4 * desc.Height};
device->CreateTexture2D(&desc, &subResourceData, &texture2D);
【问题讨论】:
标签: c++ directx-11 texture2d dxgi