游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: e123

能提高D3DXLoadSurfaceFromSurface的执行速度?

[复制链接]

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-6-1 15:59:00 | 显示全部楼层

Re:能提高D3DXLoadSurfaceFromSurface的执行速度?

前面说过了,StretchRect对源和目的纹理的格式有着非常严格的要求,不光是缓冲池D3DPOOL的位置,包括纹理的用途D3DUSAGE、像素格式D3DFMT都有很多的限制,包括不同的DX版本对这些的支持都不一样。如果任何一点不匹配函数就会执行失败,你连返回值都没有判断……
你是想把当前RenderTarget的内容复制到新创建的表面上嘛。。。但StretchRect只能支持RT到RT的复制,你新创建的表面是Off-Screen Plain的而不是RT(尽管你指定放到显存中的),所以复制肯定会失败的。D3D里面创建表面是用CreateTexture,指定D3DUSAGE_RENDERTARGET和D3DPOOL_DEFAULT,而不是用CreateOffscreenPlainSurface(DDRAW的遗毒吧)
你去看看SDK上面的StretchRect函数说明就晓得了。。。上面讲得很详细的,还有搭配表格,你注意判断一下返回值,或者在控制面板里面打开DX Debug输出,Output级别调到倒数第二级,可以发现很多问题的

1

主题

8

帖子

8

积分

新手上路

Rank: 1

积分
8
 楼主| 发表于 2006-6-1 18:45:00 | 显示全部楼层

Re: 能提高D3DXLoadSurfaceFromSurface的执行速度?

谢谢,jk20012001
如果我需要把Surface的数据进行后期的处理,并且保存起来,类似录像功能。是否有其他的处理方法?

5

主题

686

帖子

697

积分

高级会员

Rank: 4

积分
697
QQ
发表于 2006-6-1 19:43:00 | 显示全部楼层

Re:能提高D3DXLoadSurfaceFromSurface的执行速度?

简单的后期处理可以用Image_Based渲染来做,只是不知道你想处理成什么样子呢?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-24 15:31

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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