soui 5.0.0.1
Soui5 Doc
 
Loading...
Searching...
No Matches
STimerlineHandlerMgr.cpp
1#include <souistd.h>
2#include <core/STimerlineHandlerMgr.h>
3
4SNSBEGIN
8
12
14{
15 if (m_mapHandlers.Lookup(pHandler))
16 return false;
17 m_mapHandlers[pHandler] = false;
18 return true;
19}
20
22{
23 return m_mapHandlers.RemoveKey(pHandler);
24}
25
27{
28 ITimelineHandler **pHandlers = new ITimelineHandler *[m_mapHandlers.GetCount()];
29 // collect all handlers.
30 SPOSITION pos = m_mapHandlers.GetStartPosition();
31 int idx = 0;
32 while (pos)
33 {
34 ITimelineHandler *p = m_mapHandlers.GetNextKey(pos);
35 pHandlers[idx++] = p;
36 }
37
38 // run handles.
39 for (int i = 0; i < idx; i++)
40 {
41 TLMAP::CPair *p = m_mapHandlers.Lookup(pHandlers[i]);
42 if (!p)
43 continue;
44 // make sure the handler is valid before run.
45 pHandlers[i]->OnNextFrame();
46 }
47 delete[] pHandlers;
48}
49
51{
52 return m_mapHandlers.IsEmpty();
53}
54
55SNSEND
bool IsEmpty() const
Checks if the manager is empty (no handlers registered).
~STimerlineHandlerMgr(void)
Destructor.
void OnNextFrame() OVERRIDE
Called when the next frame is ready.
bool RegisterTimelineHandler(ITimelineHandler *pHandler)
Registers a timeline handler.
STimerlineHandlerMgr(void)
Constructor.
bool UnregisterTimelineHandler(ITimelineHandler *pHandler)
Unregisters a timeline handler.
时间轴处理接口
void OnNextFrame() PURE
下一个动画帧处理接口