Ogre监听类回顾
来源:互联网 发布:博客app软件下载 编辑:程序博客网 时间:2024/06/02 02:12
Ogre监听框架构成:
Ogre主要通过继承FrameListener来完成监听系统的输入并变化场景内容的功能,对于非控制性的变化,Ogre也可以通过类ExampleFrameListener来完成
在FrameListener中,主要有以下的方法:
--------------------------------------------------------------------------------------------------
1.
帧渲染之前的事件处理方法,发生在即将要进行渲染的时候,返回值为帧就可以继续渲染,为假说明要终止当前的渲染循环。
2.
发生在所有的渲染目标都已经就绪,但是窗口还没有交换缓存之前,
3.
帧渲染之后的事件处理方法,在一个帧正在被渲染的时候调用,这个时间发生在所有的渲染目标都已经完全更新并且缓存已经交换的时候
--------------------------------------------------------------------------------------------------
Ogre引擎在渲染过程中的每一帧之前调用frameStarted方法,而之后会调用frameEnded方法,通过这种方式,可以再渲染期间对场景物体(包括摄像机)进行移动、缩放等控制,当然也可以完成其他的处理。
而frameStarted和frameEnded都以FrameEvent为参数,在FrameListener中,定义了如下的FrameEvent结构来表示一次帧渲染时事件,在这个结构中定义的两个元素时间可以方便我们对于帧事件的处理:
StructFrameEvent
{
}
“Listener”是一个设计来响应程序的特殊事件,唤醒回调过程的类,为了得到对于帧事件的有序响应,使用者必须要创建一个frameListener 的子类,并覆盖其中的响应方法。使用Root::addFrameListener传递一个此类的实例,这种注册是没有限制的,用户可以为不同的需要注册不同的监听,但是这都需要在一个帧监听循环中发生,否则监听只对于一个渲染目标是有用的。
帧监听的处理模式:
1.
2.
ExampleFrameListener中的主要成员:
ExampleFrameListener(继承自frameListener,例子程序中的主要使用监听基类)中的主要成员函数
1.
更新状态的函数,主要是完成overlay的元素的状态显示更新
2.
ExampleFrameListener(RenderWindow *win,Camera*cam,bool BufferedKeys=false,boolbufferedMouse=false,bool
传入参数很多,主要是给类中的成员注册信息,然后是初始化一些句柄内容
3.
4.
5.
(主要是销毁鼠标键盘和操纵杆,最后不要忘记还要将InputManager销毁)
6.
1
- Ogre监听类回顾
- Ogre日志系统回顾
- Ogre基本信息回顾
- Ogre动画系统回顾
- Ogre基本信息回顾
- Ogre日志系统回顾
- Ogre异常处理回顾
- Ogre动画系统回顾
- 【Ogre编程入门与进阶】第二章 Ogre相关知识回顾
- 菜鸟也学Ogre-帧监听和无缓冲输入
- [OGRE]基础教程来六发:来谈一谈帧的监听
- Ogre摄像机Camera类
- Ogre摄像机Camera类
- Ogre摄像机Camera类
- Ogre Timer 类 解析
- Ogre核心类
- Ogre::Animation相关类
- Ogre
- 寻找春天 九宫格日记-2011.11.29
- C++ STL set和multiset的使用
- Collada DOM 的使用--CreateSimple…
- cocos使用UI控件需要包含的头文件
- Ogre基本信息回顾
- Ogre监听类回顾
- Windows内存管理
- Ogre日志系统回顾
- Ogre异常处理回顾
- Ogre场景结构体系中的重要函数
- Ogre的材质
- hdu 1671-Phone List(字典树)
- Ogre粒子系统 以及 粒子脚本
- UML类图理解【转】