你能帮我找到等效的 DX12 API/示例代码,我可以通过它加载位图并创建纹理吗?
DX11 是D3DX11CreateShaderResourceViewFromFile
,DX9 是D3DXCreateTextureFromFileEx
你能帮我找到等效的 DX12 API/示例代码,我可以通过它加载位图并创建纹理吗?
DX11 是D3DX11CreateShaderResourceViewFromFile
,DX9 是D3DXCreateTextureFromFileEx
您可以使用DirectXTK中的以下功能以及许多其他功能。
// Standard version
HRESULT __cdecl LoadWICTextureFromMemory(
_In_ ID3D12Device* d3dDevice,
_In_reads_bytes_(wicDataSize) const uint8_t* wicData,
size_t wicDataSize,
_Outptr_ ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& decodedData,
D3D12_SUBRESOURCE_DATA& subresource,
size_t maxsize = 0);
HRESULT __cdecl LoadWICTextureFromFile(
_In_ ID3D12Device* d3dDevice,
_In_z_ const wchar_t* szFileName,
_Outptr_ ID3D12Resource** texture,
std::unique_ptr<uint8_t[]>& decodedData,
D3D12_SUBRESOURCE_DATA& subresource,
size_t maxsize = 0);
或者,您可以使用Windows Imaging Component来编写自己的实现,特别是如果您想拥有更多控制权。