Sirikata
|
Interface for service which plans when and what order to download meshes and their associated resources like textures and then passes them off to Ogre for loading. More...
#include <ResourceDownloadPlanner.hpp>
Classes | |
struct | Stats |
Public Member Functions | |
ResourceDownloadPlanner (Context *c, OgreRenderer *renderer) | |
~ResourceDownloadPlanner () | |
virtual void | addNewObject (Graphics::Entity *ent, const Transfer::URI &mesh) |
virtual void | addNewObject (ProxyObjectPtr p, Graphics::Entity *mesh) |
virtual void | updateObject (ProxyObjectPtr p) |
virtual void | removeObject (ProxyObjectPtr p) |
virtual void | removeObject (Graphics::Entity *mesh) |
virtual void | setCamera (Graphics::Camera *entity) |
virtual void | poll () |
Override this method to specify the work to be done when polling. | |
virtual void | start () |
Start polling this service on this strand at the given maximum rate. | |
virtual void | stop () |
Stop scheduling this service. | |
virtual int32 | maxObjects () |
virtual void | setMaxObjects (int32 new_max) |
OgreRenderer * | getScene () const |
virtual Stats | stats ()=0 |
Protected Types | |
typedef boost::recursive_mutex | RMutex |
Protected Attributes | |
Context * | mContext |
OgreRenderer * | mScene |
Graphics::Camera * | camera |
int32 | mMaxLoaded |
RMutex | mDlPlannerMutex |
Interface for service which plans when and what order to download meshes and their associated resources like textures and then passes them off to Ogre for loading.
It is given proxies directly and it does all the work of deduplicating requests for identical meshes, planning the download of complete assets (including parsing and downloading sub-resources), and passing them off for loading.
typedef boost::recursive_mutex Sirikata::Graphics::ResourceDownloadPlanner::RMutex [protected] |
Sirikata::Graphics::ResourceDownloadPlanner::ResourceDownloadPlanner | ( | Context * | c, |
OgreRenderer * | renderer | ||
) |
References Sirikata::Context::add(), and camera.
Sirikata::Graphics::ResourceDownloadPlanner::~ResourceDownloadPlanner | ( | ) |
void Sirikata::Graphics::ResourceDownloadPlanner::addNewObject | ( | Graphics::Entity * | ent, |
const Transfer::URI & | mesh | ||
) | [virtual] |
Reimplemented in Sirikata::Graphics::PriorityDownloadPlanner.
References mDlPlannerMutex.
Referenced by Sirikata::Graphics::ProxyEntity::iValidated().
void Sirikata::Graphics::ResourceDownloadPlanner::addNewObject | ( | ProxyObjectPtr | p, |
Graphics::Entity * | mesh | ||
) | [virtual] |
Reimplemented in Sirikata::Graphics::PriorityDownloadPlanner.
References mDlPlannerMutex.
OgreRenderer* Sirikata::Graphics::ResourceDownloadPlanner::getScene | ( | ) | const [inline] |
Referenced by Sirikata::Graphics::PriorityDownloadPlanner::checkRemoveAsset(), Sirikata::Graphics::PriorityDownloadPlanner::downloadAsset(), Sirikata::Graphics::PriorityDownloadPlanner::loadAsset(), Sirikata::Graphics::PriorityDownloadPlanner::loadBillboard(), Sirikata::Graphics::PriorityDownloadPlanner::loadDependentTextures(), and Sirikata::Graphics::PriorityDownloadPlanner::loadMeshdata().
int32 Sirikata::Graphics::ResourceDownloadPlanner::maxObjects | ( | ) | [virtual] |
References mDlPlannerMutex, and mMaxLoaded.
Referenced by Sirikata::Graphics::OgreRenderer::maxObjects().
void Sirikata::Graphics::ResourceDownloadPlanner::poll | ( | ) | [virtual] |
Override this method to specify the work to be done when polling.
Implements Sirikata::PollingService.
Reimplemented in Sirikata::Graphics::PriorityDownloadPlanner.
References mDlPlannerMutex.
void Sirikata::Graphics::ResourceDownloadPlanner::removeObject | ( | ProxyObjectPtr | p | ) | [virtual] |
Reimplemented in Sirikata::Graphics::PriorityDownloadPlanner.
References mDlPlannerMutex.
Referenced by Sirikata::Graphics::ProxyEntity::iHandleDestroyTimeout().
void Sirikata::Graphics::ResourceDownloadPlanner::removeObject | ( | Graphics::Entity * | mesh | ) | [virtual] |
Reimplemented in Sirikata::Graphics::PriorityDownloadPlanner.
References mDlPlannerMutex.
void Sirikata::Graphics::ResourceDownloadPlanner::setCamera | ( | Graphics::Camera * | entity | ) | [virtual] |
References camera, and mDlPlannerMutex.
Referenced by Sirikata::Graphics::OgreRenderer::attachCamera().
void Sirikata::Graphics::ResourceDownloadPlanner::setMaxObjects | ( | int32 | new_max | ) | [virtual] |
References mDlPlannerMutex, and mMaxLoaded.
Referenced by Sirikata::Graphics::OgreRenderer::maxObjects().
void Sirikata::Graphics::ResourceDownloadPlanner::start | ( | ) | [virtual] |
Start polling this service on this strand at the given maximum rate.
Reimplemented from Sirikata::PollingService.
References mDlPlannerMutex.
virtual Stats Sirikata::Graphics::ResourceDownloadPlanner::stats | ( | ) | [pure virtual] |
Implemented in Sirikata::Graphics::PriorityDownloadPlanner.
void Sirikata::Graphics::ResourceDownloadPlanner::stop | ( | ) | [virtual] |
Stop scheduling this service.
Note that this does not immediately stop the service, it simply guarantees the service will not be scheduled again. This allows outstanding events to be handled properly.
Reimplemented from Sirikata::PollingService.
Reimplemented in Sirikata::Graphics::PriorityDownloadPlanner.
References mDlPlannerMutex.
void Sirikata::Graphics::ResourceDownloadPlanner::updateObject | ( | ProxyObjectPtr | p | ) | [virtual] |
Reimplemented in Sirikata::Graphics::PriorityDownloadPlanner.
References mDlPlannerMutex.
Referenced by Sirikata::Graphics::ProxyEntity::iOnSetIsAggregate(), Sirikata::Graphics::ProxyEntity::iOnSetMesh(), and Sirikata::Graphics::ProxyEntity::iOnSetScale().
Referenced by addNewObject(), Sirikata::Graphics::PriorityDownloadPlanner::addObject(), Sirikata::Graphics::PriorityDownloadPlanner::checkRemoveAsset(), Sirikata::Graphics::PriorityDownloadPlanner::commandGetData(), Sirikata::Graphics::PriorityDownloadPlanner::downloadAsset(), Sirikata::Graphics::PriorityDownloadPlanner::findObject(), Sirikata::Graphics::PriorityDownloadPlanner::finishLoadAsset(), Sirikata::Graphics::PriorityDownloadPlanner::handleLoadedResource(), Sirikata::Graphics::PriorityDownloadPlanner::iAddObject(), Sirikata::Graphics::PriorityDownloadPlanner::iPoll(), Sirikata::Graphics::PriorityDownloadPlanner::iRemoveObject(), Sirikata::Graphics::PriorityDownloadPlanner::iStop(), Sirikata::Graphics::PriorityDownloadPlanner::loadAsset(), Sirikata::Graphics::PriorityDownloadPlanner::loadBillboard(), Sirikata::Graphics::PriorityDownloadPlanner::loadDependentTextures(), Sirikata::Graphics::PriorityDownloadPlanner::loadMeshdata(), Sirikata::Graphics::PriorityDownloadPlanner::loadObject(), maxObjects(), poll(), Sirikata::Graphics::PriorityDownloadPlanner::poll(), removeObject(), Sirikata::Graphics::PriorityDownloadPlanner::removeObject(), Sirikata::Graphics::PriorityDownloadPlanner::requestAssetForObject(), setCamera(), setMaxObjects(), start(), Sirikata::Graphics::PriorityDownloadPlanner::stats(), stop(), Sirikata::Graphics::PriorityDownloadPlanner::stop(), Sirikata::Graphics::PriorityDownloadPlanner::unloadObject(), Sirikata::Graphics::PriorityDownloadPlanner::unrequestAssetForObject(), Sirikata::Graphics::PriorityDownloadPlanner::updateAssetPriority(), updateObject(), and Sirikata::Graphics::PriorityDownloadPlanner::updateObject().
int32 Sirikata::Graphics::ResourceDownloadPlanner::mMaxLoaded [protected] |