首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从IDirect3DDevice9检索ID2D1DeviceContext

从IDirect3DDevice9检索ID2D1DeviceContext
EN

Stack Overflow用户
提问于 2017-04-14 18:39:48
回答 2查看 572关注 0票数 0

我使用源码阅读器从视频文件中读取视频样本,并使用解码器解码它们,然后我使用DirectX9渲染这些样本。

我正在使用IDirect3DDevice9渲染视频帧,它的工作效果与预期一致。

现在我想添加Chroma-key效果,如下所示:

https://msdn.microsoft.com/en-us/library/windows/desktop/dn890715(v=vs.85).aspx

那么如何从IDirect3DDevice9获取ID2D1DeviceContext,然后添加Chorma-key效果,然后渲染视频帧呢?

EN

回答 2

Stack Overflow用户

发布于 2017-04-14 19:07:57

ID2D1DeviceContext需要DirectX11设备,不能与过时的IDirect3DDevice9一起使用。通常,您按以下顺序创建对象: DXGI工厂、D2D1工厂、D3D11设备、DXGI设备、D2D1设备,最后是D2D1设备上下文。你可能想检查一下D2D getting starting guide and samples

除非您被迫为Windows XP提供向后兼容性,否则与DirectX9打交道已没有实际意义。您发布的Chroma-key示例需要Windows 10。

票数 4
EN

Stack Overflow用户

发布于 2017-04-14 19:35:22

那么我如何从IDirect3DDevice9中获取ID2D1DeviceContext ...

你不能从另一个中得到一个。这些接口属于不同的API,如果你使用Direct3D 9的媒体基础进行解码,Direct2D ( ID2D1DeviceContext所属的地方)在那里是没有用处的。

与您的请求最接近的是使用API之间的互操作性。有关介绍,请参阅Direct2D and Direct3D Interoperability Overview,并注意其中提到的Direct3D版本。

另请参阅:Surface Sharing Between Windows Graphics APIs。下图显示了较新的API通过DXGI进行互操作,虽然没有Direct3D 9那么旧。另请参阅下面的评论,以获得更新的MSDN链接。

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

https://stackoverflow.com/questions/43409898

复制
相关文章

相似问题

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