0

你能帮我找到等效的 DX12 API/示例代码,我可以通过它加载位图并创建纹理吗?

DX11 是D3DX11CreateShaderResourceViewFromFile,DX9 是D3DXCreateTextureFromFileEx

4

1 回答 1

0

您可以使用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来编写自己的实现,特别是如果您想拥有更多控制权。

于 2017-04-11T09:24:03.157 回答