Manta Interactive Ray Tracer Development Mailing List

Text archives Help


[Manta] Re: Calling SyncDisplay::doneRendering() twice?


Chronological Thread 
  • 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.

Top of page