[comp.sys.sgi] TIMERn devices - what are they?

fjhenigman@watcgl.waterloo.edu (Frank J. Henigman) (08/10/89)

Can anyone explain what the devices TIMERn (where n = 0, 1, 2, 3) are
in the device.h file?  Can they be used for anything?  Thanks.
-- 
fjhenigman@watcgl.uwaterloo.ca                       Computer Graphics Lab
fjhenigman@watcgl.waterloo.edu   Frank J. Henigman   University of Waterloo
 ...!watmath!watcgl!fjhenigman                       Waterloo, Ontario, Canada

steve@obed.uucp (stephen Samuel) (08/13/89)

From article <10976@watcgl.waterloo.edu>, by fjhenigman@watcgl.waterloo.edu (Frank J. Henigman):
> Can anyone explain what the devices TIMERn (where n = 0, 1, 2, 3) are
> in the device.h file?  Can they be used for anything?  Thanks.

The timer devices generate one event every 1/60 sec.  More specificly, 
they seem to generate one per vertical sync.  They can be used for various
things.  
 We, for example, have a Tektronix stereo LCD shutter. To use it, we start up
a timer, and for each timer event, we do a swapbuffers (first, of course,
we have to draw the two stereo pictures...).
roughly (from memory):
In this case, we need one event per 1/60 sec, so I use `noise(1)`.  If you
needed only needed 5 events per second then you could use `noise(12)`.
 ------------------------ Cut here and add water -------------------------

#include "everything.necessary"
draw(leftimage);
swapbuffer();
draw(rightimage);
swapbuffer();
qdevice(TIMER0);
noise(TIMER0,1);   /* **** VERY IMPORTANT -- you need to do this before
		    * you get timer events --- THIS IS UNDOCUMENTED (grr!) */
/* the following will wait for an odd-numbered timer event... This is
 *an attempt to make sync left and right sides with what the shutter
 *thinks are the appropriate side.
 */
while(qread(&val)!= TIMER0 || (val&1)!= 1 );

while( happy){
	device=qread(&val);
	switch(device){
	case TIMER0:
		swapbuffer();
	break;
     . . . . 
	case blegh:
	happy=0;
	break;
};

/* EOF */
	

-- 
Stephen samuel !alberta!{obed,edm}!steve
"Look on the bright side... It might have worked!"