|
|

楼主 |
发表于 2004-10-12 12:10:00
|
显示全部楼层
Re:我的Alpha怎么这么慢呢?
我把核心代码贴上来
调用函数为ShowWnd(lpddsback,100,50,true);
lpDDSWnd为窗口面
ShowWnd(LPDIRECTDRAWSURFACE7 surf,int left,int top,bool bShowWindow)
{
if(!bShowWindow)return;
LPDIRECTDRAWSURFACE7 tmpsurface=NULL;
tmpsurface=CreateSurface(Wnd_Width,Wnd_Height);
RECT rc=GetRect(left,top,Wnd_Width,Wnd_Height);
tmpsurface->BltFast(0,0,surf,&rc,DDBLT_WAIT);//保存surface到tmpsurface
RECT rc=GetRect(0,0,Wnd_Width,Wnd_Height);
ABlt(tmpsurface,left,top,lpDDSWnd,rc,ColorKey16,15);//对tmpsurface和lpDDSWnd进行ALPHA混合
surface->BltFast(left,top,lpDDSWnd,&rc,DDBLT_WAIT);//将ALPHA混合好的面贴回去
} |
|