游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1478|回复: 1

如果一个窗口创建两个DX设备,如何使一个设备显示另一

[复制链接]

1

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-12-8 15:10:00 | 显示全部楼层 |阅读模式
如题目所描述,由于特殊的应用,我需要对一个窗口创建两个dx设备,而且一设备要显示另外一个设备的渲染出来的surface。

一下是我的思路:

1.对一个窗口创建两个DX设备-------成功
2.设备A正常运作,渲染,但是不调用present()函数-------可以控制
3.设备B在本应该是设备A present()的地方获取设备A的渲染结果用来并且显示----------失败

第三步我的处理流程是
pD1->getbackbuffer() ---成功
pD1->CreateOffscreenPlainSurface() ---成功
pD1->getrendertargetdata() ---成功 -- 到此得到一个内存中的surface


pD2->setrendertarget()或 pD2->updatasurface() ---失败 -- 显示上面步骤的surface


所以我的疑问是一个设备不能使用另外一个设备创建的资源么?lockrect()的方式我没有试验,不知道可不可以,但我想通过一种高效的方式实现题目所述过程,请高手解答。

1

主题

22

帖子

695

积分

高级会员

Rank: 4

积分
695
发表于 2010-12-10 12:53:00 | 显示全部楼层

Re:如果一个窗口创建两个DX设备,如何使一个设备显示另

没看明白你为什么要这么做。。如果只是渲染到纹理,设置好渲染目标缓冲区就可以了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-5-30 11:20

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表