龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > VB开发 >

DirectX7.0使用心得(3)

时间:2009-12-30 15:42来源:未知 作者:admin 点击:
分享到:
上一次我们一共建立了三个Surface,分别是objDDPrimSurf(Primarysurface)、objDDBackSurf(BackBuffersurface)、objDDOffSurf(Offscreensurface)。 现在我打算把objDDOffSurf拿来存放图片,再用BltFast()把图片给复制到
上一次我们一共建立了三个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)->

收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!

热评话题

按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接