29 #ifndef __Ogre_TerrainLodManager_H__
30 #define __Ogre_TerrainLodManager_H__
64 , currentPreparedLod(preparedLod)
65 , currentLoadedLod(loadedLod)
66 , requestedLod(target)
124 return mLodInfoTable[lodLevel];
#define _OgreTerrainExport
Superclass for all objects that wish to use custom memory allocators when their new / delete operator...
Utility class providing helper methods for reading / writing structured data held in a DataStream.
Terrain LOD data manager.
bool mIncreaseLodLevelInProgress
Highest LOD level loaded in GPU.
LodInfo & getLodInfo(uint lodLevel)
virtual bool canHandleResponse(const WorkQueue::Response *res, const WorkQueue *srcQ)
Return whether this handler can process a given response.
virtual WorkQueue::Response * handleRequest(const WorkQueue::Request *req, const WorkQueue *srcQ)
The handler method every subclass must implement.
static void separateData(float *data, uint16 size, uint16 numLodLevels, LodsData &lods)
Separate geometry data by LOD level.
virtual void handleResponse(const WorkQueue::Response *res, const WorkQueue *srcQ)
The handler method every subclass must implement.
void fillBufferAtLod(uint lodLevel, const float *data, uint dataSize)
Copy geometry data from buffer to mHeightData/mDeltaData.
static const uint16 WORKQUEUE_LOAD_LOD_DATA_REQUEST
static void saveLodData(StreamSerialiser &stream, Terrain *terrain)
Save each LOD level separately compressed so seek is possible.
int mHighestLodLoaded
Highest LOD level stored in memory i.e. mHeightData/mDeltaData.
DataStreamPtr mDataStream
int mHighestLodPrepared
Which LOD level is demanded.
static const uint16 TERRAINLODDATA_CHUNK_VERSION
vector< LodData >::type LodsData
static const uint32 TERRAINLODDATA_CHUNK_ID
void updateToLodLevel(int lodLevel, bool synchronous=false)
TerrainLodManager(Terrain *t, const String &filename="")
bool mLastRequestSynchronous
Is increaseLodLevel() running?
int getHighestLodPrepared()
TerrainLodManager(Terrain *t, DataStreamPtr &stream)
virtual ~TerrainLodManager()
void readLodData(uint16 lowerLodBound, uint16 higherLodBound)
Read separated geometry data from file into allocated memory.
vector< float >::type LodData
void waitForDerivedProcesses()
virtual bool canHandleRequest(const WorkQueue::Request *req, const WorkQueue *srcQ)
Return whether this handler can process a given request.
int getHighestLodLoaded()
The main containing class for a chunk of terrain.
Interface definition for a handler of requests.
General purpose request structure.
Interface definition for a handler of responses.
Interface to a general purpose request / response style background work queue.
LoadLodRequest(TerrainLodManager *r, uint16 preparedLod, uint16 loadedLod, uint16 target)
uint16 currentPreparedLod
_OgreTerrainExport friend std::ostream & operator<<(std::ostream &o, const LoadLodRequest &r)
TerrainLodManager * requestee
General purpose response structure.