mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-04-29 16:25:42 +00:00
Integrates components into the update and render loop.
This commit is contained in:
parent
fa78a2f354
commit
b3b50abd9b
3 changed files with 46 additions and 1 deletions
|
|
@ -27,6 +27,9 @@
|
||||||
#include "platform/profiler.h"
|
#include "platform/profiler.h"
|
||||||
#include "console/consoleTypes.h"
|
#include "console/consoleTypes.h"
|
||||||
|
|
||||||
|
#include "T3D/Components/coreInterfaces.h"
|
||||||
|
|
||||||
|
#include "T3D/Components/Component.h"
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
|
|
||||||
ProcessObject::ProcessObject()
|
ProcessObject::ProcessObject()
|
||||||
|
|
@ -268,6 +271,11 @@ void ProcessList::advanceObjects()
|
||||||
onTickObject(pobj);
|
onTickObject(pobj);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (U32 i = 0; i < UpdateInterface::all.size(); i++)
|
||||||
|
{
|
||||||
|
UpdateInterface::all[i]->processTick();
|
||||||
|
}
|
||||||
|
|
||||||
mTotalTicks++;
|
mTotalTicks++;
|
||||||
|
|
||||||
PROFILE_END();
|
PROFILE_END();
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@
|
||||||
#include "T3D/gameBase/gameConnection.h"
|
#include "T3D/gameBase/gameConnection.h"
|
||||||
#include "T3D/gameBase/std/stdMoveList.h"
|
#include "T3D/gameBase/std/stdMoveList.h"
|
||||||
#include "T3D/fx/cameraFXMgr.h"
|
#include "T3D/fx/cameraFXMgr.h"
|
||||||
|
#include "T3D/Components/coreInterfaces.h"
|
||||||
|
#include "T3D/Components/Component.h"
|
||||||
|
|
||||||
MODULE_BEGIN( ProcessList )
|
MODULE_BEGIN( ProcessList )
|
||||||
|
|
||||||
|
|
@ -132,6 +134,16 @@ bool StdClientProcessList::advanceTime( SimTime timeDelta )
|
||||||
obj = obj->mProcessLink.next;
|
obj = obj->mProcessLink.next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (U32 i = 0; i < UpdateInterface::all.size(); i++)
|
||||||
|
{
|
||||||
|
Component *comp = dynamic_cast<Component*>(UpdateInterface::all[i]);
|
||||||
|
|
||||||
|
if (!comp->isClientObject() || !comp->isActive())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
UpdateInterface::all[i]->interpolateTick(mLastDelta);
|
||||||
|
}
|
||||||
|
|
||||||
// Inform objects of total elapsed delta so they can advance
|
// Inform objects of total elapsed delta so they can advance
|
||||||
// client side animations.
|
// client side animations.
|
||||||
F32 dt = F32(timeDelta) / 1000;
|
F32 dt = F32(timeDelta) / 1000;
|
||||||
|
|
@ -146,6 +158,19 @@ bool StdClientProcessList::advanceTime( SimTime timeDelta )
|
||||||
obj = obj->mProcessLink.next;
|
obj = obj->mProcessLink.next;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (U32 i = 0; i < UpdateInterface::all.size(); i++)
|
||||||
|
{
|
||||||
|
Component *comp = dynamic_cast<Component*>(UpdateInterface::all[i]);
|
||||||
|
|
||||||
|
if (comp)
|
||||||
|
{
|
||||||
|
if (!comp->isClientObject() || !comp->isActive())
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
UpdateInterface::all[i]->advanceTime(dt);
|
||||||
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -26,7 +26,8 @@
|
||||||
#include "renderInstance/renderPassManager.h"
|
#include "renderInstance/renderPassManager.h"
|
||||||
#include "math/util/matrixSet.h"
|
#include "math/util/matrixSet.h"
|
||||||
|
|
||||||
|
#include "T3D/Components/render/renderComponentInterface.h"
|
||||||
|
#include "T3D/Components/Component.h"
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
@ -104,6 +105,17 @@ void SceneRenderState::renderObjects( SceneObject** objects, U32 numObjects )
|
||||||
SceneObject* object = objects[ i ];
|
SceneObject* object = objects[ i ];
|
||||||
object->prepRenderImage( this );
|
object->prepRenderImage( this );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
U32 interfaceCount = RenderComponentInterface::all.size();
|
||||||
|
for (U32 i = 0; i < RenderComponentInterface::all.size(); i++)
|
||||||
|
{
|
||||||
|
Component* comp = dynamic_cast<Component*>(RenderComponentInterface::all[i]);
|
||||||
|
|
||||||
|
if (comp->isClientObject() && comp->isActive())
|
||||||
|
{
|
||||||
|
RenderComponentInterface::all[i]->prepRenderImage(this);
|
||||||
|
}
|
||||||
|
}
|
||||||
PROFILE_END();
|
PROFILE_END();
|
||||||
|
|
||||||
// Render what the objects have batched.
|
// Render what the objects have batched.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue