MCPcopy Create free account
hub / github.com/Moddable-OpenSource/moddable / PiuTransitionIdle

Function PiuTransitionIdle

modules/piu/All/piuTransition.c:122–153  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120}
121
122void PiuTransitionIdle(void* it, PiuInterval interval)
123{
124 PiuTransition* self = it;
125 PiuIdle selfIdle = PiuContentUseIdle(self);
126 double duration = selfIdle->duration;
127 double time = selfIdle->time;
128 if (time < 0)
129 time = 0;
130 else {
131 time += interval;
132 if (time > duration)
133 time = duration;
134 }
135 selfIdle->time = time;
136 PiuTransitionStep(self, time / duration);
137 if (time == duration) {
138 PiuContainer* container = (*self)->container;
139 PiuTransition* transition = (*container)->transition = (*self)->next;
140 PiuApplicationStopContent((*self)->application, self);
141 PiuTransitionEnd(self);
142 selfIdle = PiuContentUseIdle(self);
143 selfIdle->time = -1;
144 (*self)->container = NULL;
145 (*self)->application = NULL;
146 if (transition) {
147 PiuTransitionBegin(transition);
148 PiuApplicationStartContent((*transition)->application, transition);
149 }
150 else
151 PiuBehaviorOnTransitionEnded(container);
152 }
153}
154
155void PiuTransitionMark(xsMachine* the, void* it, xsMarkRoot markRoot)
156{

Callers

nothing calls this directly

Calls 6

PiuContentUseIdleFunction · 0.85
PiuTransitionStepFunction · 0.85
PiuTransitionEndFunction · 0.85
PiuTransitionBeginFunction · 0.85

Tested by

no test coverage detected