Text archives Help
- From: Abe Stephens <
>
- To:
- Cc:
- Subject: [Manta] Re: Calling SyncDisplay::doneRendering() twice?
- Date: Thu, 24 Jul 2008 16:33:25 -0600
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=cc:message-id:from:to:in-reply-to:content-type:mime-version:subject :date:references:x-mailer; b=l6zzPY99/be4Z4SMVx2Z1/QLlk4gM4/I/0H2AH/VEtKhC/ahz/1fcPD68qQosJnGs0 q+paz5dwcXEF7LkEJvx/VBAnhXfZommXe2osMONh7uuL/SjCcK8BPYJgzq7CIp81yPPH FpaUKXdFyxvYZes/CpWzvB1YuAbi8sZyxYoiA=
The method signals a semaphore that might have two threads waiting on it eventually. The name doneRendering refers to done with the current gl frame, not finished using the ray tracer.
See: mantaGLCanvas.FrameReady() in wxManta.py and uses of the _framedone semaphore.
Note that SyncDisplay is used in cases where an explicit handoff is necessary (mostly to maintain platform portability when using a GUI toolkit). In the GLX display code the explicit handoff is not necessary.
Abe
On Jul 24, 2008, at 3:59 PM, Li-Ta Lo wrote: Hi,
Why do we have to call doneRendering twice when we want to shutdown the engine as in wxManta.py?
def ShutdownEngine(self): # print "Exiting the engine" # sync_thread and sync_display only exist for when we use a # SyncDisplay class. Since this doesn't happen all the time # we use the try block to allow continued progress try: self.sync_thread.abort() except: pass self.engine.finish() try: self.sync_display.doneRendering() self.sync_display.doneRendering() except: pass self.engine.blockUntilFinished() # print "Engine exited"
Ollie
|
Archive powered by MHonArc 2.6.16.