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

📄 ogrepaginglandscapetilemanager.h

📁 使用stl技术,(还没看,是听说的)
💻 H
字号:
/***************************************************************************
	OgrePagingLandScapeTileManager.h  -  description
	-------------------
  begin                : Mon Jun 16 2003
  copyright            : (C) 2003 by Jose A. Milan
  email                : spoke2@supercable.es
***************************************************************************/

/***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU Lesser General Public License as        *
*   published by the Free Software Foundation; either version 2 of the    *
*   License, or (at your option) any later version.                       *
*                                                                         *
***************************************************************************/

#ifndef PAGINGLANDSCAPETILEMANAGER_H
#define PAGINGLANDSCAPETILEMANAGER_H

#include <vector>
#include <OgreSingleton.h>

#include "OgrePagingLandScapeTile.h"
#include "OgrePagingLandScapeQueue.h"

namespace Ogre
{

	class PagingLandScapeTileManager : public Singleton<PagingLandScapeTileManager>
{
public:

	typedef std::vector< PagingLandScapeTile* > PagingLandScapeTileVector;

	PagingLandScapeTileManager( );

	~PagingLandScapeTileManager( );

	void updateCache( void );

	/** Retrieve a free tile.
	*/
	PagingLandScapeTile *getTile( );

	/** Make a tile free.
	*/
	void freeTile( PagingLandScapeTile *tile );

	void Merge( );

	void needMerge( PagingLandScapeTile *tile );
		
	void Split( );

	void needSplit( PagingLandScapeTile *tile );

	/** Override standard Singleton retrieval.
		@remarks
			Why do we do this? Well, it's because the Singleton implementation is in a .h file,
			which means it gets compiled into anybody who includes it. This is needed for the Singleton
			template to work, but we actually only want it compiled into the implementation of the
			class based on the Singleton, not all of them. If we don't change this, we get link errors
			when trying to use the Singleton-based class from an outside dll.
		@par
			This method just delegates to the template version anyway, but the implementation stays in this
			single compilation unit, preventing link errors.
	*/
	static PagingLandScapeTileManager& getSingleton( void );

	int numFree( ) const;

	int numMerge( ) const;

	int numSplit( ) const;

protected:

	PagingLandScapeTileVector mTiles;

	PagingLandScapeQueue<PagingLandScapeTile> mQueue;
	PagingLandScapeQueue<PagingLandScapeTile> mMergeQueue;
	PagingLandScapeQueue<PagingLandScapeTile> mSplitQueue;

	int NumTiles;

	int NumTilesMergeProcess;
	int NumTilesSplitProcess;

};

} //namespace

#endif


⌨️ 快捷键说明

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