OGRE
14.3
Object-Oriented Graphics Rendering Engine
|
The PageManager is the entry point through which you load all PagedWorld instances, and the place where PageStrategy instances and factory classes are registered to customise the paging behaviour. More...
#include <OgrePageManager.h>
Public Types | |
typedef std::vector< Camera * > | CameraList |
typedef std::map< String, PageContentCollectionFactory * > | ContentCollectionFactoryMap |
typedef std::map< String, PageContentFactory * > | ContentFactoryMap |
typedef std::map< String, PageStrategy * > | StrategyMap |
typedef std::map< String, PagedWorld * > | WorldMap |
typedef std::map< String, PagedWorldSectionFactory * > | WorldSectionFactoryMap |
Public Member Functions | |
PageManager () | |
virtual | ~PageManager () |
virtual bool | _loadProceduralPage (Page *page, PagedWorldSection *section) |
Give a provider the opportunity to prepare page content procedurally. More... | |
virtual bool | _prepareProceduralPage (Page *page, PagedWorldSection *section) |
Give a provider the opportunity to prepare page content procedurally. More... | |
StreamSerialiser * | _readPageStream (PageID pageID, PagedWorldSection *section) |
Get a serialiser set up to read Page data for the given PageID. More... | |
StreamSerialiser * | _readWorldStream (const String &filename) |
Get a serialiser set up to read PagedWorld data for the given world name. More... | |
virtual bool | _unloadProceduralPage (Page *page, PagedWorldSection *section) |
Give a manager the opportunity to unload page content procedurally. More... | |
virtual bool | _unprepareProceduralPage (Page *page, PagedWorldSection *section) |
Give a manager the opportunity to unprepare page content procedurally. More... | |
StreamSerialiser * | _writePageStream (PageID pageID, PagedWorldSection *section) |
Get a serialiser set up to write Page data for the given PageID. More... | |
StreamSerialiser * | _writeWorldStream (const String &filename) |
Get a serialiser set up to write PagedWorld data. More... | |
void | addCamera (Camera *c) |
Tells the paging system to start tracking a given camera. More... | |
void | addContentCollectionFactory (PageContentCollectionFactory *f) |
Add a new PageContentCollectionFactory implementation. More... | |
void | addContentFactory (PageContentFactory *f) |
Add a new PageContentFactory implementation. More... | |
void | addStrategy (PageStrategy *strategy) |
Add a new PageStrategy implementation. More... | |
void | addWorldSectionFactory (PagedWorldSectionFactory *f) |
Add a new PagedWorldSectionFactory implementation. More... | |
PageContent * | createContent (const String &typeName) |
Create a new instance of PageContent using the registered factories. More... | |
PageContentCollection * | createContentCollection (const String &typeName) |
Create a new instance of PageContentCollection using the registered factories. More... | |
PagedWorld * | createWorld (const String &name=BLANKSTRING) |
Create a new PagedWorld instance. More... | |
PagedWorldSection * | createWorldSection (const String &typeName, const String &name, PagedWorld *parent, SceneManager *sm) |
Create a new instance of PagedWorldSection using the registered factories. More... | |
void | destroyContent (PageContent *c) |
Destroy an instance of PageContent. More... | |
void | destroyContentCollection (PageContentCollection *coll) |
Destroy an instance of PageContentCollection. More... | |
void | destroyWorld (const String &name) |
Destroy a world. More... | |
void | destroyWorld (PagedWorld *world) |
Destroy a world. More... | |
void | destroyWorldSection (PagedWorldSection *s) |
Destroy an instance of PagedWorldSection. More... | |
const CameraList & | getCameraList () const |
Returns a list of cameras being tracked. More... | |
const ContentCollectionFactoryMap & | getContentCollectionFactories () const |
Get a reference to the registered strategies. More... | |
PageContentCollectionFactory * | getContentCollectionFactory (const String &name) |
Get a PageContentCollectionFactory. More... | |
const ContentFactoryMap & | getContentFactories () const |
Get a reference to the registered strategies. More... | |
PageContentFactory * | getContentFactory (const String &name) |
Get a PageContentFactory. More... | |
uint8 | getDebugDisplayLevel () const |
Get the debug display level. More... | |
PageProvider * | getPageProvider () const |
Get the PageProvider which can provide streams for any Page. More... | |
const String & | getPageResourceGroup () const |
Get the resource group that will be used to read/write files when the default load routines are used. More... | |
bool | getPagingOperationsEnabled () const |
Get whether paging operations are currently allowed to happen. More... | |
const StrategyMap & | getStrategies () const |
Get a reference to the registered strategies. More... | |
PageStrategy * | getStrategy (const String &name) |
Get a PageStrategy. More... | |
PagedWorld * | getWorld (const String &name) |
Get a named world. More... | |
const WorldMap & | getWorlds () const |
Get a reference to the worlds that are currently loaded. More... | |
const WorldSectionFactoryMap & | getWorldSectionFactories () const |
Get a reference to the registered strategies. More... | |
PagedWorldSectionFactory * | getWorldSectionFactory (const String &name) |
Get a PagedWorldSectionFactory. More... | |
bool | hasCamera (Camera *c) const |
Returns whether or not a given camera is being watched by the paging system. More... | |
PagedWorld * | loadWorld (const DataStreamPtr &stream, const String &name=BLANKSTRING) |
Load a new PagedWorld from a stream. More... | |
PagedWorld * | loadWorld (const String &filename, const String &name=BLANKSTRING) |
Load a new PagedWorld from a file. More... | |
void | removeCamera (Camera *c) |
Tells the paging system to stop tracking a given camera. More... | |
void | removeContentCollectionFactory (PageContentCollectionFactory *f) |
Remove a PageContentCollectionFactory implementation. More... | |
void | removeContentFactory (PageContentFactory *f) |
Remove a PageContentFactory implementation. More... | |
void | removeStrategy (PageStrategy *strategy) |
Remove a PageStrategy implementation. More... | |
void | removeWorldSectionFactory (PagedWorldSectionFactory *f) |
Remove a PagedWorldSectionFactory implementation. More... | |
void | saveWorld (PagedWorld *world, const DataStreamPtr &stream) |
Save a PagedWorld instance to a file. More... | |
void | saveWorld (PagedWorld *world, const String &filename) |
Save a PagedWorld instance to a file. More... | |
void | setDebugDisplayLevel (uint8 lvl) |
Set the debug display level. More... | |
void | setPageProvider (PageProvider *provider) |
Set the PageProvider which can provide streams for any Page. More... | |
void | setPageResourceGroup (const String &g) |
Set the resource group that will be used to read/write files when the default load routines are used. More... | |
void | setPagingOperationsEnabled (bool enabled) |
Pause or unpause all paging operations. More... | |
The PageManager is the entry point through which you load all PagedWorld instances, and the place where PageStrategy instances and factory classes are registered to customise the paging behaviour.
To get started, the minimum you need is a PagedWorld with at least one PagedWorldSection within it, and at least one Camera being tracked (see addCamera).
typedef std::map<String, PagedWorld*> Ogre::PageManager::WorldMap |
typedef std::map<String, PageStrategy*> Ogre::PageManager::StrategyMap |
typedef std::map<String, PageContentCollectionFactory*> Ogre::PageManager::ContentCollectionFactoryMap |
typedef std::map<String, PageContentFactory*> Ogre::PageManager::ContentFactoryMap |
typedef std::map<String, PagedWorldSectionFactory*> Ogre::PageManager::WorldSectionFactoryMap |
typedef std::vector<Camera*> Ogre::PageManager::CameraList |
Ogre::PageManager::PageManager | ( | ) |
|
virtual |
PagedWorld* Ogre::PageManager::createWorld | ( | const String & | name = BLANKSTRING | ) |
Create a new PagedWorld instance.
name | Optionally give a name to the world (if no name is given, one will be generated). |
void Ogre::PageManager::destroyWorld | ( | const String & | name | ) |
Destroy a world.
void Ogre::PageManager::destroyWorld | ( | PagedWorld * | world | ) |
Destroy a world.
PagedWorld* Ogre::PageManager::loadWorld | ( | const String & | filename, |
const String & | name = BLANKSTRING |
||
) |
Load a new PagedWorld from a file.
filename | The name of the file to load (standard is .world) |
name | Optionally give a name to the world (if no name is given, one will be generated). |
PagedWorld* Ogre::PageManager::loadWorld | ( | const DataStreamPtr & | stream, |
const String & | name = BLANKSTRING |
||
) |
Load a new PagedWorld from a stream.
stream | A stream from which to load the world data |
name | Optionally give a name to the world (if no name is given, one will be generated). |
void Ogre::PageManager::saveWorld | ( | PagedWorld * | world, |
const String & | filename | ||
) |
Save a PagedWorld instance to a file.
world | The world to be saved |
filename | The filename to save the data to |
void Ogre::PageManager::saveWorld | ( | PagedWorld * | world, |
const DataStreamPtr & | stream | ||
) |
Save a PagedWorld instance to a file.
world | The world to be saved |
stream | The stream to save the data to |
PagedWorld* Ogre::PageManager::getWorld | ( | const String & | name | ) |
Get a named world.
name | The name of the world (not a filename, the identifying name) |
|
inline |
Get a reference to the worlds that are currently loaded.
void Ogre::PageManager::addStrategy | ( | PageStrategy * | strategy | ) |
Add a new PageStrategy implementation.
The caller remains resonsible for destruction of this instance.
void Ogre::PageManager::removeStrategy | ( | PageStrategy * | strategy | ) |
Remove a PageStrategy implementation.
PageStrategy* Ogre::PageManager::getStrategy | ( | const String & | name | ) |
Get a PageStrategy.
name | The name of the strategy to retrieve |
const StrategyMap& Ogre::PageManager::getStrategies | ( | ) | const |
Get a reference to the registered strategies.
void Ogre::PageManager::addContentCollectionFactory | ( | PageContentCollectionFactory * | f | ) |
Add a new PageContentCollectionFactory implementation.
The caller remains resonsible for destruction of this instance.
void Ogre::PageManager::removeContentCollectionFactory | ( | PageContentCollectionFactory * | f | ) |
Remove a PageContentCollectionFactory implementation.
PageContentCollectionFactory* Ogre::PageManager::getContentCollectionFactory | ( | const String & | name | ) |
Get a PageContentCollectionFactory.
name | The name of the factory to retrieve |
PageContentCollection* Ogre::PageManager::createContentCollection | ( | const String & | typeName | ) |
Create a new instance of PageContentCollection using the registered factories.
typeName | The name of the type of collection to create |
void Ogre::PageManager::destroyContentCollection | ( | PageContentCollection * | coll | ) |
Destroy an instance of PageContentCollection.
const ContentCollectionFactoryMap& Ogre::PageManager::getContentCollectionFactories | ( | ) | const |
Get a reference to the registered strategies.
void Ogre::PageManager::addContentFactory | ( | PageContentFactory * | f | ) |
Add a new PageContentFactory implementation.
The caller remains resonsible for destruction of this instance.
void Ogre::PageManager::removeContentFactory | ( | PageContentFactory * | f | ) |
Remove a PageContentFactory implementation.
PageContentFactory* Ogre::PageManager::getContentFactory | ( | const String & | name | ) |
Get a PageContentFactory.
name | The name of the factory to retrieve |
const ContentFactoryMap& Ogre::PageManager::getContentFactories | ( | ) | const |
Get a reference to the registered strategies.
PageContent* Ogre::PageManager::createContent | ( | const String & | typeName | ) |
Create a new instance of PageContent using the registered factories.
typeName | The name of the type of content to create |
void Ogre::PageManager::destroyContent | ( | PageContent * | c | ) |
Destroy an instance of PageContent.
void Ogre::PageManager::addWorldSectionFactory | ( | PagedWorldSectionFactory * | f | ) |
Add a new PagedWorldSectionFactory implementation.
The caller remains resonsible for destruction of this instance.
void Ogre::PageManager::removeWorldSectionFactory | ( | PagedWorldSectionFactory * | f | ) |
Remove a PagedWorldSectionFactory implementation.
PagedWorldSectionFactory* Ogre::PageManager::getWorldSectionFactory | ( | const String & | name | ) |
Get a PagedWorldSectionFactory.
name | The name of the factory to retrieve |
PagedWorldSection* Ogre::PageManager::createWorldSection | ( | const String & | typeName, |
const String & | name, | ||
PagedWorld * | parent, | ||
SceneManager * | sm | ||
) |
Create a new instance of PagedWorldSection using the registered factories.
typeName | The name of the type of collection to create |
name | The instance name |
parent | The parent world |
sm | The SceneManager to use (can be null if this is to be loaded) |
void Ogre::PageManager::destroyWorldSection | ( | PagedWorldSection * | s | ) |
Destroy an instance of PagedWorldSection.
const WorldSectionFactoryMap& Ogre::PageManager::getWorldSectionFactories | ( | ) | const |
Get a reference to the registered strategies.
|
inline |
Set the PageProvider which can provide streams for any Page.
This is the top-level way that you can direct how Page data is loaded. When data for a Page is requested for a PagedWorldSection, the following sequence of classes will be checked to see if they have a provider willing to supply the stream: PagedWorldSection, PagedWorld, PageManager. If none of these do, then the default behaviour is to look for a file called worldname_sectionname_pageID.page.
|
inline |
Get the PageProvider which can provide streams for any Page.
|
virtual |
Give a provider the opportunity to prepare page content procedurally.
You should not call this method directly. This call may well happen in a separate thread so it should not access GPU resources, use _loadProceduralPage for that
|
virtual |
Give a provider the opportunity to prepare page content procedurally.
You should not call this method directly. This call will happen in the main render thread so it can access GPU resources. Use _prepareProceduralPage for background preparation.
|
virtual |
Give a manager the opportunity to unload page content procedurally.
You should not call this method directly. This call will happen in the main render thread so it can access GPU resources. Use _unprepareProceduralPage for background preparation.
|
virtual |
Give a manager the opportunity to unprepare page content procedurally.
You should not call this method directly. This call may well happen in a separate thread so it should not access GPU resources, use _unloadProceduralPage for that
StreamSerialiser* Ogre::PageManager::_readPageStream | ( | PageID | pageID, |
PagedWorldSection * | section | ||
) |
Get a serialiser set up to read Page data for the given PageID.
pageID | The ID of the page being requested |
section | The parent section to which this page will belong |
The StreamSerialiser returned is the responsibility of the caller to delete.
StreamSerialiser* Ogre::PageManager::_writePageStream | ( | PageID | pageID, |
PagedWorldSection * | section | ||
) |
Get a serialiser set up to write Page data for the given PageID.
pageID | The ID of the page being requested |
section | The parent section to which this page will belong |
The StreamSerialiser returned is the responsibility of the caller to delete.
StreamSerialiser* Ogre::PageManager::_readWorldStream | ( | const String & | filename | ) |
Get a serialiser set up to read PagedWorld data for the given world name.
The StreamSerialiser returned is the responsibility of the caller to delete.
StreamSerialiser* Ogre::PageManager::_writeWorldStream | ( | const String & | filename | ) |
Get a serialiser set up to write PagedWorld data.
The StreamSerialiser returned is the responsibility of the caller to delete.
|
inline |
Get the resource group that will be used to read/write files when the default load routines are used.
|
inline |
Set the resource group that will be used to read/write files when the default load routines are used.
void Ogre::PageManager::addCamera | ( | Camera * | c | ) |
Tells the paging system to start tracking a given camera.
In order for the paging system to function it needs to know which Cameras to track. You may not want to have all your cameras affect the paging system, so just add the cameras you want it to keep track of here.
void Ogre::PageManager::removeCamera | ( | Camera * | c | ) |
Tells the paging system to stop tracking a given camera.
bool Ogre::PageManager::hasCamera | ( | Camera * | c | ) | const |
Returns whether or not a given camera is being watched by the paging system.
const CameraList& Ogre::PageManager::getCameraList | ( | ) | const |
Returns a list of cameras being tracked.
|
inline |
Set the debug display level.
This setting controls how much debug information is displayed in the scene. The exact interpretation of this value depends on the PageStrategy you're using, and whether the PageContent decides to also display debug information. Generally speaking, 0 means no debug display, 1 means simple debug display (usually the PageStrategy) and anything more than that is up to the classes involved.
|
inline |
Get the debug display level.
|
inline |
Pause or unpause all paging operations.
Using this method you can stop pages being loaded or unloaded for a period of time, 'freezing' the current page state as it is.
enabled | True to proceed with normal paging operations, false to pause. |
|
inline |
Get whether paging operations are currently allowed to happen.