realXtend/naali — pull request #307 by jonnenauha (2012-01-13 13:21:33+00:00)
Title: Admino improvements and fixes

In preparation for the 2.2 Tundra release, I've cherry picked out latest code improvements and fixes into a pull request.

* Fix OpenGL startup and runtime errors. [Check more from commit message](https://github.com/Adminotech/tundra/commit/536453b9c47f84755fcf0099be3efc32dc539b98)
* BrowserUIPlugin: Add a loading screen and the ability to hide/show/update login screen from the inworld scripts. This ui shows immediately if --login param is defined and will stay there until inworld script will call to hide it. If nothing calls it from scene it will auto hide 10 seconds later. You can also set your scenes image to the loading screen.
* BrowserUiPlugin: Implemented shared browser disk cache and cookies. This enables inworld and local QWebViews/QNetworkAccessManagers to use the same caches. The actual cookies cannot be read from scripts so there is no security risk that inworld scripts would read your eg auth cookies for websites. The classes that provide this data are blacklisted from untrusted scripts.
* Using shared disk cache/cookies in all EC_WebView instances if linking to BrowserUiPlugin is enabled in the build.
* Global EC_WebView rendering service (in SceneWidgetComponents module). Renders static web pages with rendering queue, webview is static if no one is controlling the browsing and render fps in the component is 0. This reduces the QWebView instances loaded into memory drastically in most scenes. In best case scenario all pages are static, rendering queue preserves one QWebView for the rendering and releases it after the initial page loads.
* New cmake option to turn on windows spesific optimizations ENABLE_BUILD_OPTIMIZATIONS. Note: This should never be enabled if you are planning to distribute your .lib files.
* Application can now report the operating system to scripts, (win, mac or linux). This enables scripts to for example modify UI accorting to OS. As we found out not all .ui files render the same on mac vs windows.
* Remove lots of linker/build errors.

Mostly again touches BrowserUiPlugin c++ and js side and components and logic inside SceneWidgetComponents.