游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2668|回复: 8

请问频繁申请删除显存会不会有效率问题?

[复制链接]

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
发表于 2009-5-21 11:40:00 | 显示全部楼层 |阅读模式
比如32*32的纹理平均每秒申请删除5次左右
会不会出现大量显存碎片导致效率下降什么的?

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2009-5-21 12:23:00 | 显示全部楼层

Re:请问频繁申请删除显存会不会有效率问题?

不会有碎片问题,但会有效率问题。微软的guideline是只在初始化时创建显存资源对象。

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-5-21 15:53:00 | 显示全部楼层

Re:请问频繁申请删除显存会不会有效率问题?

比如32*32的纹理平均每秒申请删除5次左右.....

汗,为什么不直接用dynamic buffer.....

1万

主题

1万

帖子

2万

积分

管理员

中级会员

Rank: 9Rank: 9Rank: 9

积分
20678
发表于 2009-5-21 16:11:00 | 显示全部楼层

Re:请问频繁申请删除显存会不会有效率问题?

一般?碚f不??@么干。。。你申?好,然后管理起?怼

227

主题

1793

帖子

1866

积分

金牌会员

Rank: 6Rank: 6

积分
1866
 楼主| 发表于 2009-5-21 16:50:00 | 显示全部楼层

Re:请问频繁申请删除显存会不会有效率问题?

1 其实我用的是opengl……
2 我的目的是要渲染字符,需要考虑跨平台,而且程序不能开源
如果我用精简字符的字库或者局部字库,那程序就太麻烦了
如果我直接把gb2132搬进去,那么索引色的整个字库大概8MB……这肯定更不能接受
所以我只能考虑1bit纹理字库存放在内存里
需要时每个字符单独写入显存
不需要时删除

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2009-5-21 18:45:00 | 显示全部楼层

Re:请问频繁申请删除显存会不会有效率问题?

http://www.cnblogs.com/clayman/archive/2009/05/17/1459016.html

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-5-21 18:56:00 | 显示全部楼层

Re:请问频繁申请删除显存会不会有效率问题?

我觉得可以先准备好10张512*512的纹理, 里面保存了预先统计的常用字.

遇到没有的字符看看有没有空余的纹理, 如果没有则马上创建一块新纹理, 并把该字符画上去.

所以在遇到没有的字符的时候可能会卡一下, 然后就好了.

建议使用unicode 毕竟ASCII下汉字是分开的. 不好处理.

unicode的所有字符都占2字节, 即一个wchar_t类型

59

主题

404

帖子

404

积分

中级会员

Rank: 3Rank: 3

积分
404
发表于 2009-5-21 19:02:00 | 显示全部楼层

Re:请问频繁申请删除显存会不会有效率问题?

可以用一个map来保存字符信息:
struct CharactorInfo
{
    short m_ID;              // 该字符所在的纹理ID
    short m_X, m_Y;          // 字符在纹理中的偏移量
    short m_Width, m_Height; // 字符的尺寸
};

typedef std::map<wchar_t, CharactorInfo> CharInfoMap;
CharInfoMap  m_CharInfoMap;

可以这样操纵字符:
m_CharInfoMap[L'你'];
m_CharInfoMap[L'好'];
m_CharInfoMap[L'啊'];


m_CharInfoMap[L'你'].m_ID = 10;
m_CharInfoMap[L'你'].m_X = 20;
....

19

主题

638

帖子

638

积分

高级会员

Rank: 4

积分
638
发表于 2009-5-21 19:25:00 | 显示全部楼层

Re: Re:请问频繁申请删除显存会不会有效率问题?

oz01: Re:请问频繁申请删除显存会不会有效率问题?

1 其实我用的是opengl……
2 我的目的是要渲染字符,需要考虑跨平台,而且程序不能开源
如果我用精简字符...


更新纹理内容就行了,不用删除创建纹理
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 07:52

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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