⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 engine.h

📁 《光线引擎演示程序》执行程序+源代码,《光线引擎演示程序》执行程序+源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
/*==========================================================================;
 *
 *  光线游戏引擎(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 + -