如何从位图文件创建纹理?

时间:2015-12-28 11:31:24

标签: c++ direct3d12

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

DX11为D3DX11CreateShaderResourceViewFromFile,DX9为D3DXCreateTextureFromFileEx

1 个答案:

答案 0 :(得分: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编写自己的实现,尤其是在您希望获得更多控制权的情况下。