1 /**************************
5 * things dealing with time.
6 * corTeX / Optimum ~ 1998
8 **************************/
10 #include <exec/types.h>
12 #include "schedul_fx.h"
14 unsigned long int frame_count
;
16 void opti_sched_init(){
17 gettimeofday( &demo_start_time
, NULL
);
20 demo_current_time
= demo_start_time
;
22 timerclear( &demo_elapsed_time
);
23 timerclear( &frame_elapsed_time
);
26 void opti_sched_update(){
27 gettimeofday( &demo_current_time
, NULL
);
28 opti_diff_timeval( &demo_start_time
,
32 opti_diff_timeval( &sequence_start_time
,
34 &sequence_elapsed_time
);
37 void opti_sched_nextframe(){
38 struct timeval frame_tmp
;
40 gettimeofday( &frame_tmp
, NULL
);
41 opti_diff_timeval(&frame_time
,
48 void opti_sched_nextsequence(){
49 gettimeofday( &sequence_start_time
, NULL
);
50 timerclear (&sequence_elapsed_time
);
55 float opti_scale_time(float secscale
,struct timeval
*elapsed
){
56 return (secscale
* elapsed
->tv_sec
+ secscale
* elapsed
->tv_usec
/ 1000000);
59 void opti_diff_timeval(struct timeval
*old
, struct timeval
*new,
61 dst
->tv_sec
= new->tv_sec
- old
->tv_sec
;
62 if (new->tv_usec
> old
->tv_usec
)
63 dst
->tv_usec
= new->tv_usec
- old
->tv_usec
;
65 dst
->tv_usec
= 1000000+ new->tv_usec
- old
->tv_usec
;