游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4858|回复: 12

请问,在D3D9中,怎样将一个表面的内容复制到后备缓冲中

[复制链接]

19

主题

38

帖子

38

积分

注册会员

Rank: 2

积分
38
QQ
发表于 2005-3-24 22:55:00 | 显示全部楼层 |阅读模式
在D8中,有个copyrects函数,d9中用UpdateSurface函数代替了,但是我在使用的时候确不能成功,说是只能从system的表面拷贝到default 的表面中,那么,后被缓冲到底属于哪种表面呢?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2005-3-24 23:11:00 | 显示全部楼层

Re:请问,在D3D9中,怎样将一个表面的内容复制到后备缓

后备缓冲是建在显存里的,也就是default的。

19

主题

38

帖子

38

积分

注册会员

Rank: 2

积分
38
QQ
 楼主| 发表于 2005-3-24 23:18:00 | 显示全部楼层

Re:请问,在D3D9中,怎样将一个表面的内容复制到后备缓

那么为什么我使用UpdateSurface函数会失败呢?

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2005-3-25 08:42:00 | 显示全部楼层

Re:请问,在D3D9中,怎样将一个表面的内容复制到后备缓

你是怎么用的UpdateSurface?DX SDK文档中有关于UpdateSurface的参数说明,里面说了只能从哪些类型的surface update到哪些类型,你仔细去看看吧。包括surface的格式也要一致。

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-3-25 18:23:00 | 显示全部楼层

Re:请问,在D3D9中,怎样将一个表面的内容复制到后备缓

to tarkey:
若我一个Surface是A8R8G8B8,另一个Surface是X8R8G8B8的,但我又要把它复制,该怎么办?

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2005-3-27 15:26:00 | 显示全部楼层

Re:请问,在D3D9中,怎样将一个表面的内容复制到后备缓

to tarkey我顶。

1

主题

48

帖子

48

积分

注册会员

Rank: 2

积分
48
发表于 2005-3-27 21:01:00 | 显示全部楼层

Re:请问,在D3D9中,怎样将一个表面的内容复制到后备缓

一种方法:
锁住backbuffer,直接对backbuffer写操作。
二种方法:
使用ID3DXSprite。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2005-3-28 08:29:00 | 显示全部楼层

Re: Re:请问,在D3D9中,怎样将一个表面的内容复制到后备

hdm2968: Re:请问,在D3D9中,怎样将一个表面的内容复制到后备缓冲中?

to tarkey:
若我一个Surface是A8R8G8B8,另一个Surface是X8R8G8B8的,但我又要把它复制,该怎么办?


还是改成一致的吧。

1

主题

48

帖子

48

积分

注册会员

Rank: 2

积分
48
发表于 2005-3-28 10:09:00 | 显示全部楼层

Re:请问,在D3D9中,怎样将一个表面的内容复制到后备缓

backbuffer要想lock,必须在初始d3d设备时,设置为LOCKABLE(不记得全称了),但对于某些操作可能会有效率上的影响。我不知道UpdateSurface是什么,但如果是像DDRAW那样锁backbuffer,直接写存,可能就是初始设置的问题。

59

主题

1104

帖子

1199

积分

金牌会员

Rank: 6Rank: 6

积分
1199
发表于 2005-3-28 11:45:00 | 显示全部楼层

Re:请问,在D3D9中,怎样将一个表面的内容复制到后备缓

。。。。写3D程序的忠告之一就是:除了VB,IB,其他的东西都不要锁。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-25 01:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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