Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMitchell Stokes <mogurijin@gmail.com>2011-07-14 11:03:33 +0400
committerMitchell Stokes <mogurijin@gmail.com>2011-07-14 11:03:33 +0400
commitad08de4c2afda4456585f6e9bb462be1143f9c14 (patch)
tree7393dad9f2c76c6d2e36d485698ba7b2ecb53f11 /source/gameengine/Ketsji/KX_Scene.cpp
parentd838d82151efaa801276db0f0c972b5bbc8f1876 (diff)
BGE Animations: Now animations are only updated based on the set animation speed. This offers a significant performance increase (about 2x fps in my animation stress tests) for cases such as the defaults: 60fps logic and 30fps animations. This means that animations now only have to be updated half the time. I've also added Animations as a profiling category. This is the time spent in Blender's animation code, and not in the BL_ShapeDeformer (the mesh deformation). I'd like the add the deformation too, but right now it's counted in the rasterizer, and I don't see an obviously clean way to have it counted as animation instead. I'll investigate more.
Diffstat (limited to 'source/gameengine/Ketsji/KX_Scene.cpp')
-rw-r--r--source/gameengine/Ketsji/KX_Scene.cpp13
1 files changed, 10 insertions, 3 deletions
diff --git a/source/gameengine/Ketsji/KX_Scene.cpp b/source/gameengine/Ketsji/KX_Scene.cpp
index 27bf5d19b14..a49c1bf4b4c 100644
--- a/source/gameengine/Ketsji/KX_Scene.cpp
+++ b/source/gameengine/Ketsji/KX_Scene.cpp
@@ -1502,13 +1502,15 @@ void KX_Scene::LogicBeginFrame(double curtime)
m_logicmgr->BeginFrame(curtime, 1.0/KX_KetsjiEngine::GetTicRate());
}
-
-
-void KX_Scene::LogicUpdateFrame(double curtime, bool frame)
+void KX_Scene::UpdateAnimations(double curtime)
{
// Update any animations
for (int i=0; i<GetObjectList()->GetCount(); ++i)
((KX_GameObject*)GetObjectList()->GetValue(i))->UpdateActionManager(curtime);
+}
+
+void KX_Scene::LogicUpdateFrame(double curtime, bool frame)
+{
m_logicmgr->UpdateFrame(curtime, frame);
}
@@ -1671,6 +1673,11 @@ double KX_Scene::getSuspendedDelta()
return m_suspendeddelta;
}
+short KX_Scene::GetAnimationFPS()
+{
+ return m_blenderScene->r.frs_sec;
+}
+
#ifdef USE_BULLET
#include "KX_BulletPhysicsController.h"
#endif