Path: utzoo!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!caen!sol.ctr.columbia.edu!emory!att!ucbvax!SCT60A.SUNYCT.EDU!sweetmr From: sweetmr@SCT60A.SUNYCT.EDU (michael sweet) Newsgroups: comp.sys.sgi Subject: Re: interrupting long draw cycles Message-ID: <13816.on.Tue,.12.Mar.91.07:57:23.EST.@sct60a.sunyct.edu> Date: 12 Mar 91 12:57:23 GMT Sender: usenet@ucbvax.BERKELEY.EDU Organization: The Internet Lines: 31 (other stuff deleted...) > This will entail the gl calls being interrupted and aborted at any step.. > My experiments with this code have..... I assume that you want to jump out of this when a user says 'no, try this view'? Well, one way would be to use the qgetfd() function to get a file descriptor for the event queue, and then start a separate process that would monitor the queue. When something becomes available on the queue, the process could send a SIGIO (or whatever) signal to its parent telling it to stop drawing and get the new viewing parameters. You'd probably want to disable 'noisy' devices (i.e. MOUSEX, MOUSEY). The signal catching routine in the primary (drawing) process could set a flag which the drawing function could check periodically. I *think* 3.3 and later also allow multi-process access to the same window, so you might not have to get the file descriptor.... -Mike Sweet ------------------------------------------------------------------------------ "The only TASC (315) 724-1100 (voice) truth is that 555 French Road (315) 724-2031 (fax) there are no New Hartford, NY 13413 Internet: sweetmr@sct60a.sunyct.edu truths, only beliefs." Delphi: DODGECOLT ------------------------------------------------------------------------------