瀏覽代碼

Rename Readme.txt to Readme.md.

CrackedP0t 11 年之前
父節點
當前提交
70fd3c7988
共有 3 個文件被更改,包括 439 次插入495 次删除
  1. 4 4
      Rakefile
  2. 435 0
      Readme.md
  3. 0 491
      Readme.txt

+ 4 - 4
Rakefile

@@ -187,8 +187,8 @@ desc 'Update site documentation to GitHub Pages'
 task :ci_site_update do
   # Pull or clone
   system 'cd ../doc-Build 2>/dev/null && git pull -q -r || git clone --depth 1 -q https://github.com/urho3d/urho3d.github.io.git ../doc-Build' or abort 'Failed to pull/clone'
-  # Update credits from Readme.txt to about.md
-  system "ruby -lne 'BEGIN { credits = false }; puts $_ if credits; credits = true if /bugfixes by:/; credits = false if /^$/' Readme.txt |ruby -i -le 'credits = STDIN.read; puts ARGF.read.gsub(/(?<=bugfixes by\n).*?(?=##)/m, credits)' ../doc-Build/about.md" or abort 'Failed to update credits'
+  # Update credits from Readme.md to about.md
+  system "ruby -lne 'BEGIN { credits = false }; puts $_ if credits; credits = true if /bugfixes by:/; credits = false if /^$/' Readme.md |ruby -i -le 'credits = STDIN.read; puts ARGF.read.gsub(/(?<=bugfixes by\n).*?(?=##)/m, credits)' ../doc-Build/about.md" or abort 'Failed to update credits'
   # Setup doxygen to use minimal theme
   system "ruby -i -pe 'BEGIN { a = {%q{HTML_HEADER} => %q{minimal-header.html}, %q{HTML_FOOTER} => %q{minimal-footer.html}, %q{HTML_STYLESHEET} => %q{minimal-doxygen.css}, %q{HTML_COLORSTYLE_HUE} => 200, %q{HTML_COLORSTYLE_SAT} => 0, %q{HTML_COLORSTYLE_GAMMA} => 20, %q{DOT_IMAGE_FORMAT} => %q{svg}, %q{INTERACTIVE_SVG} => %q{YES}} }; a.each {|k, v| gsub(/\#{k}\s*?=.*?\n/, %Q{\#{k} = \#{v}\n}) }' ../Build/Docs/Doxyfile" or abort 'Failed to setup doxygen configuration file'
   system 'cp ../doc-Build/_includes/Doxygen/minimal-* ../Build/Docs' or abort 'Failed to copy minimal-themed template'
@@ -309,8 +309,8 @@ EOF" or abort 'Failed to create release directory remotely'
     # Upload the source package
     system "scp Urho3D-* [email protected]:#{upload_dir}" or abort 'Failed to upload source package'
     # Sync readme and license files, just in case they are updated in the repo
-    system 'for f in Readme.txt License.txt; do mtime=$(git log --format=%ai -n1 $f); touch -d "$mtime" $f; done' or abort 'Failed to acquire file modified time'
-    system 'rsync -e ssh -az Readme.txt License.txt [email protected]:/home/frs/project/$TRAVIS_REPO_SLUG' or abort 'Failed to sync readme and license files'
+    system 'for f in Readme.md License.txt; do mtime=$(git log --format=%ai -n1 $f); touch -d "$mtime" $f; done' or abort 'Failed to acquire file modified time'
+    system 'rsync -e ssh -az Readme.md License.txt [email protected]:/home/frs/project/$TRAVIS_REPO_SLUG' or abort 'Failed to sync readme and license files'
     # Mark that the site has been updated
     File.open('.site_updated', 'w') {}
   end

+ 435 - 0
Readme.md

