游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1309|回复: 0

问个Direct Draw中的Blt() 函数的问题

[复制链接]

3

主题

6

帖子

13

积分

新手上路

Rank: 1

积分
13
发表于 2008-1-1 12:26:00 | 显示全部楼层 |阅读模式
memset(&ddsd,0,sizeof(ddsd));
ddsd.dwSize=sizeof(ddsd);
backsurface-> Lock(NULL,&ddsd,DDLOCK_SURFACEMEMORYPTR ¦DDLOCK_WAIT,NULL);
int     mem_pitch=(int)ddsd.lPitch;
UCHAR   *VRAM=(UCHAR*)ddsd.lpSurface;
for(int   i=0;i <1000;++i)
{
UCHAR   color=rand()%256;
int   x=rand()%1024;
int   y=rand()%768;
VRAM[x+y*mem_pitch]=color;
}
backsurface-> Unlock(NULL);
                while(primarysurface-> Flip(NULL,   DDFLIP_WAIT)!=DD_OK);
上面这段代码是随机在后备表面上绘制1000个点,再调用Filp()页面切换,可以正常工作。下面我想在backsurface上随机绘制矩形,再调用Flip函数显示:

DDBLTFX   ddbltfx;
RECT   rect;
ddbltfx.dwFillColor   =rand()%256;
rect.left   =rand()%1024;
rect.top   =rand()%768;
rect.right   =rand()%1024;
rect.bottom   =rand()%768;

if(FAILED(backsurface-> Blt(&rect,NULL,NULL,DDBLT_COLORFILL ¦DDBLT_WAIT,&ddbltfx)))
{
MessageBox(NULL,"BLT失败","失败提示",MB_OK);
return   1;
}
                while(primarysurface-> Flip(NULL,   DDFLIP_WAIT)!=DD_OK);

却显示出我的错误提示框,Blt函数调用失败。。。。。。。。。。这是什么原因呢???请高手提示一下?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-23 23:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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