Permalink
Browse files

Merge with upstream e2d2f8e388a01cc3c2d2694c808d0d3b465d3763

# Conflicts:
#	.appveyor.yml
#	.bash_helpers.sh
#	.travis.yml
#	CMake/Modules/CheckHost.cmake
#	CMake/Modules/GenerateExportHeader.cmake
#	CMake/Modules/UrhoCommon.cmake
#	CMake/Modules/exportheader.cmake.in
#	CMakeLists.txt
#	Docs/AngelScriptAPI.h
#	Docs/GettingStarted.dox
#	Docs/LuaScriptAPI.dox
#	Docs/Reference.dox
#	Docs/ScriptAPI.dox
#	Docs/Urho3D.dox
#	README.md
#	Rakefile
#	Resources/EditorData/AtomicEditor/eulas/atomic_thirdparty_eula.txt
#	Source/Atomic/Atomic2D/TileMap2D.cpp
#	Source/Atomic/Atomic2D/TileMap2D.h
#	Source/Atomic/Atomic2D/TmxFile2D.cpp
#	Source/Atomic/Atomic2D/TmxFile2D.h
#	Source/Atomic/Core/StringUtils.cpp
#	Source/Atomic/Core/StringUtils.h
#	Source/Atomic/Graphics/Text3D/Text3DFreeType.cpp
#	Source/Atomic/IK/IKEffector.cpp
#	Source/Atomic/IK/IKSolver.cpp
#	Source/Atomic/IK/IKSolver.h
#	Source/Atomic/Navigation/DynamicNavigationMesh.cpp
#	Source/Atomic/Navigation/NavigationMesh.cpp
#	Source/Atomic/Navigation/Obstacle.h
#	Source/Atomic/Resource/Image.cpp
#	Source/Atomic/Resource/Image.h
#	Source/CMakeLists.txt
#	Source/Clang-Tools/CMakeLists.txt
#	Source/Samples/15_Navigation/Navigation.cpp
#	Source/Samples/15_Navigation/Navigation.h
#	Source/Samples/39_CrowdNavigation/CrowdNavigation.cpp
#	Source/Samples/39_CrowdNavigation/CrowdNavigation.h
#	Source/Samples/45_InverseKinematics/InverseKinematics.cpp
#	Source/Samples/47_Typography/Typography.cpp
#	Source/Samples/47_Typography/Typography.h
#	Source/ThirdParty/Lua/CMakeLists.txt
#	Source/ThirdParty/Lua/src/loslib.c
#	Source/ThirdParty/LuaJIT/CMakeLists.txt
#	Source/ThirdParty/LuaJIT/src/host/CMakeLists.txt
#	Source/ThirdParty/toluapp/src/bin/CMakeLists.txt
#	Source/Tools/CMakeLists.txt
#	Source/Tools/PackageTool/CMakeLists.txt
#	Source/Urho3D/.soversion
#	Source/Urho3D/AngelScript/APITemplates.h
#	Source/Urho3D/AngelScript/CoreAPI.cpp
#	Source/Urho3D/AngelScript/GraphicsAPI.cpp
#	Source/Urho3D/AngelScript/IKAPI.cpp
#	Source/Urho3D/AngelScript/MathAPI.cpp
#	Source/Urho3D/AngelScript/NavigationAPI.cpp
#	Source/Urho3D/AngelScript/ResourceAPI.cpp
#	Source/Urho3D/AngelScript/UIAPI.cpp
#	Source/Urho3D/AngelScript/Urho2DAPI.cpp
#	Source/Urho3D/CMakeLists.txt
#	Source/Urho3D/LuaScript/pkgs/Graphics/DebugRenderer.pkg
#	Source/Urho3D/LuaScript/pkgs/Graphics/Terrain.pkg
#	Source/Urho3D/LuaScript/pkgs/IK/IKEffector.pkg
#	Source/Urho3D/LuaScript/pkgs/IK/IKSolver.pkg
#	Source/Urho3D/LuaScript/pkgs/IO/Deserializer.pkg
#	Source/Urho3D/LuaScript/pkgs/IO/File.pkg
#	Source/Urho3D/LuaScript/pkgs/IO/VectorBuffer.pkg
#	Source/Urho3D/LuaScript/pkgs/Math/BoundingBox.pkg
#	Source/Urho3D/LuaScript/pkgs/Math/MathDefs.pkg
#	Source/Urho3D/LuaScript/pkgs/Math/Sphere.pkg
#	Source/Urho3D/LuaScript/pkgs/Navigation/NavigationMesh.pkg
#	Source/Urho3D/LuaScript/pkgs/Resource/Image.pkg
#	Source/Urho3D/LuaScript/pkgs/Scene/Scene.pkg
#	Source/Urho3D/LuaScript/pkgs/UI/UI.pkg
#	Source/Urho3D/Navigation/NavigationEvents.h
#	Source/Urho3D/UI/UI.cpp
#	Source/Urho3D/UI/UI.h
#	SourceAssets/Cylinder.blend
#	bin/ConvertModels.bat
#	bin/Data/LuaScripts/15_Navigation.lua
#	bin/Data/LuaScripts/39_CrowdNavigation.lua
#	bin/Data/LuaScripts/45_InverseKinematics.lua
#	bin/Data/LuaScripts/47_Typography.lua
#	bin/Data/Models/Cylinder.mdl
#	bin/Data/Scripts/15_Navigation.as
#	bin/Data/Scripts/39_CrowdNavigation.as
#	bin/Data/Scripts/45_InverseKinematics.as
#	bin/Data/Scripts/47_Typography.as
#	bin/Data/Scripts/Editor/EditorTerrain.as
#	bin/Editor.bat
#	bin/NinjaSnowWar.bat
#	bin/PBRDemo.bat
#	bin/PBRDemoDeferred.bat
#	bin/PBRDemoDeferredHWDepth.bat
#	cmake_generic.bat
  • Loading branch information...
