ogre的SampleBrowser项目的代码结构笔记1——SampleBrowser类

SampleBrowser.cpp文件为程序的入口。这里有几个不同操作系统的入口函数,比如main,winmain等。用宏定义控制编译那个。
SampleBrowser_OSX.h文件好像和Mac操作系统有关。Mac目前我不懂,略。
SampleBrowser.h文件主要定义了SampleBrowser类。

SampleBrowser类定义如下:

class SampleBrowser : public SampleContext, public SdkTrayListener

SampleContext类就是定义了一下虚函数,规范了ogre应用程序启动步骤的结构。
SampleBrowser类的功能包括:

1、ogre渲染的启动(比如root,window,camera,viewpoint等)
2、创建、销毁和显示/隐藏dummy场景
3、GUI。在mTrayMgr中,创建、销毁、管理和响应开始页面和配置页面。(按钮、下拉菜单、label等)
4、sample控件的加载、卸载、切换和信息提取。
5、鼠标键盘的监听响应,渲染帧的监听和响应。从public SdkTrayListener继承

1、ogre渲染的启动

通过SampleBrowser类的父类SampleContext类的go函数调用的。

virtual void go(Sample* initialSample = 0)

go函数就是一个方法模板,其中调用了很多虚函数,以形成程序运行的结构框架。他的子类可以根据需要重写父类的各个函数,以修改运行功能。
SampleBrowser类中重写了setup()函数。他的实现的功能是:

    //创建ogre引擎,root,camera,viewpoint,window等。
    //创建、设置OI设备
    //解析资源cfg文件,初始化资源列表,准备加载资源。
    //创建mTrayMgr管理控制
    //创建 Dummy场景
    //加载资源。(加载时候设置了进度条,所以mTrayMgr在哪里监听了资源?)

2、创建、销毁和显示/隐藏Dummy场景

Dummy场景就是一个空场景,不包括前面显示的GUI部分。还包括一个带shader的空白材质。

3、GUI。在mTrayMgr中,创建、销毁、管理和响应开始页面和配置页面。(按钮、下拉菜单、label等)

    //在mTrayMgr中创建开始页面和配置页面。(按钮、下拉菜单、滚动条等)
    //populateSampleMenus();函数里面用mSampleCategories填充mCategoryMenu内容
     virtual void setupWidgets()

    // 添加缩略图(mThumbs)的条目内容。
    // 下拉菜单选择,以及对应选择窗口的变化。
     virtual void itemSelected(SelectMenu* menu)

4、sample控件的加载、卸载、切换和信息提取。

    //获得samples.cfg配置文件或路径等,并解析。
    //遍历加载所有sample的插件,
    //通过SamplePlugin类获取sample信息,通过信息判断sample是否加载错误,将正确加载的sample保存到mLoadedSamples列表中,并保存分类mSampleCategories列表,SamplePlugin类的父类是Ogre::Plugin。
    //删除加载错误的sample。
    //只提取了sample的指针和类别保存了列表,没有提取插件信息填写到开始页面的显示列表中。
    virtual Sample* loadSamples()

5、鼠标键盘的监听响应,渲染帧的监听和响应。从public SdkTrayListener继承

其它各种响应函数,略。

————完————

下一篇,sample控件的加载、卸载等 结构。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值