- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我最近做了一个游戏截图应用。
首先,我使用 GDI 来捕获游戏,但为此我不得不在 win7/vis 上禁用 aero,而且我在 windows XP 上遇到了一些问题。
当我决定使用 DirectX 并意识到微软的 DX 不适合我后,我发现了这个 SlimDX 屏幕截图的好例子 (http://spazzarama.wordpress.com/2009/02/07/screencapture-with-direct3d/)
SlimDX 工作得很好!它甚至让我无需在 win7/vis 上禁用 aero 即可捕获游戏。
唯一的问题是 - 当我将游戏切换到全屏时,我得到“D3DERR_DEVICELOST:设备丢失 (-2005530520)”。
任何人都可以建议一种方法来自定义代码以捕获全屏应用程序吗?
注意:我已经有一个方法可以确定游戏是全屏还是窗口。
然后我更改了这一行:
bitmap = new Bitmap(SlimDX.Direct3D9.Surface.ToStream(surface, SlimDX.Direct3D9.ImageFileFormat.Bmp, new Rectangle(region.Left, region.Top, region.Width, region.Height)));
为此:
bitmap = new Bitmap(SlimDX.Direct3D9.Surface.ToStream(surface, SlimDX.Direct3D9.ImageFileFormat.Bmp));
最佳答案
当 Direct3D 设备进入全屏模式时,它被授予对视频卡的独占访问权。来自 the MSDN documentation :
when a Direct3D object assumes exclusive mode, all devices other than the one that went full-screen are placed in lost state.
我认为没有任何方法可以让您的技术在进入全屏独占模式后对另一个应用程序进行截屏。我的理解是,其他检索全屏表面状态的应用程序(即视频录制程序等)通过将自己的代码注入(inject) Direct3D 库本身来实现。这是一项非常重要的工作;如果您有兴趣走那条路,可以尝试搜索“directx 代码注入(inject)”或类似内容。
关于C# 使用 SlimDX 捕获全屏游戏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7278944/
我的应用程序不时初始化一堆 DirectX 内容并加载场景,有时包含一些大纹理(每个纹理最多 200-300 MB)。起初,一切正常,但过了一会儿 FromMemory()只是停止工作,但仅适用于大纹
我想在 SlimDX(Direct3D11) 中加载一个预编译的着色器,但我不知道该怎么做。 我搜索了这个主题,只找到了 C++ native 版本的 DirectX 的解决方案。似乎是/Gch 编译
我创建了新窗口,并在新线程上使用了 SlimDX.Windows.MessagePump.Run。我怎样才能停止这个循环? 最佳答案 如果您将表单作为参数传递给 MessagePump.Run,您
我有以下代码来实例化一个常量缓冲区并将其绑定(bind)到像素着色器。 ConstantBuffers.EveryFrame 是 ConstantBuffers 类中的一个结构,它包含我需要在每帧基础
如何使用 SlimDX 的 Direct2D 接口(interface)绘制三角形,三角形顶点以像素坐标给出? 最佳答案 我们最近刚刚在我们的存储库中添加了一个涵盖该主题的示例。相关的源文件是here
我最近做了一个游戏截图应用。 首先,我使用 GDI 来捕获游戏,但为此我不得不在 win7/vis 上禁用 aero,而且我在 windows XP 上遇到了一些问题。 当我决定使用 DirectX
我正在尝试使用 SlimDX 渲染线框 3D 模型。 谷歌搜索后我只找到了高级主题,没有找到如何在 SlimDX 中绘制线框。他们说我必须使用着色器才能做到这一点。 由于我是 DirectX 的新手,
我一直在关注 Microsoft Direct3D11 教程,但使用的是 C# 和 SlimDX。我正在尝试设置常量缓冲区,但不确定如何创建或设置它。 我只是尝试使用常量缓冲区设置三个矩阵(世界、 V
我遇到了 SlimDX March SDK 的问题(我相信是 DXSDK11 June 2010)。问题是,每当我将附加深度 View 转为输出合并状态时,我都不会在屏幕上看到任何输出。我将我的代码与
这是我在 StackOverflow 上遇到的第一个问题,万岁!我可以诚实地说,我每天都使用 StackOverflow 来处理我的工作和个人编程谜题。 99.9% 的情况下,我实际上也在这里找到了我
好的 - 我是 SlimDX、DirectX 和一般图形编程的新手,我需要加快速度。 我正在尝试开发一个原型(prototype)应用程序来可视化和调试我最终将在非图形应用程序中使用的数据。 我已经学
您好,我在使用 SlimDX 正确渲染 Sprite 时遇到了问题。它的绘制有点像 .NET Drawing DrawImageUnscaled 所做的那样。我没有使用任何转换。 初始化: Vecto
我知道这里有很多关于在 XNA 和 SlimDX 之间进行选择的问题,但这些都与游戏编程有关。 一点背景知识:我有一个根据 XML 描述渲染场景的应用程序。目前我正在使用 WPF 3D,这主要是有效的
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
有没有基于 SlimDX 框架的主要游戏或开源游戏?我知道它几乎只是 DirectX 之上的包装器,但看到它在成熟的环境中使用仍然很有趣。 我也在寻找游戏背后的某种故事:关于如何选择框架、存在哪些陷阱
我没能找到这方面的文档,但它可能非常简单。我有一个需要更新变量的像素着色器。我唯一接近的是 ConstantTable,但它在 Direct3D9 下,而不是我正在使用的 Direct3D11。 将
我使用 ffmpeg 解码视频文件,解码后得到 YUV 图像。 如何使用 SlimDX/DirectX 将此 YUV 图像显示为表面(或纹理?)的覆盖? 谢谢。 最佳答案 您可以使用颜色格式 YUV
我们如何使用 slimdx n c# 编码来编写媒体播放器 最佳答案 尝试借用this guy's code ...您必须从 VB 翻译它,但似乎您要查找的大部分内容都在那里。 关于c#-3.0 -
我想使用 SlimDX (DirectX 11) 在 WPF 中呈现图像的内容。 问题是我找不到将 SwapChain 链接到 D3DImage 的方法。 (DirectX 11 示例使用 SlimD
我们有一个目前使用 DirectX11 SlimDX 的项目,希望将其移至 SharpDX。然而,这个项目使用了 SlimDX 的效果框架,据我所知,DirectX11 不再正确支持它。但是,我找不到
我是一名优秀的程序员,十分优秀!