Commit Graph

9886 Commits

Author SHA1 Message Date
aster2013
a1105f7d38 Minor refactor, add comment to type info. 2015-10-12 10:31:38 +08:00
Lasse Öörni
04dba029ed Clarifications for third party library use in the contribution checklist. 2015-10-11 20:14:01 +03:00
Jukka Jylänki
bf9111b862 Make Jacks not walk in synchronized lockstep timing in 06_SkeletalAnimation sample. 2015-10-11 19:05:51 +03:00
aster2013
3a948899a7 Add type info, remove BASEOBJECT macro, now user can use type info check object type. for example:
Button::IsTypeOf<UIElement>() is ture, Button::IsTypeOf<BorderImage>() is ture, Button::IsTypeOf<CheckBox>() is false.
2015-10-11 23:26:29 +08:00
aster2013
6bd1d77634 Add baseTypeName argument to OBJECT macro. 2015-10-11 22:17:55 +08:00
Yao Wei Tjong 姚伟忠
08e0b3bd62 Switch off SSE when targeting iOS/iPhoneSimulator as well. 2015-10-11 12:54:19 +08:00
Yao Wei Tjong 姚伟忠
c44ff392df Minor clean up to remove redundant linker flag.
[ci skip]
2015-10-11 09:52:00 +08:00
Lasse Öörni
1a317e63ce Actually allow to enable the threading option on Emscripten platform. Define the required compiler & linker flag when enabled. 2015-10-11 01:11:56 +03:00
Jukka Jylänki
3ac2cb6e37 Avoid depending on 64-bit only function _mm_cvtsi128_si64() in Matrix operator == to allow targeting 32-bit as well. 2015-10-11 01:07:01 +03:00
Jukka Jylänki
00be823f71 Update URHO3D_SSE to denote SSE2. 2015-10-11 00:12:13 +03:00
Lasse Öörni
af7ed744f0 URHO3D_THREADING build option. Closes #939. 2015-10-10 23:17:03 +03:00
Jukka Jylänki
0107a0bf75 SSE optimize Urho3D/Math/Matrix3x4.h and Urho3D/Math/Matrix4.h. These yield a ~3% improvement in 06_SkeletalAnimation sample with 2000 Jacks in it. 2015-10-10 21:20:29 +03:00
Lasse Öörni
da81b99ca3 Do not return a resolution list containing 1x1 on Emscripten, rather return empty. Do not check fullscreen mode validity if the resolution list is empty. 2015-10-10 19:29:28 +03:00
Yao Wei Tjong 姚伟忠
ec125f2952 Switch off SSE for 64-bit arm platforms as well.
[ci only: Android, OSX, Coverity]
2015-10-10 23:15:48 +08:00
Lasse Öörni
e6e16b90ed Minor code formatting. Document that we have returned to the old behavior of not notifying dirty node transform if it was already dirty before, and users of the TransformChanged() function should read the node's world transform to ensure continued notifications. 2015-10-10 14:42:29 +03:00
Jukka Jylänki
d168ab9d91 Optimize Node::MarkDirty() implementation by a) relying on the invariant that all children of a dirty node must also be dirty, and that all parents of a clean node must also be clean, b) avoid double-dereferencing Component WeakPtr in listeners, c) use the swap-with-last erase trick to avoid O(n^2) behavior in removing listeners, and d) perform tail call optimization to avoid excessive recursive function calls when marking children dirty. This optimizes the Node::MarkDirty() time in 06_SkeletalAnimation scene with 2000 Jacks from 42.73% down to 16.43%, a net saving of -61.5% less time spent in that call site. Closes #931. 2015-10-10 14:42:28 +03:00
Yao Wei Tjong 姚伟忠
ace1f1155b Avoid hardcoding the conditional list for URHO3D_SSE build option.
Android on Intel Atom will now have this option and defaulted to true.
2015-10-10 19:16:14 +08:00
Yao Wei Tjong 姚伟忠
fde2ad45ac Fix Android and Raspberry-Pi build by always disabling SSE support.
[ci only: RPI, Android]
2015-10-10 17:49:29 +08:00
Yao Wei Tjong 姚伟忠
d05226e448 Only include object/bitcode files when archiving the hard way on Win.
Fix #937.
[ci only: master, Emscripten]
2015-10-10 12:12:34 +08:00
urho3d-travis-ci
2d80a25394 Travis CI: API documentation update at 2015-10-09 22:24:01 UTC.
[ci package]

