首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DirectX 11视频回放

DirectX 11视频回放
EN

Stack Overflow用户
提问于 2016-05-19 14:33:15
回答 1查看 2.5K关注 0票数 2

我希望在游戏引擎中实现一个视频播放器,有效地解码视频文件,并在DirectX 11中将结果呈现为纹理。不幸的是,我对如何做到这一点有点无知,但我已经在MSDN上找到了ID3D11VideoDevice类,但我不知道如何使用它,而且我似乎无法在网上找到任何有用的示例/示例,说明如何使用它。

首先,我尝试使用以下代码查询这个接口(我创建的ID3D11Device ):

代码语言:javascript
复制
ComPtr<ID3D11VideoDevice> video;
HRESULT hr = device->QueryInterface(__uuidof(ID3D11VideoDevice), &video);

但是我得到了HRESULT的E_NOINTERFACE,所以我猜我已经创建了原始的设备,以至于我不能将它转换成视频设备?无论是这样还是这样做都是完全错误的。所以我的问题是:

  1. 我是如何开始正确的,如果是的话,我为什么要得到这个错误?
  2. 有没有人知道网上有什么有用的文档/示例可以解释这是如何做到的?

下面是我创建原始ID3D11Device的方式,仅供参考:

代码语言:javascript
复制
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,
    0,
    flags,
    &feature_levels[0],
    feature_levels.size(),
    D3D11_SDK_VERSION,
    &m_device,
    &m_featureLevel,
    &m_deviceContext);

提前谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-20 19:11:14

评论中提到你使用的是Windows7,这就是你不支持Direct3D 11视频的原因。

DirectX 11.1运行时可以通过KB2670838安装在Windows7ServicePack 1上,但它只为每个MSDN提供软件特性。任何需要新硬件特性的功能都需要新的WDDM v1.2驱动程序,这在Windows8.0或更高版本中才能得到支持。

DirectX 11.1和Windows 7DirectX 11.1和Windows7更新

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37326426

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档