WEB开发网
开发学院WEB开发综合 DirectX7.0使用心得(3) 阅读

DirectX7.0使用心得(3)

 2006-02-27 11:43:12 来源:WEB开发网   
核心提示:上一次我们一共建立了三个Surface,分别是objDDPRimSurf(Primarysurface)、objDDBackSurf(BackBuffersurface)、objDDOffSurf(Offscreensurface),DirectX7.0使用心得(3),现在我打算把objDDOffSurf拿来存放图片,
上一次我们一共建立了三个Surface,分别是objDDPRimSurf(Primarysurface)、objDDBackSurf(BackBuffersurface)、objDDOffSurf(Offscreensurface)。
现在我打算把objDDOffSurf拿来存放图片,再用BltFast()把图片给复制到objDDBackSurf上,然后用objDDPrimSurf的Flip来跟objDDBackSurf作交换的动作,因为objDDPrimSurf代表的就是显示记忆体,所以交换后图片就显示在屏幕上啦!

现在我先介绍BltFast()的用法:
BltFast(dxAsLong,dyAsLong,ddsAsDirectDrawSurface7,srcRectAsRECT,transAsCONST_DDBLTFASTFLAGS)AsLong

dx、dy
图形复制到目标Surface上的位置(座标)
dds
图片来源的Surface
srcRect
复制图形的范围
trans
复制图片的方式
DDBLTFAST_DESTCOLORKEY'使用目标Surface上的透明色
DDBLTFAST_NOCOLORKEY'直接复制图形
DDBLTFAST_SRCCOLORKEY'使用来源Surface上的透明色
DDBLTFAST_WAIT'若暂时无法执行的话就等到可以执行时

例:想把objDDOffSurf上640x480的图形复制到objDDBackSurf
Dimr1AsRECT

r1.left=0
r1.top=0
r1.right=640
r1.bottom=480

objDDBackSurf0,0,objDDOffSurf,r1,DDBLTFAST_WAIT

这样就把图形给复制到了objDDBackSurf上了,不过这样也只是在objDDBackSurf上而已,并不是在屏幕上,所以必须跟objDDPrimSurf作Flip才行,怎堋作呢?只要执行下面这一行就可以了:

objDDPrim.FlipNothing,DDFLIP_WAIT
这么一来图形就出现在屏幕上啦。完整范例程式下载(9K)->

Tags:DirectX 使用 心得

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接