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

📄 anifile.h

📁 3D游戏展示程序
💻 H
字号:
//--------------------------------------------------
//  Desc: Animation File(AMF)
//  Date: 2006.12.11 /update
//  Author: artsylee
//
//  Copyright (C) 2006 artsylee
//
//  扩展: OpenAMF, 不再提供Frames连接(2006_12_15)
//		  多种读取AMF文件方式(2006_12_15)
//		  索引结构可能需要表示解压后的大小(压缩后可能比原文件大)
//		  (不需要)
//
//--------------------------------------------------

#ifndef _ANIFILE_
#define _ANIFILE_

#include <Windows.h>
#include <string>
#include <stdio.h>

class CFrames;

// artsylee's media file header
// 24 bytes total
struct AMFHeader
{
	DWORD	m_Signature;	// "AMFH"
	DWORD	m_Width;		 
	DWORD	m_Height;
	WORD	m_FrameCount;	// Picture count
	WORD	m_Delay;
	WORD	m_Type;
	WORD	m_Version;
	DWORD	m_Reserved;
};

// picture index (16 bytes)
struct AMFIndex
{
	DWORD	m_PictureIndex;
	DWORD	m_PictureSize;
	DWORD	m_PictureWidth;
	DWORD	m_PictureHeight;
};

class ASE_DLL CAniFile
{
public:
	CAniFile();
	~CAniFile();
	
	bool	SaveAMF(const char *szFileName, CFrames *pFrame) const;
	// 文件方式读取
	bool	ReadHeader(const char *szFileName, AMFHeader *head) const;
	bool	ReadIndex(const char *szFileName, const DWORD &index, AMFIndex *amfindex) const;
	bool	ReadData(const char *szFileName, const DWORD &index, void *pData) const;
	// 文件指针方式读取
	bool	ReadHeader(FILE *pFile, AMFHeader *head) const;
	bool	ReadIndex(FILE *pFile, const DWORD &index, AMFIndex *amfindex) const;
	bool	ReadData(FILE *pFile, const DWORD &index, void *pData) const;

	DWORD	GetDelay() const	{ return m_Delay;	}
	void	SetDelay(DWORD d)	{ m_Delay =	d;		} 
private:
	void	CompressData(const void *pSrc, void *pDst, const DWORD &srcSize, DWORD &dstSize) const;
	bool	DeCompressData(const void *pSrc, void *pDst, const DWORD &srcSize, DWORD &dstSize) const;

private:
	DWORD	 m_Delay;
};




#endif // _ANIFILE_

⌨️ 快捷键说明

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