首页 > 代码库 > OGRE之资源读取进度条的实现
OGRE之资源读取进度条的实现
解析SampleBrowser项目的SampleBrowser.h文件,我们可以发现其中有这么一个函数:
/*----------------------------------------------------------------------------- | Initialises only the browser's resources and those most commonly used | by samples. This way, additional special content can be initialised by | the samples that use them, so startup time is unaffected. -----------------------------------------------------------------------------*/ virtual void loadResources() { #if OGRE_PLATFORM != OGRE_PLATFORM_NACL mTrayMgr->showLoadingBar(1, 0); #endif Ogre::ResourceGroupManager::getSingleton().initialiseResourceGroup("Popular"); #if OGRE_PLATFORM != OGRE_PLATFORM_NACL mTrayMgr->hideLoadingBar(); #endif }
其主要是基于封装了Overlay和Material的SdkTrayManager类对象mTrayMgr的调用,主要负责界面的显示和更新。在这里首先显示了进度条界面,然后加载"Popular"资源组,最后再隐藏进度条界面。
那么是如何做到资源读取的同步更新的呢?
我们查看showLoadingBar()函数,可以看到这样一句核心代码:
Ogre::ResourceGroupManager::getSingleton().addResourceGroupListener(this);很容易可以看出,它是通过ResourceGroupManager来监听,从而实现同步更新的功能。
看到这里,我们也可以利用Ogre自带的mTrayMgr来自己动手实现一个资源读取的界面了,
需要注意的是,要实现资源加载的界面,我们需要预先初始化SdkTrays.zip资源文件(默认
位于resources.cfg中Essential资源组),然后便可以成功调用showLodingBar()函数了。
下面附一张进度条界面实现的效果图:
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。