【发布时间】:2020-09-08 22:34:19
【问题描述】:
我正在编写一些 D3D11 应用程序并使用 DirectXTK 的 CreateWICTextureFromFile 将纹理文件加载到 SRV。我只想在开始绘制场景时(在初始化模型、纹理、着色器、常量缓冲区等之后)才显示我的渲染窗口,所以我很早就创建了这个窗口,但后来我省略了 ShowWindow。
很遗憾,除非在创建纹理之前显示窗口,否则我会收到错误消息:
// ShowWindow(hwnd, SW_SHOW); // works
hr = DirectX::CreateWICTextureFromFile(device.Get(), L"../../Common/Resources/Textures/green_grid.png", nullptr, psTexture.GetAddressOf());
ShowWindow(hwnd, SW_SHOW); // fails
H结果错误:
No such interface supported
如果我在初始化结束时显示窗口,只要我不使用此函数加载任何纹理,它似乎也可以正常工作。
也许我不太了解窗口在 D3D API 方面的工作原理。查看 CreateWICTextureFromFile 的参数,我只看到对设备和 SRV 的依赖。我不确定为什么依赖于窗口可见性?
【问题讨论】: