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

📄 framemanager.h

📁 一个自己写的游戏引擎,用DirectX 写成
💻 H
字号:
//--------------------------------------------------
//  Desc: Frame Manager
//  Date: 2006.12.7 /update
//  Author: artsylee
//
//  Copyright (C) 2006 artsylee
//
//--------------------------------------------------

#ifndef _FRAMEMANAGER_
#define _FRAMEMANAGER_

#include <map>
#include "Frames.h"

typedef DWORD FrameHandle;

#define	BASEHANDLE	5000
#define UPDATETIME	3000
#define MAXEXIST	5000
#define INVALID_HANDLE 0x00

//---------------------------------------------------
// 指定的句柄范围是1~5000,非指定的为5000+
// 指定的为非共享纹理,非指定的为共享纹理
// 会有同文件名的多个纹理,释放只提供句柄操作不提供文件名操作
// QueryHandle为共享纹理,返回值5000+
//---------------------------------------------------
class ASE_DLL CFrameManager
{
public:
	CFrameManager();
	~CFrameManager();

	FrameHandle	LoadFrame(const char *szFilename, MemoryMode mode = MM_AUTO);
	FrameHandle	LoadFrameDesc(const char *szFilename);
	FrameHandle	InsertFrame(CFrames *pFrame, MemoryMode mode = MM_AUTO);

	bool	LoadFrame(FrameHandle hFrm, const char *szFilename, MemoryMode mode = MM_AUTO);
	bool	LoadFrameDesc(FrameHandle hFrm, const char *szFilename);
	bool	BatchLoad(const char *szIniFile);	

	void	ReleaseFrame(FrameHandle frmHandle);
	void	DestroyFrame(FrameHandle frmHandle);
	void	DestroyAll(void);

	// 外部使用接口
	CTexture*	GetTexture(FrameHandle frmHandle, DWORD index);
	CFrames*	GetFrame(FrameHandle frmHandle);
	void	Update(void);
	// D3DPOOL_DEFAULT的资源在丢失设备时要重新加载

private:
	FrameHandle CreateHandle(void);
	FrameHandle QueryHandle(const char *szFilename);

private:
	std::map<FrameHandle, CFrames*>	m_FrameMap;
	DWORD			m_CurHandle;
	DWORD			m_UpdateTime;
};

#endif // _FRAMEMANAGER_

⌨️ 快捷键说明

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