realXtend/naali — pull request #480 by jonnenauha (2012-05-24 14:17:33+00:00)
Title: Adminotech Tundra fixes

* Call AssetAPI::ForgetAllAssets() when client disconnects from a server. This needs to be done if we want Tundra to be able to login to multiple scenes in one instance. If this is not done, eventually client will run out of memory and crash. Fixes #472
* Fix linking incorrectly to RenderSystem_Direct3D9 if CMakeLists.txt ENABLE_DIRECTX == false.
* Protect against null service objects (framework property maps QObjects) while prepping JS engine.
* Implement a Abort() mechanism for IAssetTransfer. This flag cannot be set from scripts, AssetAPI sets aborted when appropriate. This lets the provider know that once the load finishes (in http providers case for example) to not load anything into memory or store the cache file. Additionally AssetAPI can detect aborted flag and ignore the finished/failed transfer. Before it incorrectly did error logging for the transfer we didn't even expect anymore and constructed from its data an IAsset into memory.
* Make the load path for AssetAPI uniform how AssetLoadFailed is called. Before there were situations where disk source had "a" path but the file was no present. In this scenario AssetAPI was never informed that the load actually failed which left dead transfers into the internal state.
* Fix crash that occurred if Ogre IAsset was loading the data asynchronously in Ogre and it was destroyed/unloaded. This left a dangling IAsset* into Ogre that it called back when the asynch load completed. Now if a asynch operation is ongoing the request is aborted in IAsset::DoUnload().
* Try to recover from UI blit rects that have areas outside the scene rect. Add more information of the rects in play when DX surface subrect blit fails.
* Enable CanvasPlugin into the default Tundra build.