@@ -0,0 +1,435 @@
+Urho3D - cross-platform 2D and 3D game engine
+---------------------------------------------
+
+http://urho3d.github.io/
+
+Licensed under the MIT license, see License.txt for details.
+
+
+Credits
+-------
+
+Urho3D development, contributions and bugfixes by:
+- Lasse Öörni ([email protected], AgentC at GameDev.net)
+- Wei Tjong Yao
+- Aster Jian
+- Colin Barrett
+- Erik Beran
+- Danny Boisvert
+- Carlo Carollo
+- Pete Chown
+- Sebastian Delatorre (primitivewaste)
+- Josh Engebretson
+- Chris Friesen
+- Alex Fuller
+- Mika Heinonen
+- Graham King
+- Jason Kinzer
+- Gunnar Kriik
+- Ali Kämäräinen
+- Pete Leigh
+- Jonne Nauha
+- Paul Noome
+- David Palacios
+- Alex Parlett
+- Jordan Patterson
+- Vladimir Pobedinsky
+- Nick Royer
+- Miika Santala
+- Joshua Tippetts
+- Daniel Wiberg
+- Steven Zhang
+- AGreatFish
+- Enhex
+- Firegorilla
+- Magic.Lixin
+- Mike3D
+- OvermindDL1
+- andmar1x
+- amadeus_osa
+- atship
+- att
+- celeron55
+- hdunderscore
+- mightyCelu
+- nemerle
+- ninjastone
+- rasteron
+- reattiva
+- rifai
+- skaiware
+- szamq
+- thebluefish
+
+Urho3D is greatly inspired by OGRE (http://www.ogre3d.org) and Horde3D
+(http://www.horde3d.org). Additional inspiration & research used:
+- Rectangle packing by Jukka Jylänki (clb)
+  http://clb.demon.fi/projects/rectangle-bin-packing
+- Tangent generation from Terathon
+  http://www.terathon.com/code/tangent.html
+- Fast, Minimum Storage Ray/Triangle Intersection by Möller & Trumbore
+  http://www.graphics.cornell.edu/pubs/1997/MT97.pdf
+- Linear-Speed Vertex Cache Optimisation by Tom Forsyth
+  http://home.comcast.net/~tom_forsyth/papers/fast_vert_cache_opt.html
+- Software rasterization of triangles based on Chris Hecker's
+  Perspective Texture Mapping series in the Game Developer magazine
+  http://chrishecker.com/Miscellaneous_Technical_Articles
+- Networked Physics by Glenn Fiedler
+  http://gafferongames.com/game-physics/networked-physics/
+- Euler Angle Formulas by David Eberly
+  http://www.geometrictools.com/Documentation/EulerAngles.pdf
+- Red Black Trees by Julienne Walker
+  http://eternallyconfuzzled.com/tuts/datastructures/jsw_tut_rbtree.aspx
+- Comparison of several sorting algorithms by Juha Nieminen
+  http://warp.povusers.org/SortComparison/
+
+Urho3D uses the following third-party libraries:
+- AngelScript 2.29.1 (http://www.angelcode.com/angelscript/)
+- Box2D 2.3.0 (http://box2d.org/)
+- Bullet 2.82 (http://www.bulletphysics.org/)
+- Civetweb (http://sourceforge.net/projects/civetweb/)
+- FreeType 2.5.0 (http://www.freetype.org/)
+- GLEW 1.9.0 (http://glew.sourceforge.net/)
+- jo_jpeg 1.52 (http://www.jonolick.com/uploads/7/9/2/1/7921194/jo_jpeg.cpp)
+- kNet (https://github.com/juj/kNet)
+- libcpuid 0.2.0 (http://libcpuid.sourceforge.net/)
+- Lua 5.1 (http://www.lua.org)
+- LuaJIT 2.0.3 (http://www.luajit.org)
+- LZ4 (http://code.google.com/p/lz4/)
+- MojoShader (http://icculus.org/mojoshader/)
+- Open Asset Import Library (http://assimp.sourceforge.net/)
+- pugixml 1.0 (http://pugixml.org/)
+- rapidjson 0.11 (https://code.google.com/p/rapidjson/)
+- Recast/Detour (https://github.com/memononen/recastnavigation/)
+- SDL 2.0.3 (http://www.libsdl.org/)
+- StanHull (http://codesuppository.blogspot.com/2006/03/
+  john-ratcliffs-code-suppository-blog.html)
+- stb_image 1.29 (http://nothings.org/)
+- stb_vorbis 0.99996 (http://nothings.org/)
+- tolua++ 1.0.93 (http://www.codenix.com/~tolua)
+
+DXT / ETC1 / PVRTC decompression code based on the Squish library and the Oolong
+Engine.
+Jack and mushroom models from the realXtend project. (http://www.realxtend.org)
+Ninja model and terrain, water, smoke, flare and status bar textures from OGRE.
+BlueHighway font from Larabie Fonts.
+Anonymous Pro font by Mark Simonson.
+NinjaSnowWar sounds by Veli-Pekka Tätilä.
+
+
+Documentation
+-------------
+
+Urho3D classes have been sparsely documented using Doxygen notation. To
+generate documentation into the "Docs" subdirectory, open the Doxyfile in the
+"Docs" subdirectory with doxywizard and click "Run doxygen" from the "Run" tab.
+Get Doxygen from http://www.doxygen.org & Graphviz from http://www.graphviz.org.
+See section "Documentation build" below on how to automate documentation
+generation as part of the build process.
+
+The documentation is also available online at
+  http://urho3d.github.io/documentation/HEAD/index.html
+
+Documentation on how to build Urho3D:
+  http://urho3d.github.io/documentation/HEAD/_building.html
+Documentation on how to use Urho3D as external library
+  http://urho3d.github.io/documentation/HEAD/_using_library.html
+
+Replace HEAD with a specific release version in the above links to obtain the
+documentation pertinent to the specified release. Alternatively, use the
+document-switcher in the documentation website to do so.
+
+
+History
+-------
+
+V1.32
+ - Finalized Urho2D functionality, including 2D physics using Box2D, sprite animation and tile maps
+ - Threaded background resource loading. Must be manually triggered via ResourceCache or by loading a scene asynchronously
+ - Attribute and material shader parameter animation system
+ - Customizable onscreen joystick for mobile platforms. Used in examples
+ - Touch camera control in examples on mobile platforms
+ - Touch emulation by mouse
+ - Multi-touch UI drag support
+ - Consistent touch ID's across platforms
+ - Absolute, relative and wrap modes for the operating system mouse cursor
+ - Support for connecting & removing joysticks during runtime
+ - Negative light & light brightness multiplier support
+ - Transform spaces for Node's translate, rotate & lookat functions
+ - Scrollable console
+ - Selectable console command interpreter (AngelScript, Lua, FileSystem)
+ - Touch scroll in ScrollView & ListView
+ - UI layout flex scale mode
+ - Custom sound streams from C++
+ - LogicComponent C++ base class with virtual update functions similar to ScriptObject
+ - Signed distance field font support
+ - JSON data support
+ - Matrix types in Variant & XML data
+ - Intermediate rendertarget refactoring: use viewport size to allow consistent UV addressing
+ - ParticleEmitter refactoring: use ParticleEffect resource for consistency with ParticleEmitter2D and more optimal net replication
+ - Expose LZ4 compression functions
+ - Support various cube map layouts contained in a single image file
+ - Configurable Bullet physics stepping behavior. Can use elapsed time limiting, or a variable timestep to use less CPU
+ - Default construct math objects to zero / identity
+ - Mandatory registration for remote events. Check allowed event only when receiving
+ - Teapot & torus builtin objects
+ - FXAA 3.11 shader
+ - Triangle rendering in DebugRenderer (more efficient than 3 lines)
+ - Material/texture quality and anisotropy as command line options and engine startup parameters
+ - Spline math class, which the SplinePath component uses
+ - Console auto-show on error
+ - DrawableProxy2D system for optimizing 2D sprite drawing
+ - Possibility to decouple BorderImage border UV's from element size
+ - Editor & NinjaSnowWar resources split into subdirectories
+ - UI hover start & end events
+ - UI drag cancel by pressing ESC
+ - Allowed screen orientations can be controlled. Effective only on iOS
+ - Rendering sceneless renderpaths
+ - Define individual material passes as SM3-only
+ - Support for copying ListView text to system clipboard
+ - Async system command execution
+ - Generic attribute access for Lua script objects
+ - Use Lua functions directly as event subscribers
+ - Touch gesture recording and load/save
+ - AssetImporter option to allow multiple import of identical meshes
+ - Automatically create a physics world component to scene when necessary
+ - GetSubimage function in the Image class
+ - Possibility to clone existing components from another scene node
+ - Improve terrain rendering on mobile devices
+ - Refactoring of camera facing modes in BillboardSet & Text3D
+ - Additive alpha techniques for particle rendering
+ - Possibility to use CustomGeometry component for physics triangle mesh collision
+ - Access to 2D node coordinates for convenience when using 2D graphics features
+ - Save embedded textures in AssetImporter
+ - Use best matching fullscreen resolution if no exact match
+ - Use SDL_iPhoneSetAnimationCallback instead of blocking main loop
+ - Allow fast partial terrain updates by modifying the heightmap image
+ - API for setting image pixels by integer colors
+ - Refactor to remove the separate ShortStringHash class
+ - Deep clone functionality in Model resource
+ - Zone can define a texture which is available to shaders. Not used by default
+ - Allow logging from outside the main thread
+ - Log warnings for improper attempts to use events from outside main thread
+ - Improved CustomGeometry dynamic updates
+ - ConvexCast function in PhysicsWorld
+ - Screen to world space conversion functions in Viewport class
+ - Allow sending client rotation to server in addition to position
+ - Allow accessing and modifying the engine's next timestep
+ - DeepEnabled mechanism for disabling node or UI element hierarchies and then restoring their own enabled state
+ - Allow to prevent closing a modal window with ESC
+ - Per-viewport control of whether debug geometry should render
+ - Optional interception of resource requests
+ - Readded optional slow & robust mode to AreaAllocator
+ - Optionally disable RigidBody mass update to allow fast adding of
+ - several CollisionShape components to the same node
+ - Runtime synchronization of resource packages from server to client
+ - Disable multisample antialiasing momentarily during rendering. Used by default for UI & quad rendering
+ - Glyph offset support in Font class
+ - Font class internal refactoring
+ - Allow to create AngelScript script objects by specifying the interface it implements
+ - Window position startup parameters
+ - Functions to get time since epoch & modify file's last modified time
+ - Optionally auto-disable child elements of a scroll view when touch  scrolling
+ - Allocate views permanently per viewport to allow querying for drawables, lights etc. reliably
+ - Allow to specify material techniques/passes that should not be used on mobile devices
+ - Reduced default shadow mapping issues on mobile devices
+ - Minor rendering optimizations
+ - Build system: possibility to build Urho3D without networking or 2D graphics functionality
+ - Build system: improved generated scripting documentation
+ - Build system: improved support for IDE's in CMake scripts
+ - Build system: support up to Android NDK r10c and 64-bit ABIs
+ - Build system: numerous other improvements
+ - Editor: resource browser
+ - Editor: spawn window for random-generating objects
+ - Editor: allow either zoom or move from mouse wheel
+ - Editor: locate object by doubleclicking node in hierarchy
+ - Editor: take screenshots with F11, camera panning
+ - Editor: button in value edit fields that allows editing by mouse drag
+ - Updated SDL to 2.0.3.
+ - Updated AngelScript to 2.29.1
+ - Updated assimp
+ - Updated Recast/Detour
+ - Fix MinGW build issues
+ - Fix techniques referring to wrong shaders
+ - Fix Node::LookAt() misbehaving in certain situations
+ - Fix resize event not reporting correct window size if window is maximized at start
+ - Fix PhysicsWorld::GetRigidBodies() not using collision mask
+ - Fix zone misassignment issues
+ - Fix Lua not returning correctly typed object for UIElement::GetChild() & UIElement::GetParent()
+ - Fix uninitialized variables in 2D physics components
+ - Fix quad rendering not updating elapsed time uniform
+ - Fix forward rendering normal mapping issues by switching calculations back to world space
+ - Fix wrong logging level on Android
+ - Fix multiple subscribes to same event on Lua
+ - Fix missing Octree update in headless mode
+ - Fix crash when using FreeType to access font kerning tables
+ - Fix ReadString() endless loop if the string does not end
+ - Fix shadow mapping on OS X systems with Intel GPU
+ - Fix manually positioned bones being serialized properly
+ - Fix file checksum calculation on Android
+ - Fix accelerometer input on Android when device is flipped 180 degrees
+ - Fix missing or misbehaving Lua bindings
+ - Fix crashes in physics collision handling when objects are removed during it
+ - Fix shader live reload if previous compile resulted in error
+ - Fix named manual textures not recreating their GPU resource after device loss
+ - Fix skeleton-only model not importing in AssetImporter
+ - Fix terrain raycast returning incorrect position/normal
+ - Fix animation keyframe timing in AssetImporter if start time is not 0
+ - Fix storing Image resources to memory unnecessarily during cube/3D  texture loading
+ - Fix to node transform dirtying mechanism and the TransformChanged()  script function
+ - Fix returned documents directory not being writable on iOS
+ - Fix click to emptiness not closing a menu
+ - Fix FileWatcher notifying when file was still being saved. By default delay notification 1 second
+ - Fix .txml import in the editor
+ - Fix erroneous raycast to triangles behind the ray
+ - Fix crash when multiple AnimatedModels exist in a node and the master  model is destroyed
+ - Fix missing Matrix4 * Matrix3x4 operator in script
+ - Fix various compile warnings that leak to applications using Urho3D
+ - Fix DebugHud update possibly being late one frame
+ - Fix various macros not being usable outside Urho3D namespace
+ - Fix erroneous layout with wordwrap text elements
+ - Fix debug geometry rendering on flipped OpenGL viewports
+ - Fix kNet debug mode assert with zero sized messages
+ - Fix not being able to stop and restart kNet server
+ - Fix AreaAllocator operation
+ - Fix possible crash with parented rigidbodies
+ - Fix missing network delta update if only user variables in a Node have been modified
+ - Fix to only search for June 2010 DirectX SDK, as earlier SDK's will fail
+ - Fix wrong search order of added resource paths
+ - Fix global anisotropic filtering on OpenGL
+ - Fix animation triggers not working if trigger is at animation end
+ - Fix CopyFramebuffer shader name not being used correctly on case- sensitive systems
+ - Fix UI elements not receiving input when the window containing them is partially outside the screen to the left
+ - Fix occlusion rendering not working with counterclockwise triangles
+ - Fix material shader parameter animations going out of sync with other animations when the object using the material is not in view
+ - Fix CPU count functions on Android 
+
+V1.31
+ - Extensive build system improvements, especially for using Urho3D as a library in an external project.
+ - LuaJIT support.
+ - Improved Lua bindings, Lua coroutine support, automatic loading of compiled Lua scripts (.luc) if they exist.
+ - HDR rendering, 3D textures, height fog and several new post process shaders.
+ - Shader refactoring. Need for XML shader descriptions & ShaderCompiler tool removed.
+ - Reflection / refraction rendering support.
+ - 2D drawable components: StaticSprite2D, AnimatedSprite2D, ParticleEmitter2D.
+ - ToolTip & MessageBox UI elements. UI logic improvements.
+ - Optimized text rendering + dynamic population of font textures for improved batching.
+ - AngelScript DelayedExecute for free functions, and event handling for any script object, not just ScriptInstances
+ - Editor: added grid, toolbar, camera view presets, camera orbit, mouse wheel zoom, multiple viewports and orthographic camera.
+ - Borderless window mode, possibility to change application icon.
+ - SDL GameController support, raw key codes support.
+ - Optimized shadow rendering on mobile devices. Low quality mode avoids dependent texture reads.
+ - HttpRequest class runs in a background thread to avoid blocking.
+ - Compressed package file support using the LZ4 library.
+ - Cone parameters in SoundSource3D for directional attenuation.
+ - Variant GetPtr() safety refactoring. Uses WeakPtr to store RefCounted subclasses. Use GetVoidPtr() to store unsafe arbitrary pointers.
+ - Improved work queue completion events. Work items are now RefCounted to allow persisting them as necessary.
+ - Allow to disable automatic execution of AngelScript & Lua from the  engine console.
+ - Added shader variations, for example ambient occlusion texture and better emissive color support.
+ - Added examples.
+ - Update SDL to 2.0.1
+ - Update AngelScript to 2.28.1.
+ - Update FreeType to 2.5.0.
+ - Fix partial texture updates, both Direct3D9 & OpenGL.
+ - Fix long-standing audio click bug.
+ - Fix kinematic rigidbodies to apply impulses correctly to dynamic bodies.
+ - Plus many more improvements and bugfixes.V1.3  - Lua scripting support.
+ - Optional build as a single external library, static or dynamic.
+ - Raspberry Pi support.
+ - 64-bit build support.
+ - HTTP client using the Civetweb library.
+ - Enhanced CMake build scripts. Android build also uses CMake. Use out-of-source build on platform that supports it.
+ - Rendering performance optimizations, optional StaticModelGroup component for culling and lighting several objects as one unit.
+ - A set of sample applications implemented in C++, AngelScript and Lua.
+ - Automatic Node/component handle member variable serialization for AngelScript script objects.
+ - New UI theme.
+ - Shadow & stroke effects in Text & Text3D.
+ - Boolean shader uniforms.
+ - Quick menu in the editor.
+ - Material editor and preview in the editor.
+ - Editable attributes for particle emitters.
+ - Components are grouped into categories in the editor.
+ - Update SDL to stable 2.0.0 release.
+ - Several other improvements and bugfixes.
+
+V1.23
+ - UI editing support in the editor.
+ - Undo/redo in the editor.
+ - Recast/Detour library integration for navigation mesh generation and pathfinding.
+ - Open Asset Import Library update, enables FBX file support.
+ - "Is Enabled" attribute in scene nodes and components for an uniform mechanism to temporarily disable unneeded audiovisual, physics or logic objects.
+ - Script object public variables editing and serialization.
+ - New components: Text3D and Sprite.
+ - UI library functionality improvements.
+ - sRGB texture and framebuffer support.
+ - Switched to GLEW library for OpenGL extension handling.
+ - Vegetation and lightmapping example shaders.
+ - Engine configuration through a parameter map.
+ - Lots of refactoring, code cleanup and bugfixes.
+
+V1.22
+ - Configurable render path replaces hardcoded forward/prepass/deferred modes. Render path system also used for postprocessing now.
+ - Threaded task priorities; long-running tasks (more than one frame) can coexist with the time-critical tasks.
+ - Possibility to use also RGB normal maps.
+ - CustomGeometry component, which allows geometry to be defined similarly to OpenGL immediate mode.
+ - Elapsed time shader parameter for material animation.
+ - Cubic environment mapping example shaders.
+ - Separate physics collision start & end events.
+ - Visual Studio 2012, Eclipse & Xcode build support.
+ - Many bugfixes, including iOS 6 orientation & shadow mapping bugfixes, skinning on some Android devices.
+
+V1.21
+ - Bugfixes and code cleanup.
+ - External window support (experimental.)
+ - UI elements refactored to use attributes for serialization.
+ - Animation state editing and animation trigger events.
+ - Scene update time scale can be modified.
+ - Improved the delayed method call system.V1.2  - Android and iOS support.
+ - Decal rendering.
+ - Terrain rendering.
+ - Joystick input support.
+ - Use SDL library for windowing and input on all platforms.
+ - KTX and PVR image loading (for ETC1 & PVRTC compressed textures.)
+ - Removed need for shader preprocessing; reorganized shaders to be more friendly to base custom shaders on.
+ - Inbuilt geometry shapes in the editor.
+
+V1.16
+ - Switched to Bullet physics library.
+ - More physics constraint types.
+ - Rendering and networking performance optimizations.
+ - Use Squish library to implement software DXT decompression when not supported in hardware.
+
+V1.15
+ - New deferred rendering pipeline.
+ - Unicode support.
+ - Live resource reloading in the editor (Windows only so far.)
+ - More accurate frame timing.
+ - Bugfixes to physics jittering and FBO performance issue on Linux.
+
+V1.14
+ - Object (partial scene) load/save.
+ - Post-processing.
+ - Switched to pugixml library, scene load/save optimizations.
+ - Bugfixes to rendertexture views and component attributes.
+
+V1.13
+ - Task-based multithreading.
+ - Vertex lighting option.
+ - Forward and light pre-pass rendering pipelines.
+
+V1.12
+ - Manipulator gizmo and multi-editing in the editor.
+ - Switched to forward rendering exclusively, which is optimized to do more work in the vertex shader.
+ - Zone system refactoring. Objects check the zone they belong to for per-zone light masking, ambient light and fog settings.
+ - Scripting API fixes and improvements.
+
+V1.11
+ - Bugfixes and performance optimizations.
+ - Added GraphicsTest example from V1.0 (now called TestSceneOld.)
+ - Added fallback mode, which is used if multiple render targets or hardware shadow maps are not available.V1.1  - Object and scene model refactoring.
+ - Automatic serialization of scene objects via attributes.
+ - Added OpenGL and cross-platform support.
+ - Switched to kNet library for networking.
+ 
+V1.0
+ - Original release.

+ 0 - 491
Readme.txt

@@ -1,491 +0,0 @@
-Urho3D - cross-platform 2D and 3D game engine
----------------------------------------------
-
-http://urho3d.github.io/
-
-Licensed under the MIT license, see License.txt for details.
-
-
-Credits
--------
-
-Urho3D development, contributions and bugfixes by:
-- Lasse Öörni ([email protected], AgentC at GameDev.net)
-- Wei Tjong Yao
-- Aster Jian
-- Colin Barrett
-- Erik Beran
-- Danny Boisvert
-- Carlo Carollo
-- Pete Chown
-- Sebastian Delatorre (primitivewaste)
-- Josh Engebretson
-- Chris Friesen
-- Alex Fuller
-- Mika Heinonen
-- Graham King
-- Jason Kinzer
-- Gunnar Kriik
-- Ali Kämäräinen
-- Pete Leigh
-- Jonne Nauha
-- Paul Noome
-- David Palacios
-- Alex Parlett
-- Jordan Patterson
-- Vladimir Pobedinsky
-- Nick Royer
-- Miika Santala
-- Joshua Tippetts
-- Daniel Wiberg
-- Steven Zhang
-- AGreatFish
-- Enhex
-- Firegorilla
-- Magic.Lixin
-- Mike3D
-- OvermindDL1
-- andmar1x
-- amadeus_osa
-- atship
-- att
-- celeron55
-- hdunderscore
-- mightyCelu
-- nemerle
-- ninjastone
-- rasteron
-- reattiva
-- rifai
-- skaiware
-- szamq
-- thebluefish
-
-Urho3D is greatly inspired by OGRE (http://www.ogre3d.org) and Horde3D
-(http://www.horde3d.org). Additional inspiration & research used:
-- Rectangle packing by Jukka Jylänki (clb)
-  http://clb.demon.fi/projects/rectangle-bin-packing
-- Tangent generation from Terathon
-  http://www.terathon.com/code/tangent.html
-- Fast, Minimum Storage Ray/Triangle Intersection by Möller & Trumbore
-  http://www.graphics.cornell.edu/pubs/1997/MT97.pdf
-- Linear-Speed Vertex Cache Optimisation by Tom Forsyth
-  http://home.comcast.net/~tom_forsyth/papers/fast_vert_cache_opt.html
-- Software rasterization of triangles based on Chris Hecker's
-  Perspective Texture Mapping series in the Game Developer magazine
-  http://chrishecker.com/Miscellaneous_Technical_Articles
-- Networked Physics by Glenn Fiedler
-  http://gafferongames.com/game-physics/networked-physics/
-- Euler Angle Formulas by David Eberly
-  http://www.geometrictools.com/Documentation/EulerAngles.pdf
-- Red Black Trees by Julienne Walker
-  http://eternallyconfuzzled.com/tuts/datastructures/jsw_tut_rbtree.aspx
-- Comparison of several sorting algorithms by Juha Nieminen
-  http://warp.povusers.org/SortComparison/
-
-Urho3D uses the following third-party libraries:
-- AngelScript 2.29.1 (http://www.angelcode.com/angelscript/)
-- Box2D 2.3.0 (http://box2d.org/)
-- Bullet 2.82 (http://www.bulletphysics.org/)
-- Civetweb (http://sourceforge.net/projects/civetweb/)
-- FreeType 2.5.0 (http://www.freetype.org/)
-- GLEW 1.9.0 (http://glew.sourceforge.net/)
-- jo_jpeg 1.52 (http://www.jonolick.com/uploads/7/9/2/1/7921194/jo_jpeg.cpp)
-- kNet (https://github.com/juj/kNet)
-- libcpuid 0.2.0 (http://libcpuid.sourceforge.net/)
-- Lua 5.1 (http://www.lua.org)
-- LuaJIT 2.0.3 (http://www.luajit.org)
-- LZ4 (http://code.google.com/p/lz4/)
-- MojoShader (http://icculus.org/mojoshader/)
-- Open Asset Import Library (http://assimp.sourceforge.net/)
-- pugixml 1.0 (http://pugixml.org/)
-- rapidjson 0.11 (https://code.google.com/p/rapidjson/)
-- Recast/Detour (https://github.com/memononen/recastnavigation/)
-- SDL 2.0.3 (http://www.libsdl.org/)
-- StanHull (http://codesuppository.blogspot.com/2006/03/
-  john-ratcliffs-code-suppository-blog.html)
-- stb_image 1.29 (http://nothings.org/)
-- stb_vorbis 0.99996 (http://nothings.org/)
-- tolua++ 1.0.93 (http://www.codenix.com/~tolua)
-
-DXT / ETC1 / PVRTC decompression code based on the Squish library and the Oolong
-Engine.
-Jack and mushroom models from the realXtend project. (http://www.realxtend.org)
-Ninja model and terrain, water, smoke, flare and status bar textures from OGRE.
-BlueHighway font from Larabie Fonts.
-Anonymous Pro font by Mark Simonson.
-NinjaSnowWar sounds by Veli-Pekka Tätilä.
-
-
-Documentation
--------------
-
-Urho3D classes have been sparsely documented using Doxygen notation. To
-generate documentation into the "Docs" subdirectory, open the Doxyfile in the
-"Docs" subdirectory with doxywizard and click "Run doxygen" from the "Run" tab.
-Get Doxygen from http://www.doxygen.org & Graphviz from http://www.graphviz.org.
-See section "Documentation build" below on how to automate documentation
-generation as part of the build process.
-
-The documentation is also available online at
-  http://urho3d.github.io/documentation/HEAD/index.html
-
-Documentation on how to build Urho3D:
-  http://urho3d.github.io/documentation/HEAD/_building.html
-Documentation on how to use Urho3D as external library
-  http://urho3d.github.io/documentation/HEAD/_using_library.html
-
-Replace HEAD with a specific release version in the above links to obtain the
-documentation pertinent to the specified release. Alternatively, use the
-document-switcher in the documentation website to do so.
-
-
-History
--------
-
-V1.32   - Finalized Urho2D functionality, including 2D physics using Box2D,
-          sprite animation and tile maps
-        - Threaded background resource loading. Must be manually triggered via
-          ResourceCache or by loading a scene asynchronously
-        - Attribute and material shader parameter animation system
-        - Customizable onscreen joystick for mobile platforms. Used in examples
-        - Touch camera control in examples on mobile platforms
-        - Touch emulation by mouse
-        - Multi-touch UI drag support
-        - Consistent touch ID's across platforms
-        - Absolute, relative and wrap modes for the operating system mouse cursor
-        - Support for connecting & removing joysticks during runtime
-        - Negative light & light brightness multiplier support
-        - Transform spaces for Node's translate, rotate & lookat functions
-        - Scrollable console
-        - Selectable console command interpreter (AngelScript, Lua, FileSystem)
-        - Touch scroll in ScrollView & ListView
-        - UI layout flex scale mode
-        - Custom sound streams from C++
-        - LogicComponent C++ base class with virtual update functions similar to
-          ScriptObject
-        - Signed distance field font support
-        - JSON data support
-        - Matrix types in Variant & XML data
-        - Intermediate rendertarget refactoring: use viewport size to allow
-          consistent UV addressing
-        - ParticleEmitter refactoring: use ParticleEffect resource for
-          consistency with ParticleEmitter2D and more optimal net replication
-        - Expose LZ4 compression functions
-        - Support various cube map layouts contained in a single image file
-        - Configurable Bullet physics stepping behavior. Can use elapsed time
-          limiting, or a variable timestep to use less CPU
-        - Default construct math objects to zero / identity
-        - Mandatory registration for remote events. Check allowed event only
-          when receiving
-        - Teapot & torus builtin objects
-        - FXAA 3.11 shader
-        - Triangle rendering in DebugRenderer (more efficient than 3 lines)
-        - Material/texture quality and anisotropy as command line options and
-          engine startup parameters
-        - Spline math class, which the SplinePath component uses
-        - Console auto-show on error
-        - DrawableProxy2D system for optimizing 2D sprite drawing
-        - Possibility to decouple BorderImage border UV's from element size
-        - Editor & NinjaSnowWar resources split into subdirectories
-        - UI hover start & end events
-        - UI drag cancel by pressing ESC
-        - Allowed screen orientations can be controlled. Effective only on iOS
-        - Rendering sceneless renderpaths
-        - Define individual material passes as SM3-only
-        - Support for copying ListView text to system clipboard
-        - Async system command execution
-        - Generic attribute access for Lua script objects
-        - Use Lua functions directly as event subscribers
-        - Touch gesture recording and load/save
-        - AssetImporter option to allow multiple import of identical meshes
-        - Automatically create a physics world component to scene when necessary
-        - GetSubimage function in the Image class
-        - Possibility to clone existing components from another scene node
-        - Improve terrain rendering on mobile devices
-        - Refactoring of camera facing modes in BillboardSet & Text3D
-        - Additive alpha techniques for particle rendering
-        - Possibility to use CustomGeometry component for physics triangle mesh 
-          collision
-        - Access to 2D node coordinates for convenience when using 2D graphics
-          features
-        - Save embedded textures in AssetImporter
-        - Use best matching fullscreen resolution if no exact match
-        - Use SDL_iPhoneSetAnimationCallback instead of blocking main loop
-        - Allow fast partial terrain updates by modifying the heightmap image
-        - API for setting image pixels by integer colors
-        - Refactor to remove the separate ShortStringHash class
-        - Deep clone functionality in Model resource
-        - Zone can define a texture which is available to shaders. Not used by
-          default
-        - Allow logging from outside the main thread
-        - Log warnings for improper attempts to use events from outside main 
-          thread
-        - Improved CustomGeometry dynamic updates
-        - ConvexCast function in PhysicsWorld
-        - Screen to world space conversion functions in Viewport class
-        - Allow sending client rotation to server in addition to position
-        - Allow accessing and modifying the engine's next timestep
-        - DeepEnabled mechanism for disabling node or UI element hierarchies and
-          then restoring their own enabled state
-        - Allow to prevent closing a modal window with ESC
-        - Per-viewport control of whether debug geometry should render
-        - Optional interception of resource requests
-        - Readded optional slow & robust mode to AreaAllocator
-        - Optionally disable RigidBody mass update to allow fast adding of
-        - several CollisionShape components to the same node
-        - Runtime synchronization of resource packages from server to client
-        - Disable multisample antialiasing momentarily during rendering. Used by
-          default for UI & quad rendering
-        - Glyph offset support in Font class
-        - Font class internal refactoring
-        - Allow to create AngelScript script objects by specifying the interface
-          it implements
-        - Window position startup parameters
-        - Functions to get time since epoch & modify file's last modified time
-        - Optionally auto-disable child elements of a scroll view when touch 
-          scrolling
-        - Allocate views permanently per viewport to allow querying for
-          drawables, lights etc. reliably
-        - Allow to specify material techniques/passes that should not be used
-          on mobile devices
-        - Reduced default shadow mapping issues on mobile devices
-        - Minor rendering optimizations
-        - Build system: possibility to build Urho3D without networking or 2D
-          graphics functionality
-        - Build system: improved generated scripting documentation
-        - Build system: improved support for IDE's in CMake scripts
-        - Build system: support up to Android NDK r10c and 64-bit ABIs
-        - Build system: numerous other improvements
-        - Editor: resource browser
-        - Editor: spawn window for random-generating objects
-        - Editor: allow either zoom or move from mouse wheel
-        - Editor: locate object by doubleclicking node in hierarchy
-        - Editor: take screenshots with F11, camera panning
-        - Editor: button in value edit fields that allows editing by mouse drag
-        - Updated SDL to 2.0.3.
-        - Updated AngelScript to 2.29.1
-        - Updated assimp
-        - Updated Recast/Detour
-        - Fix MinGW build issues
-        - Fix techniques referring to wrong shaders
-        - Fix Node::LookAt() misbehaving in certain situations
-        - Fix resize event not reporting correct window size if window is
-          maximized at start
-        - Fix PhysicsWorld::GetRigidBodies() not using collision mask
-        - Fix zone misassignment issues
-        - Fix Lua not returning correctly typed object for UIElement::GetChild()
-          & UIElement::GetParent()
-        - Fix uninitialized variables in 2D physics components
-        - Fix quad rendering not updating elapsed time uniform
-        - Fix forward rendering normal mapping issues by switching calculations
-          back to world space
-        - Fix wrong logging level on Android
-        - Fix multiple subscribes to same event on Lua
-        - Fix missing Octree update in headless mode
-        - Fix crash when using FreeType to access font kerning tables
-        - Fix ReadString() endless loop if the string does not end
-        - Fix shadow mapping on OS X systems with Intel GPU
-        - Fix manually positioned bones being serialized properly
-        - Fix file checksum calculation on Android
-        - Fix accelerometer input on Android when device is flipped 180 degrees
-        - Fix missing or misbehaving Lua bindings
-        - Fix crashes in physics collision handling when objects are removed
-          during it
-        - Fix shader live reload if previous compile resulted in error
-        - Fix named manual textures not recreating their GPU resource after
-          device loss
-        - Fix skeleton-only model not importing in AssetImporter
-        - Fix terrain raycast returning incorrect position/normal
-        - Fix animation keyframe timing in AssetImporter if start time is not 0
-        - Fix storing Image resources to memory unnecessarily during cube/3D 
-          texture loading
-        - Fix to node transform dirtying mechanism and the TransformChanged() 
-          script function
-        - Fix returned documents directory not being writable on iOS
-        - Fix click to emptiness not closing a menu
-        - Fix FileWatcher notifying when file was still being saved. By default
-          delay notification 1 second
-        - Fix .txml import in the editor
-        - Fix erroneous raycast to triangles behind the ray
-        - Fix crash when multiple AnimatedModels exist in a node and the master 
-          model is destroyed
-        - Fix missing Matrix4 * Matrix3x4 operator in script
-        - Fix various compile warnings that leak to applications using Urho3D
-        - Fix DebugHud update possibly being late one frame
-        - Fix various macros not being usable outside Urho3D namespace
-        - Fix erroneous layout with wordwrap text elements
-        - Fix debug geometry rendering on flipped OpenGL viewports
-        - Fix kNet debug mode assert with zero sized messages
-        - Fix not being able to stop and restart kNet server
-        - Fix AreaAllocator operation
-        - Fix possible crash with parented rigidbodies
-        - Fix missing network delta update if only user variables in a Node have
-          been modified
-        - Fix to only search for June 2010 DirectX SDK, as earlier SDK's will
-          fail
-        - Fix wrong search order of added resource paths
-        - Fix global anisotropic filtering on OpenGL
-        - Fix animation triggers not working if trigger is at animation end
-        - Fix CopyFramebuffer shader name not being used correctly on case-
-          sensitive systems
-        - Fix UI elements not receiving input when the window containing them is
-          partially outside the screen to the left
-        - Fix occlusion rendering not working with counterclockwise triangles
-        - Fix material shader parameter animations going out of sync with other
-          animations when the object using the material is not in view
-        - Fix CPU count functions on Android          
-
-V1.31   - Extensive build system improvements, especially for using Urho3D as
-          a library in an external project.
-        - LuaJIT support.
-        - Improved Lua bindings, Lua coroutine support, automatic loading of
-          compiled Lua scripts (.luc) if they exist.
-        - HDR rendering, 3D textures, height fog and several new post process
-          shaders.
-        - Shader refactoring. Need for XML shader descriptions & ShaderCompiler
-          tool removed.
-        - Reflection / refraction rendering support.
-        - 2D drawable components: StaticSprite2D, AnimatedSprite2D,
-          ParticleEmitter2D.
-        - ToolTip & MessageBox UI elements. UI logic improvements.
-        - Optimized text rendering + dynamic population of font textures for
-          improved batching.
-        - AngelScript DelayedExecute for free functions, and event handling for
-          any script object, not just ScriptInstances
-        - Editor: added grid, toolbar, camera view presets, camera orbit,
-          mouse wheel zoom, multiple viewports and orthographic camera.
-        - Borderless window mode, possibility to change application icon.
-        - SDL GameController support, raw key codes support.
-        - Optimized shadow rendering on mobile devices. Low quality mode
-          avoids dependent texture reads.
-        - HttpRequest class runs in a background thread to avoid blocking.
-        - Compressed package file support using the LZ4 library.
-        - Cone parameters in SoundSource3D for directional attenuation.
-        - Variant GetPtr() safety refactoring. Uses WeakPtr to store RefCounted
-          subclasses. Use GetVoidPtr() to store unsafe arbitrary pointers.
-        - Improved work queue completion events. Work items are now RefCounted
-          to allow persisting them as necessary.
-        - Allow to disable automatic execution of AngelScript & Lua from the 
-          engine console.
-        - Added shader variations, for example ambient occlusion texture and
-          better emissive color support.
-        - Added examples.
-        - Update SDL to 2.0.1
-        - Update AngelScript to 2.28.1.
-        - Update FreeType to 2.5.0.
-        - Fix partial texture updates, both Direct3D9 & OpenGL.
-        - Fix long-standing audio click bug.
-        - Fix kinematic rigidbodies to apply impulses correctly to dynamic
-          bodies.
-        - Plus many more improvements and bugfixes.
-
-V1.3    - Lua scripting support.
-        - Optional build as a single external library, static or dynamic.
-        - Raspberry Pi support.
-        - 64-bit build support.
-        - HTTP client using the Civetweb library.
-        - Enhanced CMake build scripts. Android build also uses CMake.
-          Use out-of-source build on platform that supports it.
-        - Rendering performance optimizations, optional StaticModelGroup
-          component for culling and lighting several objects as one unit.
-        - A set of sample applications implemented in C++, AngelScript and Lua.
-        - Automatic Node/component handle member variable serialization for
-          AngelScript script objects.
-        - New UI theme.
-        - Shadow & stroke effects in Text & Text3D.
-        - Boolean shader uniforms.
-        - Quick menu in the editor.
-        - Material editor and preview in the editor.
-        - Editable attributes for particle emitters.
-        - Components are grouped into categories in the editor.
-        - Update SDL to stable 2.0.0 release.
-        - Several other improvements and bugfixes.
-
-V1.23   - UI editing support in the editor.
-        - Undo/redo in the editor.
-        - Recast/Detour library integration for navigation mesh generation and
-          pathfinding.
-        - Open Asset Import Library update, enables FBX file support.
-        - "Is Enabled" attribute in scene nodes and components for an uniform
-          mechanism to temporarily disable unneeded audiovisual, physics or
-          logic objects.
-        - Script object public variables editing and serialization.
-        - New components: Text3D and Sprite.
-        - UI library functionality improvements.
-        - sRGB texture and framebuffer support.
-        - Switched to GLEW library for OpenGL extension handling.
-        - Vegetation and lightmapping example shaders.
-        - Engine configuration through a parameter map.
-        - Lots of refactoring, code cleanup and bugfixes.
-
-V1.22   - Configurable render path replaces hardcoded forward/prepass/deferred
-          modes. Render path system also used for postprocessing now.
-        - Threaded task priorities; long-running tasks (more than one frame) can
-          coexist with the time-critical tasks.
-        - Possibility to use also RGB normal maps.
-        - CustomGeometry component, which allows geometry to be defined
-          similarly to OpenGL immediate mode.
-        - Elapsed time shader parameter for material animation.
-        - Cubic environment mapping example shaders.
-        - Separate physics collision start & end events.
-        - Visual Studio 2012, Eclipse & Xcode build support.
-        - Many bugfixes, including iOS 6 orientation & shadow mapping bugfixes,
-          skinning on some Android devices.
-
-V1.21   - Bugfixes and code cleanup.
-        - External window support (experimental.)
-        - UI elements refactored to use attributes for serialization.
-        - Animation state editing and animation trigger events.
-        - Scene update time scale can be modified.
-        - Improved the delayed method call system.
-
-V1.2    - Android and iOS support.
-        - Decal rendering.
-        - Terrain rendering.
-        - Joystick input support.
-        - Use SDL library for windowing and input on all platforms.
-        - KTX and PVR image loading (for ETC1 & PVRTC compressed textures.)
-        - Removed need for shader preprocessing; reorganized shaders to be more
-          friendly to base custom shaders on.
-        - Inbuilt geometry shapes in the editor.
-
-V1.16   - Switched to Bullet physics library.
-        - More physics constraint types.
-        - Rendering and networking performance optimizations.
-        - Use Squish library to implement software DXT decompression when not
-          supported in hardware.
-
-V1.15   - New deferred rendering pipeline.
-        - Unicode support.
-        - Live resource reloading in the editor (Windows only so far.)
-        - More accurate frame timing.
-        - Bugfixes to physics jittering and FBO performance issue on Linux.
-
-V1.14   - Object (partial scene) load/save.
-        - Post-processing.
-        - Switched to pugixml library, scene load/save optimizations.
-        - Bugfixes to rendertexture views and component attributes.
-
-V1.13   - Task-based multithreading.
-        - Vertex lighting option.
-        - Forward and light pre-pass rendering pipelines.
-
-V1.12   - Manipulator gizmo and multi-editing in the editor.
-        - Switched to forward rendering exclusively, which is optimized to do
-          more work in the vertex shader.
-        - Zone system refactoring. Objects check the zone they belong to for
-          per-zone light masking, ambient light and fog settings.
-        - Scripting API fixes and improvements.
-
-V1.11   - Bugfixes and performance optimizations.
-        - Added GraphicsTest example from V1.0 (now called TestSceneOld.)
-        - Added fallback mode, which is used if multiple render targets or
-          hardware shadow maps are not available.
-
-V1.1    - Object and scene model refactoring.
-        - Automatic serialization of scene objects via attributes.
-        - Added OpenGL and cross-platform support.
-        - Switched to kNet library for networking.
-
-V1.0    - Original release.