Commit: 4bdd80775b

Message: Add accelerator keys for reset pos/rot/scale also in editor standard mode. Add reset transform function (Alt-Q).
2015-10-09 22:24:01 +00:00
Lasse Öörni
4bdd80775b Add accelerator keys for reset pos/rot/scale also in editor standard mode. Add reset transform function (Alt-Q). 2015-10-10 01:09:06 +03:00
Lasse Öörni
0e8aafbbb6 Make the Slerp approximation conditional of Emscripten platform to preserve consistency with rest of the math operations. 2015-10-09 23:24:04 +03:00
Lasse Öörni
7287e02278 Expose Node::MarkDirty() to AngelScript for consistency. 2015-10-09 23:12:30 +03:00
Lasse Öörni
f9de34e994 Code formatting. 2015-10-09 22:34:11 +03:00
Lasse Öörni
ed633009c2 Merge remote-tracking branch 'juj/approx_quat_slerp' 2015-10-09 22:29:22 +03:00
Lasse Öörni
e82708d0e0 Merge remote-tracking branch 'juj/ANGLE_instanced_arrays' 2015-10-09 22:29:12 +03:00
Lasse Öörni
b9d753171f Merge remote-tracking branch 'juj/sse_matrix' 2015-10-09 22:28:56 +03:00
Jukka Jylänki
52ef3e92eb Optimize Quaternion::Slerp() to remove the costly trigonometric functions and replace them by approximations instead. The approximations have been profiled to generate a maximum interpolation error of 0.38 degrees (see test Quat_Slerp_precision in MathGeoLib). In native 64bit Windows 8.1 VS2015 builds, testing in 06_SkeletalAnimation sample with 2000 Jacks, the time taken in Quaternion::Slerp() is reduced by -17.4%, and in Emscripten build of the same sample running in Firefox 41, the time taken by Quaternion::Slerp() is reduced by -44.7%. Closes #914. 2015-10-09 21:35:34 +03:00
Jukka Jylänki
af8d27e8b4 Use fast and sub-millisecond-precise Emscripten-specific emscripten_get_now() for timer queries instead of gettimeofday(), which is slower and has only millisecond precision. Closes #916. 2015-10-09 21:34:10 +03:00
Jukka Jylänki
e3ce38bb52 Remove code repetition in Source/Urho3D/Core/Timer.cpp. 2015-10-09 21:34:00 +03:00
Jukka Jylänki
3ad9ba306d SSE optimize matrix-matrix multiplications when URHO3D_SSE is enabled. These constitute 7.82% of 06_SkeletalAnimation sample with 2000 Jacks in it. After SSE optimizations applied, matrix multiplication takes only 2.13% of total time in AMD CodeXL profile. This change also seems to have the effect that in scalar version, VS2015 did not dare to inline Matrix3x4 multiplication in AnimatedModel::UpdateSkinning(), but after SSE, the instruction count is small enough that it happily does so. 2015-10-09 20:36:10 +03:00
Jukka Jylänki
fc0d427557 Add support for GPU hardware instancing on Emscripten. In WebGL 1 it is exposed by the ANGLE_instanced_arrays ( https://www.khronos.org/registry/webgl/extensions/ANGLE_instanced_arrays/ ) extension, and in WebGL 2, it is enabled in core. 2015-10-09 18:58:42 +03:00
Lasse Öörni
2cc066d709 Update Bullet to 2.83.6. Thanks to Jukka for the initial work & Emscripten fix. Closes #929. 2015-10-09 16:52:51 +03:00
urho3d-travis-ci
0cefd559a7 Travis CI: API documentation update at 2015-10-08 19:32:15 UTC.
[ci package]

Commit: 7db65a8952

Message: Added possibility to set time position of attribute or object animation manually. SetAnimationEnabled(false) should be used in that case to disable auto update. Closes #926. Added RemoveObjectAnimation() and RemoveAttributeAnimation() to Animatable. Closes #928. Fixed attribute animations in hierarchy (e.g. in components) not getting removed when a null object animation is assigned.
2015-10-08 19:32:15 +00:00
Lasse Öörni
7db65a8952 Added possibility to set time position of attribute or object animation manually. SetAnimationEnabled(false) should be used in that case to disable auto update. Closes #926. Added RemoveObjectAnimation() and RemoveAttributeAnimation() to Animatable. Closes #928. Fixed attribute animations in hierarchy (e.g. in components) not getting removed when a null object animation is assigned. 2015-10-08 22:18:06 +03:00
urho3d-travis-ci
bef4de0bc1 Travis CI: API documentation update at 2015-10-08 12:09:46 UTC.
[ci package]

Commit: 730388c0ce

Message: Fixed SplinePath AngelScript bindings and added documentation for it.
2015-10-08 12:09:46 +00:00
Mike3D
730388c0ce Fixed SplinePath AngelScript bindings and added documentation for it. 2015-10-08 14:00:44 +02:00
aster2013
1ab328db34 Only apply world transform for active and awake rigid body. 2015-10-08 18:10:01 +08:00
aster2013
67a3b10e94 Remove half size offset in D3D mode in Sprite2D::GetDrawRectangle. Fix #927 2015-10-08 13:57:59 +08:00
Lasse Öörni
2a223949aa Optionally move model's initial bone positions to bind pose (-bp argument). 2015-10-06 23:15:37 +03:00
Yao Wei Tjong 姚伟忠
e1341f7261 Replace the usage of Emscripten define and include to follow its norm.
Close #921.
[ci only: Emscripten]
2015-10-06 17:42:15 +08:00
Yao Wei Tjong 姚伟忠
01cae9de6a Switch off the sound support for most of the sample apps by default.
Close #924.
[ci package]
2015-10-06 16:58:02 +08:00
Lasse Öörni
b6ff82571a Remove glEnable & glDisable calls related to GL texture types, as they're not needed with GLSL shaders, which Urho3D uses always. Ensure that SetTextureForUpdate() also correctly unbinds the old texture type if it changes in the unit. Closes #922. 2015-10-06 11:35:46 +03:00
Lasse Öörni
2ac9f90e32 Added contributor credit. 2015-10-06 10:51:44 +03:00
Lasse Öörni
9fcf88eb2c Merge pull request #923 from juj/webgl_etc1_pvrtc
Add support for detecting ETC1 and PVRTC extensions in Emscripten/WebGL.
2015-10-06 10:38:50 +03:00
Yao Wei Tjong 姚伟忠
9b041c061a Add warning to user on Windows host system without MKLINK privilege.
[ci skip]
2015-10-06 12:15:02 +08:00
Yao Wei Tjong 姚伟忠
5961b7f2d6 Always use file symlinks for dummy custom library targets.
So that when in fallback mode, the post-build step will use copy_if_different for each individual file to avoid unnecessary file copying and triggering subsequent dependency to rebuild. Close #913.
2015-10-06 11:40:36 +08:00
Jukka Jylänki
78514da22e Add support for detecting ETC1 and PVRTC extensions in Emscripten/WebGL. 2015-10-05 20:22:15 -07:00
Lasse Öörni
e6416070f2 Force loading of the space glyph even if the font's charcode listing doesn't mention it. 2015-10-05 20:38:53 +03:00
Lasse Öörni
7b9692cbfb Disable frame limiter Sleep() on Emscripten builds. Closes #915. 2015-10-05 19:29:33 +03:00