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

📄 image.h

📁 《光线引擎演示程序》执行程序+源代码,《光线引擎演示程序》执行程序+源代码
💻 H
字号:
/*==========================================================================;
 *
 *  光线游戏引擎(Light Game Engine)
 *
 *  版权所有 (C) 2005-2007 康 旭。 保留所有权利。
 *  Copyright (C) KangXu.  All Rights Reserved.
 *
 *  文件:   image.h
 *  内容:   图像类
 *
 ****************************************************************************/


/*! \file image.h * 图像函数. * 此文件是图像函数头文件. */
/* 图像显示特效标志 */
#define LFSOURRECT 1
#define LFDESTRECT 2
#define LFROTATE   4
#define LFBLEND    8
#define LFLIGHTENESS 16
#define LFREVERSALX  32
#define LFREVERSALY  64

/* 图像显示特效结构 */
typedef struct _LIMAGEPLUS
{
	DWORD flags;      /* 标志     */
	RECT  sour_rect;  /* 源区域   */
	RECT  dest_rect;  /* 目标区域 */
	float rotate;     /* 旋转角度 */
	float blend;      /* 透明度   */
	float lighteness; /* 亮度     */
} LIMAGEPLUS, *LPLIMAGEPLUS;


/*! \class LightImage * \brief 图像类 * *  本类负责图像文件的读取和显示,支持渲染到图像。
 *  支持 25 种图像文件 .bmp, .cut, .dds, .doom, .gif, .ico, .jpg, .lbm, .mdl, .mng, .pal, .pbm, .pcd, .pcx, .pgm, *  .pic, .png, .ppm, .psd, .psp, .raw, .sgi, .tga, .tif 和 .hdr 的读取,支持 15 种图像文件 .bmp, .dds, .h, .jpg, *  .pal, .pbm, .pcx, .hdr, .pgm,.png, .ppm, .raw, .sgi, .tga 和 .tif 的保存。 *  每个 LightImage 实例都必须通过 LightEngine 类的 NewImage 方法分配。  */

class LightImage
{

public:

	/*! \fn int Load ( const char *filename ) = 0	 *  \brief 将图像文件读入内存	 *	 *  将图像文件读入内存	 *	 *  \param const char *filename 图像文件名	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int Load ( const char *filename ) = 0;

	/*! \fn int Build( int width, int height, unsigned char *rgba ) = 0	 *  \brief 从内存中创建图像	 *	 *  从内存中创建图像	 *	 *  \param int width 图像宽度	 *	 *  \param int height 图像高度	 *	 *  \param unsigned char *rgba 图像颜色数据指针	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int Build( int width, int height, unsigned char *rgba ) = 0;
    
	/*! \fn int Create( int width, int height, int type ) = 0	 *  \brief 创建新图像	 *	 *  创建新图像	 *	 *  \param int width 图像宽度	 *	 *  \param int height 图像高度	 *	 *  \param int type 图像类型	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int Create( int width, int height, int type ) = 0;

	/*! \fn bool IsValid( void ) = 0	 *  \brief 查询图像是否有效	 *	 *  查询图像是否有效	 *	 *  \param 无	 *	 	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual bool IsValid( void ) = 0;

	/*! \fn  int Speed( int speed ) = 0	 *  \brief 设置动画播放速度	 *	 *  设置动画播放速度	 *	 *  \param int speed 动画播放的速度,用每帧持续的时间表示,以千分之一秒为单位。	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int Speed( int speed ) = 0;

	/*! \fn int Draw ( int x, int y ) = 0	 *  \brief 在指定位置显示图像	 *	 *  在指定位置显示图像	 *	 *  \param int x 图像左上角在屏幕上 x 坐标	 *	 *  \param int y 图像左上角在屏幕上 y 坐标	 *	 	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int Draw ( int x, int y ) = 0;

	/*! \fn int DrawPlus ( int x, int y, LPLIMAGEPLUS plus ) = 0	 *  \brief 在指定位置显示图像特效	 *	 *  在指定位置显示图像特效	 *	 *  \param int x 图像左上角在屏幕上 x 坐标	 *	 *  \param int y 图像左上角在屏幕上 y 坐标	 *	 	 *  \param LPLIMAGEPLUS plus 图像显示特效结构指针,具体结构见头文件的定义。	 *	 	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int DrawPlus ( int x, int y, LPLIMAGEPLUS plus ) = 0;

	/*! \fn  int ActiveFrame( int frame ) = 0	 *  \brief 将图像的指定帧激活为当前图像	 *	 *  将图像的指定帧激活为当前图像s。	 *	 *  \param int frame 要激活的图像帧,如果该帧不存在,则该帧被指定为写入、渲染和保存的目标帧。	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int ActiveFrame( int frame ) = 0;

	/*! \fn int Render( bool Screen ) = 0	 *  \brief 渲染到图像	 *	 *  渲染到图像	 *	 *  \param bool Screen 是否渲染到图像	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int Render( bool Screen ) = 0;

	/*! \fn int GetSize ( LPSIZE lpPoint ) = 0	 *  \brief 查询图像的宽度和高度	 *	 *  查询图像的宽度和高度	 *	 *  \param LPSIZE lpPoint 返回图像大小的指针	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int GetSize ( LPSIZE lpPoint ) = 0;

	/*! \fn  int Save( const char *filename, int format, int color ) = 0	 *  \brief 将图像颜色数据保存到指定的图像文件中。	 *	 *  将图像颜色数据保存到指定的图像文件中。如果是动画图像,则保存活动帧。	 *  支持 15 种图像文件 .bmp, .dds, .h, .jpg, .pal, .pbm, .pcx, .hdr, .pgm,.png, .ppm, .raw, .sgi, .tga 和 .tif 的保存	 *	 *  \param const char *filename  要保存颜色数据的图像文件名	 *	 	 *  \param int format  图像文件的格式,如果是 LIGHT_AUTO 则根据文件扩展名确定。	 *	 	 *  \param int color  图像文件的颜色模式	 *	 	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int Save( const char *filename, int format, int color ) = 0;

	/*! \fn int Unload ( void ) = 0	 *  \brief 从内存中释放图像	 *	 *  从内存中释放图像	 *	 *  \param 无	 *	 *  \return 如果函数调用成功,返回非零值;如果函数调用失败,返回零。	 *	 *  \see 
	 */
	virtual int Unload ( void ) = 0;

};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -