* Moved `UIComponent::GetViewport()` to `Scene` class.
* Simplified resource initialization of `UIComponent` and removed need of overriding `IsEnabled()`.
* Renamed `UIComponent::GetElement()` to `GetRoot()` to be more consistent with UI subsystem.
* Removed ability to set root UI element to `UIComponent`, instead to add UI elements should be added as children to element renturned by `UIComponent::GetRoot()`.
* Cleaned up debug rendering in HelloGUI sample. Debug data is now rendered after pressing F2.
* Separated batches and vertex buffers of normal UI and UI rendered to texture.
* Cleaned up `Render()` method adding additional `surface` parameter to render into. Passing null renders on to screen.
Support for rendering UI to texture.
This change adds support for rendering GUI into a texture. This is achieved by adding `UIComponent` component to `Node`. `UIComponent` overrides material of `Node`'s `StaticModel`. UI subsystem is changed so that batches belonging to UI elements owned by `UIComponent` are rendered into a texture that is also contained in `UIComponent`. Input is handled by UI subsystem, so anything that worked on normal UI will work on UI rendered on to 3D object. This required a minor change for input handling. Previously "screen" was considered surface of entire window. Now screen is considered area of root_element_position + root_element_size. This is fully backwards-compatible.
There is one issue i am unable to solve: since on OpenGL texture coordinates start from bottom-left corner a workaround is needed. Texture is flipped by projection matrix, however it breaks scissor test. I do not know how to properly fix it therefore scissor test is disabled when rendering into texture on OpenGL. Issue is clearly visible when scrolling a `ListView` in `HelloGUI` sample when UI is rendered on to a cube.
Other changes: lua and angelscript bindings, HelloGUI sample can toggle between rendering on screen or rendering on cube, added a ListView to HelloGUI sample window. `UI::DebugDraw()` support.
Since the URHO3D_PCH build option is made available to support non-PCH build, our build system does not rely on precompiled header to include the Urho3D.h export header anymore. The export header is auto-included by one of Urho3D headers when it is required using the right format with the help of URHO3D_IS_BUILDING compiler define. As such, there is no need to explicitly include Urho3D.h in external project too. Sorry for the flip-flop.
At the moment the 'make test' cannot be run non-interactively yet on Linux host and Mac OS X host systems due to what-could-be a bug in 'emrun' script. The issue with 'emrun' has been reported to upstream (https://github.com/kripken/emscripten/issues/3234).
It is now a library user own's responsibility to include the Urho3D.h in their source code. Or to include it as part of their own precompiled header similar to what Urho3D project has done.
Changes:
- Avoid globbing engine source files twice.
- Setup folder group for VS and Xcode. Also group object files according to 3rd-party library name.
- New define_source_files() macro.
Fixed build of samples.
Removed line to disable MinSizeRel build type in CMake script as it seems to have no effect any longer.
Removed unused function to get AnimationState by C string of animation name.