如何从外部应用程序调整d3d应用程序的大小。 (C#)

时间:2010-01-05 00:14:20

标签: c# directx resize direct3d

我正在尝试从我的应用程序中调整外部应用程序的d3d窗口。我可以调整窗口的大小,但是d3d引擎仍然认为它的1024x768或者你正在运行。我正在考虑DLL注入,但我将如何调整窗口大小。

我做了一些研究,我很确定我需要更改BackBufferWidth和BackBufferHeight。

有什么想法吗?有没有好的DLL库我可以用我的C#应用​​程序来做简单的d3d功能,如写入屏幕或更改分辨率或更改结构的z缓冲区等?

1 个答案:

答案 0 :(得分:0)

从外部应用程序调整direct3d后备缓冲区/窗口的大小是非繁琐的非安全应用程序。

“Teorically”你应该:

1)停止申请(否则您可能会遇到意外情况,如崩溃或冲突或其他灾难) 2-DX9)选择用于创建设备的设备 3-DX9)调整后备缓冲区的设备上的呼叫复位
4-DX9)调整应用程序窗口的大小。
5-DX9)重启应用程序

2-DX10)选择应用程序的DXGI Swapchain 3-DX10)调整交换链的大小。
4-DX10)重新启动应用程序。

但请记住,如果应用程序仍然认为它处于特定分辨率(例如使用降级纹理,或者尝试将窗口调整为其先前分辨率或者知道什么),那么这一切都无济于事。

总结一下,这是一种非常冒险的编程,我认为它不会产生预期的结果。


对于已经存在的应用程序上的写入更容易,只需在启动时和之前将应用程序中的Direct3D dll注入到您的Font绘制调用中。