[comp.windows.x] XSync problems with dynamic rotation

pitman@secs.ucsc.edu (PITMAN) (09/18/90)

	I'm new to X and I'm using Decwindows  on a VAX with VMS 5.1.
I've been trying to get dynamic rotation to work and have thus far not 
been successful. The problem is with sychronization, the server gets behind 
the client and when the user tries stops the continuous rotation the server 
keeps rotating the object until its queue has processesed all the requests 
the client issued.
	I thought XSync(dpy,0) was supposed to alleviate this problem but 
but the problem is still there. I've also tried making round trip requests
such as XGetGeometry after each XDrawSeqments command and that didn't work
either. I even tried sleep(1) but that made the whole process intolerably slow
(it's too slow already) and the problem is still there.
	The event loop is:

void handletheevents( )
{
    XEvent event;         
    long mask;
	
    mask = ExposureMask | ButtonPressMask | KeyPressMask;
    while (1) 
    {
	if (XCheckMaskEvent(dpy,mask,&event))
	{
		switch (event.type) 
		{ 
            		case Expose:		doExpose(&event); break;
	    		case ButtonPress: 	doButtonPress(&event); break;
	    		case KeyPress:		doKeyPress(&event); break;
        	}
	}
	if (orbit)
	{ float r;
		  r=drot/3;
		  yrot(&r);
		  transform(&pointsmat,&molecule.na,&tpointsmat);
		  drawmol();
	 	  XSync(dpy,0);     
	}  
    }                                           
}

	If anybody has any idea what to do I would greatly appreciate it.
Please post or email to:

	Pitman@secs.ucsc.edu

	Thanx in advance

Mike Pitman
Dept. of Chemistry
University of California, Santa Cruz
Pitman@secs.ucsc.edu