📄 ogrepaginglandscapetilemanager.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 + -