- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
正在编写一个游戏,我想要中间有一些过场动画。在窗口模式下,DirectShow 类工作完美并且易于使用。但是当游戏全屏时,我无法让 DirectShow 显示全屏过场动画。
基本上,当我初始化 D3D 设备时,即使使用 IVideoWindow.put_Fullscreen(true),也无法显示视频。我猜测 DirectShow 无法使用 D3D 设备实现全屏显示。
因此,我尝试在过场动画播放时释放我的 D3D 设备,然后再次重新初始化它。这似乎工作得很好,但是当 DirectShow 全屏播放时,它似乎从我的应用程序的主窗口中窃取焦点,并且在完成后不会将其返回。这会导致 DirectInput 之后无法再次获取设备(给我一个“访问被拒绝”错误代码)。我在获取之前尝试过 SetForegroundWindow() ,但这并不能解决问题,所以这可能根本不是问题。
无论如何,长话短说,我想要的只是在我的 D3D 应用程序中间有一个全屏过场动画。有没有一种首选方法可以实现此目的?我可以通过将 DirectShow 输出到我的 D3D 主表面来做到这一点吗?我认为这会解决我遇到的问题。
最佳答案
您想要为视频混合渲染器 9 创建自定义分配器。这比制作您自己的渲染器过滤器要容易得多,而且它是专为 D3D 互操作而设计的。
Windows SDK 中有一个示例。我的安装在这里:
C:\Program Files\Microsoft SDKs\Windows\v7.0\Samples\multimedia\directshow\vmr9\vmr9allocator
关于delphi - DirectShow IVideoWindow 和全屏 - 我可以写入我的 D3D 主表面吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1856498/
正在编写一个游戏,我想要中间有一些过场动画。在窗口模式下,DirectShow 类工作完美并且易于使用。但是当游戏全屏时,我无法让 DirectShow 显示全屏过场动画。 基本上,当我初始化 D3D
我是一名优秀的程序员,十分优秀!