游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3529|回复: 4

bltbit贴图 图闪烁

[复制链接]

4

主题

4

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-10-11 18:55:00 | 显示全部楼层 |阅读模式
[em3] 我做了个3D程序 DX的 然后用bltbit进行贴图 来让用户看到背包里的东西 但是图闪烁的很厉害 不知是为什么 代码是这样的
先创建一个与内存存储
hdc=GetDC(g_hWnd);
wupindc=CreateCompatibleDC(hdc);
wupinbmp=(HBITMAP)LoadImage(NULL,"baoguo.bmp",IMAGE_BITMAP,320,502,LR_LOADFROMFILE);  
SelectObject(wupindc,wupinbmp);

然后在paint()中
BitBlt(hdc,420,5,320,502,wupindc,0,0,SRCCOPY);

请大侠指教!

0

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
发表于 2009-10-11 20:54:00 | 显示全部楼层

Re:bltbit贴图 图闪烁

用DX干嘛还用 GDI 贴图呢    图片闪烁是因为你没有用双缓冲 但我还是建议你放弃GDI位图传送

3

主题

101

帖子

101

积分

注册会员

Rank: 2

积分
101
发表于 2009-10-12 09:32:00 | 显示全部楼层

Re:bltbit贴图 图闪烁

要裁剪
HDC本来就很差的了,所以你要对他优化.
双缓冲,看起来不闪,但CPU上去了,因为还要创建HDC,在内存在先BLT一次.
刷新率上去时,CPU也上去.

0

主题

15

帖子

15

积分

新手上路

Rank: 1

积分
15
发表于 2009-12-21 14:58:00 | 显示全部楼层

Re:bltbit贴图 图闪烁

图片闪烁是因为你没有用双缓冲

2

主题

79

帖子

85

积分

注册会员

Rank: 2

积分
85
QQ
发表于 2010-1-25 13:18:00 | 显示全部楼层

Re: bltbit贴图 图闪烁


    你这里的闪烁跟双缓冲没有直接的关系,双缓冲是解决了效率问题,但是GDI里就不是这回事。

    现在的贴图闪烁,是因为windows窗口有背景刷新的过程,但是默认是刷新成一个单色的填充,

如果你没有指定,一般是白色,所以当你显示时,其实是全白色一帧,然后你的图片一帧这样轮回贴图

的,当然会闪烁了。

    解决办法:可以重载消息WM_ERASEBKGND,把背景也帖上你的图片,就不会闪烁了。


   
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-16 00:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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