gpt4 book ai didi

winforms - 多显示器硬件加速

转载 作者:行者123 更新时间:2023-12-02 02:01:51 24 4
gpt4 key购买 nike

我捕获了 this multi window测试代码,将其更改为使用 D3DXCreateTeapot 而不是 D3DXLoadMeshFromX(我找不到 teapot.x 文件),移动了下面的 EndScene 调用DrawText 调用并将 NUM_WINDOWS 设置为 1。通过这些微小的更改,测试工作并创建了两个窗口,每个窗口都有其茶壶。

我构建了测试并将其部署在一台机器上,该机器有一个 Intel HD Graphics 板载 GPU,有两个头,每个头都连接到一个显示器。然后我将一个窗口移动到每个显示器,并放大两个窗口以占据每个显示器空间的大约 80%。

使用这个非常接近我的应用程序所需的设置,辅助监视器中的窗口总是变得太慢。如果我交换窗口,结果是一样的:辅助监视器中的窗口开始爬行,并减慢整个系统的速度。

我在谷歌上搜索了一下,一些来源(尽管已过时)指出只有主显示器在不处于全屏模式时可以使用硬件加速。我无法使用全屏,因为我的应用程序中的 direct3d9 渲染是在嵌入 Winforms GUI 的用户控件内完成的。

在窗口模式下真的不可能为两个显示器都获得硬件加速吗?我们应用程序的旧版本使用 MFC + DirectDraw 并设法以足够快的速度执行,但这些都是过时的技术,我们不愿回到那里。

最佳答案

您有 3 个选择:

  1. 尝试多种组合,例如:D3DPRESENT_INTERVAL_IMMEDIATE +(D3DSWAPEFFECT_FLIP 或 D3DSWAPEFFECT_COPY) +D3DCREATE_ADAPTERGROUP_DEVICE。也许有些人会提供更好的性能。

  2. 渲染到表面,转换为位图,然后像表单中的任何其他位图一样使用它。像这样的东西 D3DXSaveSurfaceToFileInMemory .

  3. 将您的代码更改为 DirectX11。那里有更多 GDI 交互选项。更好的渲染行为。也许更好的司机。

几年前,我使用 DirectX10/11 制作了一些多窗口代码,也是多设备代码。我不能说 DirectX9 有这个问题,对我来说似乎很荒谬,但可能是您的 Windows 版本或 Intel 驱动程序。

关于winforms - 多显示器硬件加速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16864191/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com