游戏开发论坛

 找回密码
 立即注册
搜索
12
返回列表 发新帖
楼主: hotcat

我的Alpha怎么这么慢呢?

[复制链接]

33

主题

669

帖子

669

积分

高级会员

Rank: 4

积分
669
QQ
发表于 2004-10-11 22:11:00 | 显示全部楼层

Re:我的Alpha怎么这么慢呢?

先BLT到一个离屏表面,然后再BLT后表面翻页 ,你的循环里包括什么步骤?

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
发表于 2004-10-12 01:22:00 | 显示全部楼层

Re:我的Alpha怎么这么慢呢?

还是mmx吧!

17

主题

177

帖子

177

积分

注册会员

Rank: 2

积分
177
QQ
 楼主| 发表于 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混合好的面贴回去
}

26

主题

417

帖子

476

积分

中级会员

总版主

Rank: 3Rank: 3

积分
476
发表于 2004-10-12 12:49:00 | 显示全部楼层

Re:我的Alpha怎么这么慢呢?

呵呵,估计是从显存里来操作的吧?
用SYSTEMMEMORY要快的多!

17

主题

177

帖子

177

积分

注册会员

Rank: 2

积分
177
QQ
 楼主| 发表于 2004-10-12 13:51:00 | 显示全部楼层

Re: 我的Alpha怎么这么慢呢?

呵呵~~果然是高手~我加了DDSCAPS_SYSTEMMEMORY以后FPS马上从12冲到了70。
下面是贴图。呵呵~~谢谢高手 [em3] [em20] [em20] [em20]
sf_20041012135139.jpg

50

主题

244

帖子

319

积分

中级会员

Rank: 3Rank: 3

积分
319
QQ
发表于 2004-10-27 22:37:00 | 显示全部楼层

Re:我的Alpha怎么这么慢呢?

楼主大哥可以把你实现半透明的那段代码给我看看吗?小弟心学这个,很想做个半透明的对话框安慰自己下,不过现在看资料无从下手了。如果愿意给我发条短消息好吗?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 00:37

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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