首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在扩展模式下将DirectX窗口从一台显示器移动到另一台显示器

在扩展模式下将DirectX窗口从一台显示器移动到另一台显示器
EN

Stack Overflow用户
提问于 2011-06-16 22:47:13
回答 1查看 1.4K关注 0票数 1

我有一个简单的directX-9测试应用程序,我想在扩展模式下从一个显示器移动到另一个显示器。

窗口和设备是在主监视器上创建的,场景绘制正确,但当我将窗口移动到第二个监视器时,它将冻结。没有错误,甚至当前调用也不会失败,但不会更新窗口。只要我把窗口移回到主监视器上,一切都会恢复正常。

有人能给我一个提示吗?我遗漏了什么才能让它正常工作?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-17 00:03:37

确保枚举您的适配器模式。您使用的模式可能与图形卡有关。此外,对于适配器支持的每种格式,都有一个基于可用模式数量的显示模式列表。下面是遍历这些模式的快速示例:

代码语言:javascript
复制
D3DDISPLAYMODE mode;
UINT adapter = 0;
D3DFORMAT format = D3DFMT_R5G6B5;
LPDIRECT3D9 pD3D;

pD3D = Direct3DCreate9( D3D_SDK_VERSION );

if(!pD3D) return FALSE;

UINT availableModes = pD3D->GetAdapterModeCount(Adapter, Format);

if(!availableModes) return FALSE;

for(UINT i = 0; i < availableModes; i++)
{
    pD3D->EnumAdapterModes( adapter, format, i, &mode);
    formatModeList->push_back(mode); // A list of modes
}

此外,如果处于窗口模式,请确保未使用翻转。在窗口模式下,您可以共享正在运行的应用程序的当前视频模式。不幸的是,您必须使用较慢的blitting过程。希望这能有所帮助。

致以敬意,

将要

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

https://stackoverflow.com/questions/6373829

复制
相关文章

相似问题

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