游戏开发论坛

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

关于显示fps的问题

[复制链接]

3

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
发表于 2009-4-12 08:41:00 | 显示全部楼层 |阅读模式
我想请教一个关于显示fps的问题
我利用Directx Sample Browser 的EmptyProject创建了一个程序框架
添加了一个fps与time,Frame的全局变量
然后每次进入OnD3D9FrameRender函数,Frame就自增,当time超过一秒时,
用fps=Frame / time,在屏幕上输出fps
问题是,我的程序输出的fps显示为37,而用fraps软件显示为75帧,差一倍。是不是我的理解有错了,不是每调用present一次,就算一帧吗?
那帧速应该如何求啊?
PS:vs2008里的c++的intellisense是不是有点问题的,我的EmptyProject死活不出智能提示,删了ncb文件都不行,其他项目又没问题,郁闷死了......
先感谢了

3

主题

11

帖子

15

积分

新手上路

Rank: 1

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

Re:关于显示fps的问题


//获得豪秒
float FDSYSTEM::getGetTickCount(float delay)
{
        delay=GetTickCount();//获得豪秒
        return delay;
}

//获取帖速
float FDSYSTEM::getFrameSpeed(float delay)
{
        return GetTickCount() - delay;
}


//控制帖速
int FDSYSTEM::setFrameSpeed(float delay,float speed)
{
        int difftm = GetTickCount() - delay;
        if(difftm < speed)
        {
                ::Sleep(speed - difftm);//主动放弃CPU使用时间
                return 0;//帖速不合符要求
        }
        return 1;//帖速合符要求
}

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2009-4-13 10:48:00 | 显示全部楼层

Re:关于显示fps的问题

“豪秒”,“帖速”.....这么写注释还不如不写.....

3

主题

7

帖子

7

积分

新手上路

Rank: 1

积分
7
 楼主| 发表于 2009-4-14 01:10:00 | 显示全部楼层

Re:关于显示fps的问题

嗯,已解决了
应该是时间精度的问题

1

主题

16

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2009-4-14 20:43:00 | 显示全部楼层

Re:关于显示fps的问题

在创建设备时,应该把FPU那个参数写上
否则会影响所能表达的时间精度,比如对COleTime有影响
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-20 17:26

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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