我期待在游戏引擎中实现一个video播放器,有效地解码video文件,并在DirectX 11中渲染结果。不幸的是,我对如何做到这一点有些无知,但是我发现了ID3D11VideoDevice类在MSDN上,但不知道如何使用它,我似乎无法find任何有用的示例/示例在线显示如何使用它。
我已经开始尝试查询接口哦我创build的ID3D11Device与下面的代码:
ComPtr<ID3D11VideoDevice> video; HRESULT hr = device->QueryInterface(__uuidof(ID3D11VideoDevice),&video);
但是我得到了HRESULT E_NOINTERFACE,所以我猜测我已经创build了原始设备,以至于我无法将其转换为video设备? 无论是这样或者完全是错误的方式去做。 所以我的问题是:
我是如何开始正确的,如果是的话,为什么我会得到这个错误?
有谁知道任何有用的文件/在线样本,可以解释如何做到这一点?
以下仅供参考是我如何创build原始ID3D11Device:
FindWindow(…)不是“查找”创build的消息窗口
std :: u32string转换为/从std :: string和std :: u16string
如何在OSX上通过vswprintf格式化宽string(想返回std :: wstring)
为什么使用std :: thread :: hardware_concurrency()和boost :: thread :: hardware_concurrency()有区别?
读一个C ++ ifstream两次?
std::vector<D3D_FEATURE_LEVEL> feature_levels = { D3D_FEATURE_LEVEL_11_1,D3D_FEATURE_LEVEL_11_0,D3D_FEATURE_LEVEL_10_1,D3D_FEATURE_LEVEL_10_0,D3D_FEATURE_LEVEL_9_3,D3D_FEATURE_LEVEL_9_2,D3D_FEATURE_LEVEL_9_1 }; UINT flags = 0; #if defined(DEBUG) || defined(_DEBUG) flags |= D3D11_CREATE_DEVICE_DEBUG; #endif // Create D3D device HRESULT hr = D3D11CreateDevice(nullptr,D3D_DRIVER_TYPE_HARDWARE,flags,&feature_levels[0],feature_levels.size(),D3D11_SDK_VERSION,&m_device,&m_featureLevel,&m_deviceContext);
提前致谢。
C ++:检查string是否是使用“strtol”的有效整数
gdb中的命令与dbx中的path映射相同吗?
什么是将C ++ 11asynchronous/期货与WindowsasynchronousIO结合起来的最佳API?
安全的C + + std ::string到TCHAR *转换?
为什么CR LF在Windows中更改为LF?
提到您正在使用Windows 7的评论,这就是您没有Direct3D 11视频支持的原因。
DirectX 11.1运行时可以通过KB2670838安装在Windows 7 Service Pack 1上,但它只提供每个MSDN的软件功能。 任何需要新硬件功能的功能都需要新的WDDM v1.2驱动程序,而这些驱动程序仅在Windows 8.0或更高版本上受支持。
请参阅DirectX 11.1和Windows 7以及DirectX 11.1和Windows 7更新 。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。