rokups authored and JoshEngebretson committed Aug 22, 2017
1 parent 7fbdaf8 commit 4abd2f15b3f9218d02e21f49f66b4d3ef82925a4
Showing with 73,295 additions and 5,182 deletions.
  1. +1 −1 Build/Docs/CPlusPlus/Doxyfile
  2. +8 −2 Data/AtomicEditor/Deployment/Android/src/org/libsdl/app/SDLActivity.java
  3. +1 −1 Resources/CoreData/RenderPaths/DeferredHWDepth.xml
  4. +1 −1 Resources/CoreData/RenderPaths/PBRDeferredHWDepth.xml
  5. +1 −1 Resources/CoreData/RenderPaths/PrepassHWDepth.xml
  6. +1 −237 Resources/CoreData/Shaders/GLSL/IBL.glsl
  7. +4 −4 Resources/CoreData/Shaders/GLSL/PBRLitSolid.glsl
  8. +1 −229 Resources/CoreData/Shaders/HLSL/IBL.hlsl
  9. +10 −10 Resources/CoreData/Shaders/HLSL/PBRLitSolid.hlsl
  10. +1 −1 Resources/CoreData/Techniques/PBR/DiffNormalSpecEmissive.xml
  11. +1 −1 Resources/CoreData/Techniques/PBR/DiffNormalSpecEmissiveAlpha.xml
  12. +1 −1 Resources/CoreData/Techniques/PBR/PBRDiff.xml
  13. +1 −1 Resources/CoreData/Techniques/PBR/PBRDiffAlpha.xml
  14. +1 −1 Resources/CoreData/Techniques/PBR/PBRDiffNormal.xml
  15. +1 −1 Resources/CoreData/Techniques/PBR/PBRDiffNormalAlpha.xml
  16. +1 −1 Resources/CoreData/Techniques/PBR/PBRDiffNormalEmissive.xml
  17. +1 −1 Resources/CoreData/Techniques/PBR/PBRDiffNormalEmissiveAlpha.xml
  18. +1 −1 Resources/CoreData/Techniques/PBR/PBRMetallicRoughDiffNormalSpec.xml
  19. +1 −1 Resources/CoreData/Techniques/PBR/PBRMetallicRoughDiffNormalSpecEmissive.xml
  20. +1 −1 Resources/CoreData/Techniques/PBR/PBRMetallicRoughDiffNormalSpecEmissiveAlpha.xml
  21. +1 −1 Resources/CoreData/Techniques/PBR/PBRMetallicRoughDiffSpec.xml
  22. +1 −1 Resources/CoreData/Techniques/PBR/PBRMetallicRoughDiffSpecAlpha.xml
  23. +1 −1 Resources/CoreData/Techniques/PBR/PBRNoTexture.xml
  24. +1 −1 Resources/CoreData/Techniques/PBR/PBRNoTextureAlpha.xml
  25. +24 −22 Source/Atomic/Atomic2D/TileMap2D.cpp
  26. +2 −1 Source/Atomic/Atomic2D/TileMap2D.h
  27. +68 −14 Source/Atomic/Atomic2D/TileMapLayer2D.cpp
  28. +340 −165 Source/Atomic/Atomic2D/TmxFile2D.cpp
  29. +11 −5 Source/Atomic/Atomic2D/TmxFile2D.h
  30. +5 −61 Source/Atomic/Audio/SoundSource3D.cpp
  31. +6 −3 Source/Atomic/Core/Object.cpp
  32. +88 −2 Source/Atomic/Core/StringUtils.cpp
  33. +2 −0 Source/Atomic/Core/StringUtils.h
  34. +63 −19 Source/Atomic/Graphics/DebugRenderer.cpp
  35. +3 −0 Source/Atomic/Graphics/DebugRenderer.h
  36. +1 −0 Source/Atomic/Graphics/Direct3D11/D3D11Graphics.cpp
  37. +1 −0 Source/Atomic/Graphics/Direct3D9/D3D9Graphics.cpp
  38. +9 −1 Source/Atomic/Graphics/OpenGL/OGLGraphics.cpp
  39. +2 −12 Source/Atomic/Graphics/Renderer.cpp
  40. +0 −4 Source/Atomic/Graphics/Renderer.h
  41. +15 −0 Source/Atomic/Graphics/Terrain.cpp
  42. +2 −0 Source/Atomic/Graphics/Terrain.h
  43. +2 −2 Source/Atomic/Graphics/Text3D/Text3DBitmap.cpp
  44. +10 −6 Source/Atomic/Graphics/Text3D/Text3DFontFace.h
  45. +126 −17 Source/Atomic/Graphics/Text3D/Text3DFreeType.cpp
  46. +27 −1 Source/Atomic/Graphics/Text3D/Text3DFreeType.h
  47. +8 −3 Source/Atomic/Graphics/Text3D/Text3DText.cpp
  48. +1 −1 Source/Atomic/IK/IK.cpp
  49. +3 −7 Source/Atomic/IK/IK.h
  50. +8 −6 Source/Atomic/IK/IKConstraint.cpp
  51. +2 −2 Source/Atomic/IK/IKConstraint.h
  52. +88 −56 Source/Atomic/IK/IKEffector.cpp
  53. +41 −23 Source/Atomic/IK/IKEffector.h
  54. +447 −200 Source/Atomic/IK/IKSolver.cpp
  55. +214 −87 Source/Atomic/IK/IKSolver.h
  56. +5 −0 Source/Atomic/IO/Deserializer.cpp
  57. +5 −1 Source/Atomic/IO/Deserializer.h
  58. +1 −1 Source/Atomic/IO/FileSystem.cpp
  59. +1 −1 Source/Atomic/IO/MemoryBuffer.h
  60. +1 −1 Source/Atomic/IO/VectorBuffer.h
  61. +7 −0 Source/Atomic/Math/BoundingBox.cpp
  62. +2 −0 Source/Atomic/Math/BoundingBox.h
  63. +10 −0 Source/Atomic/Math/MathDefs.h
  64. +9 −0 Source/Atomic/Math/Sphere.cpp
  65. +4 −0 Source/Atomic/Math/Sphere.h
  66. +23 −11 Source/Atomic/Navigation/CrowdAgent.cpp
  67. +2 −0 Source/Atomic/Navigation/CrowdAgent.h
  68. +297 −109 Source/Atomic/Navigation/DynamicNavigationMesh.cpp
  69. +23 −1 Source/Atomic/Navigation/DynamicNavigationMesh.h
  70. +22 −0 Source/Atomic/Navigation/NavigationEvents.h
  71. +252 −90 Source/Atomic/Navigation/NavigationMesh.cpp
  72. +27 −2 Source/Atomic/Navigation/NavigationMesh.h
  73. +13 −1 Source/Atomic/Navigation/Obstacle.cpp
  74. +4 −2 Source/Atomic/Navigation/Obstacle.h
  75. +38 −14 Source/Atomic/Physics/CollisionShape.cpp
  76. +10 −0 Source/Atomic/Physics/RigidBody.cpp
  77. +1 −1 Source/Atomic/Physics/RigidBody.h
  78. +4 −4 Source/Atomic/Resource/BackgroundLoader.cpp
  79. +2,475 −2,308 Source/Atomic/Resource/Image.cpp
  80. +252 −250 Source/Atomic/Resource/Image.h
  81. +2 −2 Source/ThirdParty/FreeType/src/gzip/zutil.c
  82. +4 −1 Source/ThirdParty/FreeType/src/gzip/zutil.h
  83. +38 −0 Source/ThirdParty/WebP/AUTHORS
  84. +36 −0 Source/ThirdParty/WebP/CMakeLists.txt
  85. +30 −0 Source/ThirdParty/WebP/COPYING
  86. +23 −0 Source/ThirdParty/WebP/PATENTS
  87. +232 −0 Source/ThirdParty/WebP/src/dec/alpha_dec.c
  88. +54 −0 Source/ThirdParty/WebP/src/dec/alphai_dec.h
  89. +300 −0 Source/ThirdParty/WebP/src/dec/buffer_dec.c
  90. +54 −0 Source/ThirdParty/WebP/src/dec/common_dec.h
  91. +812 −0 Source/ThirdParty/WebP/src/dec/frame_dec.c
  92. +892 −0 Source/ThirdParty/WebP/src/dec/idec_dec.c
  93. +645 −0 Source/ThirdParty/WebP/src/dec/io_dec.c
  94. +110 −0 Source/ThirdParty/WebP/src/dec/quant_dec.c
  95. +528 −0 Source/ThirdParty/WebP/src/dec/tree_dec.c
  96. +721 −0 Source/ThirdParty/WebP/src/dec/vp8_dec.c
  97. +185 −0 Source/ThirdParty/WebP/src/dec/vp8_dec.h
  98. +320 −0 Source/ThirdParty/WebP/src/dec/vp8i_dec.h
  99. +1,673 −0 Source/ThirdParty/WebP/src/dec/vp8l_dec.c
  100. +135 −0 Source/ThirdParty/WebP/src/dec/vp8li_dec.h
  101. +843 −0 Source/ThirdParty/WebP/src/dec/webp_dec.c
  102. +133 −0 Source/ThirdParty/WebP/src/dec/webpi_dec.h
  103. +454 −0 Source/ThirdParty/WebP/src/demux/anim_decode.c
  104. +965 −0 Source/ThirdParty/WebP/src/demux/demux.c
  105. +417 −0 Source/ThirdParty/WebP/src/dsp/alpha_processing.c
  106. +181 −0 Source/ThirdParty/WebP/src/dsp/alpha_processing_mips_dsp_r2.c
  107. +191 −0 Source/ThirdParty/WebP/src/dsp/alpha_processing_neon.c
  108. +285 −0 Source/ThirdParty/WebP/src/dsp/alpha_processing_sse2.c
  109. +92 −0 Source/ThirdParty/WebP/src/dsp/alpha_processing_sse41.c
  110. +194 −0 Source/ThirdParty/WebP/src/dsp/common_sse2.h
  111. +412 −0 Source/ThirdParty/WebP/src/dsp/cost.c
  112. +154 −0 Source/ThirdParty/WebP/src/dsp/cost_mips32.c
  113. +107 −0 Source/ThirdParty/WebP/src/dsp/cost_mips_dsp_r2.c
  114. +119 −0 Source/ThirdParty/WebP/src/dsp/cost_sse2.c
  115. +222 −0 Source/ThirdParty/WebP/src/dsp/cpu.c
  116. +795 −0 Source/ThirdParty/WebP/src/dsp/dec.c
  117. +366 −0 Source/ThirdParty/WebP/src/dsp/dec_clip_tables.c
  118. +587 −0 Source/ThirdParty/WebP/src/dsp/dec_mips32.c
  119. +994 −0 Source/ThirdParty/WebP/src/dsp/dec_mips_dsp_r2.c
  120. +1,020 −0 Source/ThirdParty/WebP/src/dsp/dec_msa.c
  121. +1,639 −0 Source/ThirdParty/WebP/src/dsp/dec_neon.c
  122. +1,231 −0 Source/ThirdParty/WebP/src/dsp/dec_sse2.c
  123. +46 −0 Source/ThirdParty/WebP/src/dsp/dec_sse41.c
  124. +594 −0 Source/ThirdParty/WebP/src/dsp/dsp.h
  125. +797 −0 Source/ThirdParty/WebP/src/dsp/enc.c
  126. +21 −0 Source/ThirdParty/WebP/src/dsp/enc_avx2.c
  127. +672 −0 Source/ThirdParty/WebP/src/dsp/enc_mips32.c
  128. +1,510 −0 Source/ThirdParty/WebP/src/dsp/enc_mips_dsp_r2.c
  129. +895 −0 Source/ThirdParty/WebP/src/dsp/enc_msa.c
  130. +932 −0 Source/ThirdParty/WebP/src/dsp/enc_neon.c
  131. +1,373 −0 Source/ThirdParty/WebP/src/dsp/enc_sse2.c
  132. +339 −0 Source/ThirdParty/WebP/src/dsp/enc_sse41.c
  133. +273 −0 Source/ThirdParty/WebP/src/dsp/filters.c
  134. +395 −0 Source/ThirdParty/WebP/src/dsp/filters_mips_dsp_r2.c
  135. +202 −0 Source/ThirdParty/WebP/src/dsp/filters_msa.c
  136. +327 −0 Source/ThirdParty/WebP/src/dsp/filters_neon.c
  137. +330 −0 Source/ThirdParty/WebP/src/dsp/filters_sse2.c
  138. +663 −0 Source/ThirdParty/WebP/src/dsp/lossless.c
  139. +229 −0 Source/ThirdParty/WebP/src/dsp/lossless.h
  140. +202 −0 Source/ThirdParty/WebP/src/dsp/lossless_common.h
  141. +964 −0 Source/ThirdParty/WebP/src/dsp/lossless_enc.c
  142. +431 −0 Source/ThirdParty/WebP/src/dsp/lossless_enc_mips32.c
  143. +275 −0 Source/ThirdParty/WebP/src/dsp/lossless_enc_mips_dsp_r2.c
  144. +147 −0 Source/ThirdParty/WebP/src/dsp/lossless_enc_msa.c
  145. +143 −0 Source/ThirdParty/WebP/src/dsp/lossless_enc_neon.c
  146. +711 −0 Source/ThirdParty/WebP/src/dsp/lossless_enc_sse2.c
  147. +53 −0 Source/ThirdParty/WebP/src/dsp/lossless_enc_sse41.c
  148. +689 −0 Source/ThirdParty/WebP/src/dsp/lossless_mips_dsp_r2.c
  149. +355 −0 Source/ThirdParty/WebP/src/dsp/lossless_msa.c
  150. +642 −0 Source/ThirdParty/WebP/src/dsp/lossless_neon.c
  151. +706 −0 Source/ThirdParty/WebP/src/dsp/lossless_sse2.c
  152. +200 −0 Source/ThirdParty/WebP/src/dsp/mips_macro.h
  153. +1,392 −0 Source/ThirdParty/WebP/src/dsp/msa_macro.h
  154. +100 −0 Source/ThirdParty/WebP/src/dsp/neon.h
  155. +244 −0 Source/ThirdParty/WebP/src/dsp/rescaler.c
  156. +291 −0 Source/ThirdParty/WebP/src/dsp/rescaler_mips32.c
  157. +314 −0 Source/ThirdParty/WebP/src/dsp/rescaler_mips_dsp_r2.c
  158. +444 −0 Source/ThirdParty/WebP/src/dsp/rescaler_msa.c
  159. +186 −0 Source/ThirdParty/WebP/src/dsp/rescaler_neon.c
  160. +375 −0 Source/ThirdParty/WebP/src/dsp/rescaler_sse2.c
  161. +151 −0 Source/ThirdParty/WebP/src/dsp/ssim.c
  162. +154 −0 Source/ThirdParty/WebP/src/dsp/ssim_sse2.c
  163. +266 −0 Source/ThirdParty/WebP/src/dsp/upsampling.c
  164. +282 −0 Source/ThirdParty/WebP/src/dsp/upsampling_mips_dsp_r2.c
  165. +678 −0 Source/ThirdParty/WebP/src/dsp/upsampling_msa.c
  166. +281 −0 Source/ThirdParty/WebP/src/dsp/upsampling_neon.c
  167. +260 −0 Source/ThirdParty/WebP/src/dsp/upsampling_sse2.c
  168. +346 −0 Source/ThirdParty/WebP/src/dsp/yuv.c
  169. +238 −0 Source/ThirdParty/WebP/src/dsp/yuv.h
  170. +103 −0 Source/ThirdParty/WebP/src/dsp/yuv_mips32.c
  171. +134 −0 Source/ThirdParty/WebP/src/dsp/yuv_mips_dsp_r2.c
  172. +289 −0 Source/ThirdParty/WebP/src/dsp/yuv_neon.c
  173. +863 −0 Source/ThirdParty/WebP/src/dsp/yuv_sse2.c
  174. +433 −0 Source/ThirdParty/WebP/src/enc/alpha_enc.c
  175. +533 −0 Source/ThirdParty/WebP/src/enc/analysis_enc.c
  176. +790 −0 Source/ThirdParty/WebP/src/enc/backward_references_cost_enc.c
  177. +913 −0 Source/ThirdParty/WebP/src/enc/backward_references_enc.c
  178. +238 −0 Source/ThirdParty/WebP/src/enc/backward_references_enc.h
  179. +152 −0 Source/ThirdParty/WebP/src/enc/config_enc.c
  180. +342 −0 Source/ThirdParty/WebP/src/enc/cost_enc.c
  181. +82 −0 Source/ThirdParty/WebP/src/enc/cost_enc.h
  182. +455 −0 Source/ThirdParty/WebP/src/enc/delta_palettization_enc.c
  183. +25 −0 Source/ThirdParty/WebP/src/enc/delta_palettization_enc.h
  184. +219 −0 Source/ThirdParty/WebP/src/enc/filter_enc.c
  185. +854 −0 Source/ThirdParty/WebP/src/enc/frame_enc.c
  186. +1,043 −0 Source/ThirdParty/WebP/src/enc/histogram_enc.c
  187. +125 −0 Source/ThirdParty/WebP/src/enc/histogram_enc.h
  188. +453 −0 Source/ThirdParty/WebP/src/enc/iterator_enc.c
  189. +142 −0 Source/ThirdParty/WebP/src/enc/near_lossless_enc.c
  190. +1,182 −0 Source/ThirdParty/WebP/src/enc/picture_csp_enc.c
  191. +293 −0 Source/ThirdParty/WebP/src/enc/picture_enc.c
  192. +213 −0 Source/ThirdParty/WebP/src/enc/picture_psnr_enc.c
  193. +264 −0 Source/ThirdParty/WebP/src/enc/picture_rescale_enc.c
  194. +273 −0 Source/ThirdParty/WebP/src/enc/picture_tools_enc.c
  195. +752 −0 Source/ThirdParty/WebP/src/enc/predictor_enc.c
  196. +1,283 −0 Source/ThirdParty/WebP/src/enc/quant_enc.c
  197. +382 −0 Source/ThirdParty/WebP/src/enc/syntax_enc.c
  198. +295 −0 Source/ThirdParty/WebP/src/enc/token_enc.c
  199. +504 −0 Source/ThirdParty/WebP/src/enc/tree_enc.c
  200. +521 −0 Source/ThirdParty/WebP/src/enc/vp8i_enc.h
  201. +1,963 −0 Source/ThirdParty/WebP/src/enc/vp8l_enc.c
  202. +102 −0 Source/ThirdParty/WebP/src/enc/vp8li_enc.h
  203. +398 −0 Source/ThirdParty/WebP/src/enc/webp_enc.c
  204. +1,580 −0 Source/ThirdParty/WebP/src/mux/anim_encode.c
  205. +43 −0 Source/ThirdParty/WebP/src/mux/animi.h
  206. +657 −0 Source/ThirdParty/WebP/src/mux/muxedit.c
  207. +230 −0 Source/ThirdParty/WebP/src/mux/muxi.h
  208. +551 −0 Source/ThirdParty/WebP/src/mux/muxinternal.c
  209. +539 −0 Source/ThirdParty/WebP/src/mux/muxread.c
  210. +190 −0 Source/ThirdParty/WebP/src/utils/bit_reader_inl_utils.h
  211. +222 −0 Source/ThirdParty/WebP/src/utils/bit_reader_utils.c
  212. +175 −0 Source/ThirdParty/WebP/src/utils/bit_reader_utils.h
  213. +346 −0 Source/ThirdParty/WebP/src/utils/bit_writer_utils.c
  214. +154 −0 Source/ThirdParty/WebP/src/utils/bit_writer_utils.h
  215. +49 −0 Source/ThirdParty/WebP/src/utils/color_cache_utils.c
  216. +87 −0 Source/ThirdParty/WebP/src/utils/color_cache_utils.h
  217. +100 −0 Source/ThirdParty/WebP/src/utils/endian_inl_utils.h
  218. +76 −0 Source/ThirdParty/WebP/src/utils/filters_utils.c
  219. +32 −0 Source/ThirdParty/WebP/src/utils/filters_utils.h
  220. +417 −0 Source/ThirdParty/WebP/src/utils/huffman_encode_utils.c
  221. +60 −0 Source/ThirdParty/WebP/src/utils/huffman_encode_utils.h
  222. +223 −0 Source/ThirdParty/WebP/src/utils/huffman_utils.c
  223. +88 −0 Source/ThirdParty/WebP/src/utils/huffman_utils.h
  224. +285 −0 Source/ThirdParty/WebP/src/utils/quant_levels_dec_utils.c
  225. +35 −0 Source/ThirdParty/WebP/src/utils/quant_levels_dec_utils.h
  226. +140 −0 Source/ThirdParty/WebP/src/utils/quant_levels_utils.c
  227. +36 −0 Source/ThirdParty/WebP/src/utils/quant_levels_utils.h
  228. +43 −0 Source/ThirdParty/WebP/src/utils/random_utils.c
  229. +63 −0 Source/ThirdParty/WebP/src/utils/random_utils.h
  230. +146 −0 Source/ThirdParty/WebP/src/utils/rescaler_utils.c
  231. +101 −0 Source/ThirdParty/WebP/src/utils/rescaler_utils.h
  232. +356 −0 Source/ThirdParty/WebP/src/utils/thread_utils.c
  233. +93 −0 Source/ThirdParty/WebP/src/utils/thread_utils.h
  234. +330 −0 Source/ThirdParty/WebP/src/utils/utils.c
  235. +178 −0 Source/ThirdParty/WebP/src/utils/utils.h
  236. +493 −0 Source/ThirdParty/WebP/src/webp/decode.h
  237. +358 −0 Source/ThirdParty/WebP/src/webp/demux.h
  238. +546 −0 Source/ThirdParty/WebP/src/webp/encode.h
  239. +87 −0 Source/ThirdParty/WebP/src/webp/format_constants.h
  240. +530 −0 Source/ThirdParty/WebP/src/webp/mux.h
  241. +98 −0 Source/ThirdParty/WebP/src/webp/mux_types.h
  242. +52 −0 Source/ThirdParty/WebP/src/webp/types.h
  243. +34 −5 Source/ThirdParty/ik/CMakeLists.txt
  244. +21 −21 Source/ThirdParty/ik/include/ik/bst_vector.h
  245. +132 −0 Source/ThirdParty/ik/include/ik/chain_tree.h
  246. +17 −17 Source/ThirdParty/ik/include/ik/config.h.in
  247. +58 −0 Source/ThirdParty/ik/include/ik/constraint.h
  248. +6 −10 Source/ThirdParty/ik/include/ik/effector.h
  249. +38 −66 Source/ThirdParty/ik/include/ik/export.h.in
  250. +3 −3 Source/ThirdParty/ik/include/ik/log.h
  251. +2 −2 Source/ThirdParty/ik/include/ik/memory.h
  252. +76 −30 Source/ThirdParty/ik/include/ik/node.h
  253. +23 −23 Source/ThirdParty/ik/include/ik/ordered_vector.h
  254. +63 −85 Source/ThirdParty/ik/include/ik/solver.h
  255. +29 −0 Source/ThirdParty/ik/include/ik/solver_1bone.h
  256. +29 −0 Source/ThirdParty/ik/include/ik/solver_2bone.h
  257. +3 −16 Source/ThirdParty/ik/include/ik/solver_FABRIK.h
  258. +20 −0 Source/ThirdParty/ik/include/ik/solver_MSD.h
  259. +21 −0 Source/ThirdParty/ik/include/ik/types.h
  260. +13 −0 Source/ThirdParty/ik/include/ik/util.h
  261. +11 −0 Source/ThirdParty/ik/include/ik/vec3.h
  262. +52 −52 Source/ThirdParty/ik/src/bst_vector.c
  263. +550 −0 Source/ThirdParty/ik/src/chain_tree.c
  264. +94 −0 Source/ThirdParty/ik/src/constraint.c
  265. +5 −15 Source/ThirdParty/ik/src/effector.c
  266. +16 −14 Source/ThirdParty/ik/src/log.c
  267. +40 −40 Source/ThirdParty/ik/src/memory.c
  268. +113 −32 Source/ThirdParty/ik/src/node.c
  269. +47 −47 Source/ThirdParty/ik/src/ordered_vector.c
  270. +23 −19 Source/ThirdParty/ik/src/quat.c
  271. +169 −49 Source/ThirdParty/ik/src/solver.c
  272. +76 −0 Source/ThirdParty/ik/src/solver_1bone.c
  273. +138 −0 Source/ThirdParty/ik/src/solver_2bone.c
  274. +335 −600 Source/ThirdParty/ik/src/solver_FABRIK.c
  275. +24 −0 Source/ThirdParty/ik/src/solver_MSD.c
  276. +98 −0 Source/ThirdParty/ik/src/util.c
  277. +50 −14 Source/ThirdParty/ik/src/vec3.c
  278. +1 −1 Source/Tools/AssetImporter/AssetImporter.cpp
