OGRE之资源读取进度条的实现

本文介绍了如何使用Ogre的SampleBrowser项目中的SampleBrowser.h文件实现资源加载界面。重点讲解了通过ResourceGroupManager监听资源加载过程的方法,并展示了进度条界面效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


解析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()函数了。


下面附一张进度条界面实现的效果图:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值