![](/img/trans.png)
[英]How to fix const char is incompatible with type char DirectX11
[英]DirectX11 How to CreateTexture2D from unsigned char * data
我有一个功能GetCamImage,它从相机返回图像为:
unsigned char* p = GetCamImage(...);
我需要从此数据创建ID3D11Texture2D。 如何在DirectX 11中做到这一点?
谢谢
它取决于该p
实际内容的格式以及宽度,高度和步幅。 假设图像是RGBA 32位格式,具有简单的字节间距对齐,并且大小为w
× h
,那么它将是简单的:
D3D11_SUBRESOURCE_DATA initData = {0};
initData.pSysMem = (const void*)p;
initData.SysMemPitch = w * 4;
initData.SysMemSlicePitch = h * w * 4;
D3D11_TEXTURE2D_DESC desc;
desc.Width = w;
desc.Height = h;
desc.MipLevels = 1;
desc.ArraySize = 1;
desc.Format = DXGI_FORMAT_R8G8B8A8_UNORM;
desc.SampleDesc.Count = 1;
desc.SampleDesc.Quality = 0;
desc.Usage = D3D11_USAGE_DEFAULT;
desc.BindFlags = D3D11_BIND_SHADER_RESOURCE;
desc.CPUAccessFlags = 0;
ID3D11Texture2D* tex = nullptr;
HRESULT hr = d3dDevice->CreateTexture2D( &desc, &initData, &tex );
if (FAILED(hr))
...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.