@@ -835,7 +835,7 @@ EXAMPLE_RECURSIVE = NO
# that contain images that are to be included in the documentation (see the
# \image command).
IMAGE_PATH =
IMAGE_PATH = @CMAKE_CURRENT_SOURCE_DIR@/images
# The INPUT_FILTER tag can be used to specify a program that doxygen should
# invoke to filter for each input file. Doxygen will invoke the filter program
@@ -64,6 +64,8 @@
// Urho3D: flag to load the .so and a new method load them
private static boolean mIsSharedLibraryLoaded = false;
// Urho3D: Hash of activity object that owns state, kept around in order to prevent dying activity overwriting state it no longer owns.
private static int mStateOwner = 0;
protected boolean onLoadLibrary(ArrayList<String> libraryNames) {
for (final String name : libraryNames) {
@@ -98,6 +100,7 @@ public static void initialize() {
mIsPaused = false;
mIsSurfaceReady = false;
mHasFocus = true;
mStateOwner = 0;
}
// Setup
@@ -109,6 +112,7 @@ protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDLActivity.initialize();
mStateOwner = hashCode();
// So we can call stuff from static callbacks
mSingleton = this;
@@ -261,7 +265,8 @@ protected void onDestroy() {
if (!SDLActivity.mIsSharedLibraryLoaded) { // Urho3D
super.onDestroy();
// Reset everything in case the user re opens the app
SDLActivity.initialize();
if (mStateOwner == hashCode())
SDLActivity.initialize();
return;
}
@@ -283,7 +288,8 @@ protected void onDestroy() {
super.onDestroy();
// Reset everything in case the user re opens the app
SDLActivity.initialize();
if (mStateOwner == hashCode())
SDLActivity.initialize();
}
@Override
@@ -1,7 +1,7 @@
<renderpath>
<rendertarget name="albedo" sizedivisor="1 1" format="rgba" />
<rendertarget name="normal" sizedivisor="1 1" format="rgba" />
<rendertarget name="depth" sizedivisor="1 1" format="readabledepth" />
<rendertarget name="depth" sizedivisor="1 1" format="readabledepth" persistent="true" />
<command type="clear" color="fog" depth="1.0" stencil="0" depthstencil="depth" />
<command type="clear" color="0 0 0 0" output="albedo" depthstencil="depth" />
<command type="scenepass" pass="deferred" marktostencil="true" vertexlights="true" metadata="gbuffer" depthstencil="depth">
@@ -2,7 +2,7 @@
<rendertarget name="specular" sizedivisor="1 1" format="rgba16f" />
<rendertarget name="albedo" sizedivisor="1 1" format="rgba16f" />
<rendertarget name="normal" sizedivisor="1 1" format="rgba16f" />
<rendertarget name="depth" sizedivisor="1 1" format="readabledepth" />
<rendertarget name="depth" sizedivisor="1 1" format="readabledepth" persistent="true" />
<command type="clear" color="0 0 0 0" depth="1.0" stencil="0" depthstencil="depth" />
<command type="clear" color="0 0 0 0" output="albedo" depthstencil="depth"/>
<command type="clear" color="0 0 0 0" output="specular" depthstencil="depth" />
@@ -1,7 +1,7 @@
<renderpath>
<rendertarget name="light" sizedivisor="1 1" format="rgba" />
<rendertarget name="normal" sizedivisor="1 1" format="rgba" />
<rendertarget name="depth" sizedivisor="1 1" format="readabledepth" />
<rendertarget name="depth" sizedivisor="1 1" format="readabledepth" persistent="true" />
<command type="clear" color="fog" depth="1.0" stencil="0" depthstencil="depth" />
<command type="scenepass" pass="prepass" marktostencil="true" metadata="gbuffer" output="normal" depthstencil="depth" />
<command type="clear" color="0 0 0 0" output="light" depthstencil="depth" />
@@ -1,241 +1,6 @@
#line 10001
#ifdef COMPILEPS
//
// Legacy Importance Sampled IBL
//
// vec3 ImportanceSampleSimple(in vec2 Xi, in float roughness, in vec3 T, in vec3 B, in vec3 N)
// {
// float a = roughness * roughness;
// mat3 tbn = mat3(T, B, N);
// #ifdef IBLFAST
// const float blurFactor = 0.0;
// #else
// const float blurFactor = 5.0;
// #endif
// vec2 xx = Xi.xy * blurFactor;
// xx = xx - 1.0 * trunc(xx/1.0); // hlsl style modulo
// vec3 Xi3 = mix(vec3(0,0,1), normalize(vec3(xx, 1.0)), a);
// vec3 XiWS = tbn * Xi3;
// return normalize(N + XiWS);
// }
// // Karis '13
// vec3 ImportanceSampleGGX(in vec2 Xi, in float roughness, in vec3 T, in vec3 B, in vec3 N)
// {
// float a = roughness * roughness;
// float Phi = 2.0 * M_PI * Xi.x;
// float CosTheta = sqrt((1.0 - Xi.y) / (1.0 + (a*a - 1.0) * Xi.y));
// float SinTheta = sqrt(1.0 - CosTheta * CosTheta);
// vec3 H = vec3(0,0,0);
// H.x = SinTheta * cos(Phi);
// H.y = SinTheta * sin(Phi);
// H.z = CosTheta;
// vec3 UpVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);
// vec3 TangentX = normalize(cross(UpVector, N));
// vec3 TangentY = cross(N, TangentX);
// // Tangent to world space
// return TangentX * H.x + TangentY * H.y + N * H.z;
// }
// #ifdef IBLFAST
// #define IMPORTANCE_SAMPLES 1
// #else
// #define IMPORTANCE_SAMPLES 4
// #endif
// #define IMPORTANCE_KERNEL_SIZE 16
// vec2 IMPORTANCE_KERNEL[IMPORTANCE_KERNEL_SIZE] = vec2[] (
// vec2(-0.0780436, 0.0558389),
// vec2(0.034318, -0.0635879),
// vec2(0.00230821, 0.0807279),
// vec2(0.0124638, 0.117585),
// vec2(0.093943, -0.0944602),
// vec2(0.139348, -0.109816),
// vec2(-0.181872, -0.129649),
// vec2(0.240066, -0.0494057),
// vec2(0.115965, -0.0374714),
// vec2(-0.294819, -0.100726),
// vec2(-0.149652, 0.37459),
// vec2(0.261695, -0.292813),
// vec2(-0.37944, -0.425145),
// vec2(0.628994, -0.189387),
// vec2(-0.331257, -0.646864),
// vec2(-0.467004, 0.439687)
// );
// float GetMipFromRougness(float roughness)
// {
// float smoothness = 1.0 - roughness;
// return (1.0 - smoothness * smoothness) * 10.0;
// }
// /// Perform importance sampling
// /// reflectVec: calculated vector of reflection
// /// wsNormal: world-space normal of the surface
// /// toCamera: direction from the pixel to the camera
// /// specular: specular color
// /// roughness: surface roughness
// /// reflectionCubeColor: output color for diffuse
// // Implementation based on Epics 2013 course notes
// vec3 ImportanceSampling(in vec3 reflectVec, in vec3 tangent, in vec3 bitangent, in vec3 wsNormal, in vec3 toCamera, in vec3 diffColor, in vec3 specColor, in float roughness, inout vec3 reflectionCubeColor)
// {
// reflectionCubeColor = vec3(1,1,1);
// vec3 reflectSpec = normalize(GetSpecularDominantDir(wsNormal, reflectVec, roughness));
// vec3 V = normalize(-toCamera);
// vec3 N = normalize(wsNormal);
// float ndv = clamp(abs(dot(N, V)), 0.0, 1.0);
// float specMipLevel = GetMipFromRougness(roughness);
// vec3 accumulatedColor = vec3(0,0,0);
// for (int i = 0; i < IMPORTANCE_SAMPLES; ++i)
// {
// vec3 kd = vec3(1,1,1);
// vec3 diffuseFactor = vec3(0,0,0);
// vec3 specularFactor = vec3(0,0,0);
// {
// // Diffuse IBL
// const float rough = 1.0;
// const float mipLevel = 9.0;
// vec3 H = ImportanceSampleSimple(IMPORTANCE_KERNEL[i], rough, tangent, bitangent, N);
// vec3 L = 2.0 * dot( V, H ) * H - V;
// float vdh = clamp(abs(dot(V, H)), 0.0, 1.0);
// float ndh = clamp(abs(dot(N, H)), 0.0, 1.0);
// float ndl = clamp(abs(dot(N, L)), 0.0, 1.0);
// vec3 sampledColor = textureLod(sZoneCubeMap, L, mipLevel).rgb;
// vec3 diffuseTerm = Diffuse(diffColor, rough, ndv, ndl, vdh);
// vec3 lightTerm = sampledColor;
// diffuseFactor = lightTerm * diffuseTerm;
// }
// {
// // Specular IBL
// float rough = roughness;
// float mipLevel = specMipLevel;
// vec3 H = ImportanceSampleSimple(IMPORTANCE_KERNEL[i], rough, tangent, bitangent, N);
// vec3 L = 2.0 * dot( V, H ) * H - V;
// vec3 sampledColor = textureLod(sZoneCubeMap, L, mipLevel).rgb;
// float vdh = clamp(abs(dot(V, H)), 0.0, 1.0);
// float ndh = clamp(abs(dot(N, H)), 0.0, 1.0);
// float ndl = clamp(abs(dot(N, L)), 0.0, 1.0);
// vec3 fresnelTerm = Fresnel(specColor, vdh);
// float distTerm = 1.0; // Optimization, this term is mathematically cancelled out -- Distribution(ndh, roughness);
// float visTerm = Visibility(ndl, ndv, rough);
// vec3 lightTerm = sampledColor * ndl;
// float pdf = ndl > 0.05 ? ImportanceSamplePDF(distTerm, ndh, vdh) : 4.0; // reduce artifacts at extreme grazing angles
// vec3 specularTerm = SpecularBRDF(distTerm, fresnelTerm, visTerm, ndl, ndv);
// // energy conservation:
// // Specular conservation:
// specularFactor = lightTerm * specularTerm / pdf;
// specularFactor = max(
// clamp(normalize(specularFactor) * (length(sampledColor * specColor)), 0.0, 1.0),
// specularFactor
// );
// // Diffuse conservation:
// //kd = (sampledColor * specColor)/specularFactor; //energy conservation
// kd = 1.0 - specularFactor;
// }
// accumulatedColor += specularFactor + diffuseFactor * kd;
// }
// return (accumulatedColor / IMPORTANCE_SAMPLES);
// }
// vec3 ImportanceSamplingSimple(in vec3 reflectVec, in vec3 tangent, in vec3 bitangent, in vec3 wsNormal, in vec3 toCamera, in vec3 diffColor, in vec3 specColor, in float roughness, inout vec3 reflectionCubeColor)
// {
// reflectionCubeColor = vec3(1,1,1);
// reflectVec = normalize(GetSpecularDominantDir(wsNormal, reflectVec, roughness));
// vec3 Hn = normalize(-toCamera + wsNormal);
// float ndv = clamp(dot(-toCamera, wsNormal), 0.0, 1.0);
// float vdh = clamp(dot(-toCamera, Hn), 0.0, 1.0);
// float ndh = clamp(dot(wsNormal, Hn), 0.0, 1.0);
// vec3 accumulatedColor = vec3(0,0,0);
// for (int i = 0; i < IMPORTANCE_SAMPLES; ++i)
// {
// vec3 kd = vec3(1,1,1);
// vec3 diffuseFactor = vec3(0,0,0);
// vec3 specularFactor = vec3(0,0,0);
// {
// // Diffuse IBL
// const float rough = 1.0;
// const float mipLevel = 9.0;
// vec3 perturb = ImportanceSampleGGX(IMPORTANCE_KERNEL[i].xy, rough, tangent, bitangent, wsNormal);
// vec3 sampleVec = wsNormal + perturb; //perturb by the sample vector
// vec3 sampledColor = textureLod(sZoneCubeMap, sampleVec, mipLevel).rgb;
// float ndl = clamp(dot(sampleVec, wsNormal), 0.0, 1.0);
// vec3 diffuseTerm = Diffuse(diffColor, rough, ndv, ndl, vdh);
// vec3 lightTerm = sampledColor;
// diffuseFactor = lightTerm * diffuseTerm;
// }
// {
// // Specular IBL
// float rough = roughness;
// float mipLevel = GetMipFromRougness(rough);
// vec3 perturb = ImportanceSampleGGX(IMPORTANCE_KERNEL[i].xy, rough, tangent, bitangent, reflectVec);
// vec3 sampleVec = reflectVec + perturb; //perturb by the sample vector
// vec3 sampledColor = textureCube(sZoneCubeMap, sampleVec, mipLevel).rgb;
// float ndl = clamp(dot(sampleVec, wsNormal), 0.0, 1.0);
// vec3 fresnelTerm = SchlickFresnel(specColor, ndh) ;
// float distTerm = 1.0; //Optimization, this term is mathematically cancelled out //Distribution(ndh, roughness);
// float visTerm = SmithGGXVisibility(ndl, ndv, rough);
// vec3 lightTerm = sampledColor * ndl;
// float pdf = 1.0; //ImportanceSamplePDF(distTerm, ndh, vdh);
// specularFactor = lightTerm * SpecularBRDF(distTerm, fresnelTerm, visTerm, ndl, ndv) / pdf;
// specularFactor *= pdf * ndv * (4.0 * ndl * ndv); // hacks
// kd = (1.0 - clamp(specularFactor, 0.0, 1.0)); //energy conservation
// }
// accumulatedColor += specularFactor + diffuseFactor * kd;
// }
// return accumulatedColor / IMPORTANCE_SAMPLES;
// }
/// Determine reflection vector based on surface roughness, rougher uses closer to the normal and smoother uses closer to the reflection vector
/// normal: surface normal
/// reflection: vector of reflection off of the surface
/// roughness: surface roughness
// vec3 GetSpecularDominantDir(vec3 normal, vec3 reflection, float roughness)
// {
// float smoothness = 1.0 - roughness;
// float lerpFactor = smoothness * (sqrt(smoothness) + roughness);
// return mix(normal, reflection, lerpFactor);
// }
float GetMipFromRoughness(float roughness)
{
return (roughness * 12.0 - pow(roughness, 6.0) * 1.5);
@@ -270,7 +35,7 @@
/// toCamera: normalized direction from surface point to camera
/// roughness: surface roughness
/// ambientOcclusion: ambient occlusion
vec3 ImageBasedLighting(vec3 reflectVec, vec3 tangent, vec3 bitangent, vec3 wsNormal, vec3 toCamera, vec3 diffColor, vec3 specColor, float roughness, inout vec3 reflectionCubeColor)
vec3 ImageBasedLighting(vec3 reflectVec, vec3 wsNormal, vec3 toCamera, vec3 diffColor, vec3 specColor, float roughness, inout vec3 reflectionCubeColor)
{
roughness = max(roughness, 0.08);
reflectVec = GetSpecularDominantDir(wsNormal, reflectVec, roughness);
@@ -307,6 +72,5 @@
vec3 environmentDiffuse = EnvBRDFApprox(diffColor, 1.0, ndv);
return (hdrCube * environmentSpecular + hdrCubeD * environmentDiffuse) * brightness;
//return ImportanceSampling(reflectVec, tangent, bitangent, wsNormal, toCamera, diffColor, specColor, roughness, reflectionCubeColor);
}
#endif
@@ -9,7 +9,7 @@
#include "IBL.glsl"
#line 30010
#if defined(NORMALMAP) || defined(IBL)
#if defined(NORMALMAP)
varying vec4 vTexCoord;
varying vec4 vTangent;
#else
@@ -57,7 +57,7 @@ void VS()
vColor = iColor;
#endif
#if defined(NORMALMAP) || defined(DIRBILLBOARD) || defined(IBL)
#if defined(NORMALMAP) || defined(DIRBILLBOARD)
vec4 tangent = GetWorldTangent(modelMatrix);
vec3 bitangent = cross(tangent.xyz, vNormal) * tangent.w;
vTexCoord = vec4(GetTexCoord(iTexCoord), bitangent.xy);
@@ -145,7 +145,7 @@ void PS()
diffColor.rgb = diffColor.rgb - diffColor.rgb * metalness;
// Get normal
#if defined(NORMALMAP) || defined(DIRBILLBOARD) || defined(IBL)
#if defined(NORMALMAP) || defined(DIRBILLBOARD)
vec3 tangent = vTangent.xyz;
vec3 bitangent = vec3(vTexCoord.zw, vTangent.w);
mat3 tbn = mat3(tangent, bitangent, vNormal);
@@ -239,7 +239,7 @@ void PS()
vec3 cubeColor = vVertexLight.rgb;
#ifdef IBL
vec3 iblColor = ImageBasedLighting(reflection, tangent, bitangent, normal, toCamera, diffColor.rgb, specColor.rgb, roughness, cubeColor);
vec3 iblColor = ImageBasedLighting(reflection, normal, toCamera, diffColor.rgb, specColor.rgb, roughness, cubeColor);
float gamma = 0.0;
finalColor.rgb += iblColor;
#endif
Oops, something went wrong.

0 comments on commit 4abd2f1

Please sign in to comment.