您的位置:首页 > 编程语言 > Go语言

屏蔽掉Ogre1.7版本以后的 LOGO和FPS数据显示

2012-05-30 17:06 447 查看
一、1.7版前的处理方法

屏蔽掉Ogre LOGO和FPS数据显示,网上搜索了一下,大多类似。

选取了一个最简单易懂的。

在ExampleApplication.h中,找到showDebugOverlay(true)虚函数的应用
为mFrameListener->showDebugOverlay(true);
所以最直接的办法就是在实例文件中改为mFrameListener->showDebugOverlay(false);

上面转自:http://blog.sina.com.cn/s/blog_60ffc4670100mr6y.html

还有一个比较详细的,其实也和上面的类似,/article/10021347.html

我原来看见过类似的文章当时没有在意,只是知道这个函数。

最近我从头做一个Ogre的ATL控件,要从头设置Ogre渲染系统。

我直接官网上下载了最新的框架 BaseApplication类和 TutorialApplication类的。

然后,就一直出现LOGO和FPS数据的Overlay。

我尝试使用showDebugOverlay()函数,就是无法去掉。

我应用各种查找,就是没有找到 Core/DebugOverlay,也没有找到相应的脚本源。没有win版的。

应用如下代码,也找不到资源,返回为NULL。

Overlay* mDebugOverlay;
mDebugOverlay = OverlayManager::getSingleton().getByName("Core/DebugOverlay");


二、Ogre1.7以后,Logo 和FPS都是在sdktray中生成的

耽误时间有点长,我就搁置在一旁了,先做别的。今天我看关于Ogre的Blog有如下一篇文章。

SDKTRAY 初探 ./article/10916063.html

这篇文章的概况:

Ogre1.7以后,Ogre官方不再包含CEGUI的组件了。

Ogre Demo里面的GUI应用,都是一个叫“tray”系统提供的。

这个系统的主要代码在SdkTray.h文件之中。“tray”的系统多 用Overlay实现的。然后,具体讲了,Tray系统中的各个类和函数。

我下载的这个Ogre版本就是1.7.2的。我发现代码中控制LOGO和FPS显示的被个OgreBites::SdkTrayManager类的对象控制。

OgreBites::SdkTrayManager类 就是Tray系统中定义的。

LOGO和FPS的Overlay的create都是在这个类里面。有时间的时候可以仔细研究一下。

OgreBites::SdkTrayManager类 提供部分函数 如下:

void showLogo(TrayLocation trayLoc, int place = -1)
void hideLogo();

void showFrameStats(TrayLocation trayLoc, int place = -1)
void hideFrameStats();

void showAll();
void hideAll();

我直接在调用了hideAll()函数。

void BaseApplication::createFrameListener(void)
{
……
mTrayMgr = new OgreBites::SdkTrayManager("InterfaceName", mWindow, mMouse, this);
mTrayMgr->showFrameStats(OgreBites::TL_BOTTOMLEFT);
mTrayMgr->showLogo(OgreBites::TL_BOTTOMRIGHT);
mTrayMgr->hideCursor();
mTrayMgr->hideAll();//这行是我添加的。

……
}


完事。LOGO和FPS都不显示了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: