标题:[求助]一个关于Direct的问题,麻烦各位高手们帮帮我啊~~~~~~~
只看楼主
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
结帖率:100%
 问题点数:0 回复次数:4 
[求助]一个关于Direct的问题,麻烦各位高手们帮帮我啊~~~~~~~

我的Direct动画程序在最小化后前3帧部分画面出现了花屏:


我的Flip()函数:

//******************************************************************
//换页
void Flip(void)
{
HRESULT ddrval;
while( 1 )
{
ddrval = lpDDSPrimary->Flip( NULL, 0 );
if( ddrval == DD_OK )
{
break;
}
if( ddrval == DDERR_SURFACELOST )
{
ddrval = RestoreAll();//恢复所有
if( ddrval != DD_OK )
{
return;
}
}
if( ddrval != DDERR_WASSTILLDRAWING )
{
return;
}
}
}

//******************************************************************
//恢复所有页面
HRESULT RestoreAll()
{
HRESULT ddrval;
ddrval=lpDDSPrimary->Restore();
ddrval=lpDDSBack->Restore();

for(int i=0;i<=bmpmax;i++)
{
if(lpDDSPic[i]!=NULL)
{
ddrval=lpDDSPic[i]->Restore();
}
}
return ddrval;
}

麻烦各位大侠高手们帮帮我啊~~~~~~~
这是怎么回事啊?????

希望点开了这个帖子的朋友多少来说两句啊,我悉心听取大家的方法^o^

[此贴子已经被作者于2007-7-27 19:31:12编辑过]

搜索更多相关主题的帖子: Direct 麻烦 
2007-07-27 14:24
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
得分:0 

这也许是你硬件的在某个时刻不稳定造成的,你在恢复所有的时候不仅要恢复这些表面的
内存区域,还应该从新忘上面贴图。。


天行健,君子以自强不息!!QQ:68660681
2007-07-27 18:07
余来
Rank: 6Rank: 6
等 级:贵宾
威 望:26
帖 子:956
专家分:18
注 册:2006-8-13
得分:0 
应该是某个页面没有初始化载图吧

2007-07-27 18:36
maoguoqing
Rank: 6Rank: 6
来 自:重庆
等 级:贵宾
威 望:28
帖 子:2980
专家分:19
注 册:2005-12-5
得分:0 

嗯 也有这个可能, 但是只要恢复了这些表面的贴图应该可以解决。


天行健,君子以自强不息!!QQ:68660681
2007-07-27 18:40
flyue
Rank: 10Rank: 10Rank: 10
来 自:江南西道
等 级:贵宾
威 望:19
帖 子:3465
专家分:1563
注 册:2006-6-20
得分:0 

没有啊,我所有的页面都初始化了,我的程序在一开始运行的时候都好好的,只是按下Alt+Tab最小化后再最大化就出现了以上的情况。
而且只有前3帧会花屏,总共有10帧,其他7帧都好好的啊?
或许2楼的朋友说的没错,我来试下。
希望点开了这个帖子的朋友多少来说两句啊,我悉心听取大家的方法^o^

[此贴子已经被作者于2007-7-27 19:30:33编辑过]


天之道,损有余而补不足.人之道则不然,损不足以奉有余.孰能有余以奉天下,唯有道者.
2007-07-27 19:30



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-158579-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.413940 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved