📄 engine.h
字号:
/*==========================================================================;
*
* 光线游戏引擎(Light Game Engine)
*
* 版权所有 (C) 2005-2007 康 旭。 保留所有权利。
* Copyright (C) KangXu. All Rights Reserved.
*
* 文件: engine.h
* 内容: 引擎类
*
****************************************************************************/
/*! \file engine.h * 引擎函数. * 此文件是引擎函数头文件. */
/* 属性掩码 */
#define LIGHT_DEPTH_BUFFER_BIT 0x00000100
#define LIGHT_COLOR_BUFFER_BIT 0x00004000
/*! \class LightEngine * \brief 引擎类 * * 本类负责大部分系统功能的调用和其它所有类的实例分配,是引擎最重要的一个类。 * 此类的实例指针只能通过调用引擎初始化函数 InitialLightEngine 得到。举个例子:
* \n LightEngine * engine;
* \n engine = InitialLightEngine();
*/
class LightEngine
{
public:
/*! \fn void UpdatePhysics( void ) * \brief 更新物理状态 * * 用于物理状态的更新 * * \param 无 * * \return 无 * * \see UpdateLight
*/
virtual void UpdatePhysics( void ) = 0;
/*! \fn void UpdateLight() * \brief 更新灯光设置 * * 用于灯光的更新 * * \param 无 * * \return 无 * * \see UpdatePhysics
*/
virtual void UpdateLight() = 0;
/*! \fn void ClearColor( int red, int green, int blue, int alpha ) * \brief 设置清除后的颜色值 * * 用于设置清除后的颜色值 * * \param int red 颜色的红色成分 * \param int green 颜色的绿色成分 * \param int blue 颜色的蓝色成分 * \param int alpha 颜色的 Alptha 成分 * * \return 无 * * \see ClearDepth
*/
virtual void ClearColor( int red, int green, int blue, int alpha ) = 0;
/*! \fn void ClearDepth( float depth ) * \brief 设置清除后的深度值 * * 用于设置清除后的深度值 * * \param float depth 清除后的深度值 * * \return 无 * * \see ClearColor
*/
virtual void ClearDepth( float depth ) = 0;
/*! \fn void Clear( int mask ) * \brief 清除指定缓存 * * 用于清除指定缓存 * * \param int mask 要清除的缓存 * * \return 无 * * \see ClearColor, ClearDepth
*/
virtual void Clear( int mask ) = 0;
/*! \fn bool SwapBuffers( void ) * \brief 更新游戏窗口显示内容 * * 更新游戏窗口显示内容 * * \param 无 * * \return 如果成功返回 0, 否则返回非 0 值 * * \see ClearColor, ClearDepth
*/
virtual bool SwapBuffers( void ) = 0;
/*! \fn int GetFramePerSecond( void ) * \brief 查询每秒钟显示的帧数 * * 查询每秒钟显示的帧数 * * \param 无 * * \return 返回每秒钟显示的帧数 * * \see SwapBuffers
*/
virtual int GetFramePerSecond( void ) = 0;
/*! \fn int SetDisplayMode( int width, int height, int color, int refurbish, int reserve ) * \brief 设置全屏显示模式 * * 设置全屏显示模式 * * \param int width 屏幕宽度 * * \param int height 屏幕高度 * * \param int color 屏幕颜色深度位数 * * \param int refurbish 屏幕刷新率,当为 0 时使用缺省刷新率。 * * \param int reserve 保留参数,必须设置为 0 ,供引擎以后升级时使用。 * * \return 如果成功返回 0, 否则返回非 0 值 * * \see SetWindowMode, SetAttachWindowMode
*/
virtual int SetDisplayMode( int width, int height, int color, int refurbish, int reserve ) = 0;
/*! \fn int SetWindowMode( int x, int y, int width, int height, int api) * \brief 设置窗口显示模式 * * 设置窗口显示模式 * * \param int x 窗口左上角 x 坐标 * * \param int y 窗口左上角 y 坐标 * * \param int width 窗口宽度 * * \param int height 窗口高度 * * \param int reserve 保留参数,必须设置为 0 ,供引擎以后升级时使用。 * * \return 如果成功返回 0, 否则返回非 0 值 * * \see SetDisplayMode, SetAttachWindowMode
*/
virtual int SetWindowMode( int x, int y, int width, int height, int reserve ) = 0;
/*! \fn int SetAttachWindowMode( HWND hwnd, int reserve ) * \brief 设置绑定窗口显示模式 * * 设置绑定窗口显示模式 * * \param HWND hwnd 要绑定的窗口句柄 * * \param int reserve 保留参数,必须设置为 0 ,供引擎以后升级时使用。 * * \return 如果成功返回 0, 否则返回非 0 值 * * \see SetDisplayMode, SetWindowMode
*/
virtual int SetAttachWindowMode( HWND hwnd, int reserve ) = 0;
/*! \fn void Ortho2D( bool Ortho2D ) * \brief 设置当前作图模式(2D/3D) * * 设置当前作图模式(2D/3D) * * \param bool Ortho2D 作图模式,TRUE = 2D,FALSE = 3D * * \return 无 */
virtual void Ortho2D( bool Ortho2D ) = 0;
/*! \fn int UpdateWindowState( void ) * \brief 更新窗口状态 * * 更新窗口状态 * * \param 无 * * \return 如果成功返回 0, 否则返回非 0 值 * * \see
*/
virtual int UpdateWindowState( void ) = 0;
/*! \fn int SetColorKey( int red, int green, int blue ) * \brief 设置关键色(透明色) * * 设置关键色(透明色) * * \param int red 红色分量 * * \param int green 绿色分量 * * \param int blue 蓝色分量 * * \return 如果成功返回 0, 否则返回非 0 值 * * \see
*/
virtual int SetColorKey( int red, int green, int blue ) = 0;
/*! \fn DWORD GetOutVolume( int device ) = 0 * \brief 查询音频设备的音量 * * 查询音频设备的音量。 * * \param int device 要查询的音频设备,通常情况下系统只有一个音频设备,则此值设为 0 * * \return 返回音频设备的音量值,低字(WORD)是左声道的音量,高字(WORD)是右声道 * 的音量,音量范围从 0x0000 到 0xFFFF,0x0000 = 静音,0xFFFF = 最大音量。 * * \see
*/
virtual DWORD GetOutVolume( int device ) = 0;
/*! \fn int SetOutVolume( int device, int left, int right ) = 0 * \brief 设置音频设备的音量 * * 设置音频设备的音量。 * * \param int device 要设置的音频设备,通常情况下系统只有一个音频设备,则此值设为 0 * * \param int left 左声道的音量,音量范围从 0x0000 到 0xFFFF,0x0000 = 静音,0xFFFF = 最大音量。 * * \param int blue 左声道的音量,音量范围同上。 * * \return 如果成功返回 0, 否则返回非 0 值 * * \see
*/
virtual int SetOutVolume( int device, int left, int right ) = 0;
/*! \fn bool DispatchMessage( void ) * \brief 配送消息 * * 配送消息 * * \param 无 * * \return 如果成功返回 0, 否则返回非 0 值 * * \see
*/
virtual bool DispatchMessage( void ) = 0;
/*! \fn bool WindowMessageProc( WNDPROC lpfnWndProc ) * \brief 设置窗口消息监听函数 * * 设置窗口消息监听函数 * * \param WNDPROC lpfnWndProc 窗口消息监听函数 * * \return 如果成功返回 0, 否则返回非 0 值 * * \see
*/
virtual bool WindowMessageProc( WNDPROC lpfnWndProc ) = 0;
/*! \fn unsigned long GetTickCount( void ) * \brief 查询系统启动以来经过的千分之一秒数 * * 查询系统启动以来经过的千分之一秒数 * * \param 无 * * \return 返回系统启动以来经过的千分之一秒数 * * \see
*/
virtual unsigned long GetTickCount( void ) = 0;
/*! \fn int LightAmbient( float red, float green, float blue, float alpha ) * \brief 设置全局环境光的颜色值 * * 设置全局环境光的颜色值 * * \param float red 红色分量 * * \param float green 绿色分量 * * \param float blue 蓝色分量 * * \param float alpha Alpha 分量 * * \return 如果成功返回 0, 否则返回非 0 值 * * \see
*/
virtual int LightAmbient( float red, float green, float blue, float alpha ) = 0;
/* 状态函数 */
/*! \fn HWND GetWindowHandle( void ) * \brief 查询窗口句柄 * * 查询窗口句柄 * * \param 无 * * \return 返回窗口句柄 * * \see
*/
virtual HWND GetWindowHandle( void ) = 0;
#define LIGHT_WINDOW_CAPTION 1
#define LIGHT_WORK_DIRECTORY 2
#define LIGHT_VIDEO_DIRECTORY 3
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -