[vtkusers] Animation Conundrum

Mischa Thesberg mejthesb at swri.ca
Fri Oct 7 12:53:43 EDT 2005


Are you suggesting a code that is something like this?:

        def myCallback():
            for i in range(100,260):
                #time.sleep(0.03)
                givable = "C:/Conics/1-32-04/9-28-2005 1-32-04 PM-0%d" % 
i+".jpg"
                jpgReader.SetFileName(givable)
                atext.SetInput(jpgReader.GetOutput())
                renWin.Render()

        ren.AddActor(triangulation)
        ren.SetBackground(1, 1, 1)
        renWin.SetSize(350, 350)
        iren.AddObserver("TimerEvent", myCallback)
        iren.Initialize()
        iren.Start()
        t = threading.Timer(0.1,myCallback) # call animate after 0.1 seconds
        t.start()

when this code runs I get the following error from the prompt

ERROR: In \OCCIviewerSDK\Vtk42\Rendering\vtkWin32OpenGLRenderWindow.cxx, 
line 22
8
vtkWin32OpenGLRenderWindow (00B290B0): wglMakeCurrent failed in 
MakeCurrent(), e
rror: The requested resource is in use.

which seems to me to be a share renderer problem.  Or is my code using 
the wrong idea?  Thank you for your help btw


Bruno da Silva de Oliveira wrote:

> Hi Mischa,
>
> Try to use a timer. Connect an observer in the RenderWindowInteractor 
> listening for the TimerEvent, and in this handler change the texture.
>
> HTH,
>
> Mischa Thesberg wrote:
>
>>    This is the same problem I was having before however I still 
>> cannot seem to fine a solution to it.  I am simulating the effect of 
>> projecting a movie onto a cone by creating a cone object in a render 
>> window (with an interactor) and changing the texture (mapped using 
>> textureMapToPlane) of the cone about 10 times a second (in other 
>> words I loop through a series of sequentially named jpeg's).  The 
>> problem is that while this animation is occuring (which is always) 
>> the interactor is frozen with an hourglass (or if I put the animation 
>> in a rudimentary thread the hourglass is gone but I still can't 
>> interact).  How do I keep the interactor usable as I constantly 
>> change the texture of the cone.  I think a problem with the way I 
>> tried to thread has to do with the shared resources between the actor 
>> changing textures and the interactor.  If someone could give me some 
>> advice it would be much appreciated.  If threading is in fact 
>> necessary it would be helpful to have a code snippet or a link to an 
>> explicit example.  The pertinent part of my code is below (I have 
>> kept all of the commented out stuff just to illustrate the type of 
>> stuff I've tried:
>>
>>        #def myCallback():
>>          #  if renWin.GetEventPending():
>>            #    renWin.SetAbortRender=1
>>
>> # Add the actors to the renderer, set the background and size
>>        ren.AddActor(triangulation)
>>        ren.SetBackground(1, 1, 1)
>>        #ren.AddObserver("StartEvent", myCallback)
>>        renWin.SetSize(350, 350)
>>        #renWin.FullScreenOn()
>>        #iren.UpdateSize(700,700)
>>        #iren.AddObserver("InteractionEvent", myCallback)
>>        iren.Initialize()
>>
>>        #renWin.Render()
>>        iren.Start()
>>
>>        for i in range(100,260):
>>            time.sleep(0.03)
>>            #iren.UnRegister(renWin)
>>            #iren = None
>>            #iren = vtk.vtkRenderWindowInteractor()
>>            givable = "C:/Conics/1-32-04/9-28-2005 1-32-04 PM-0%d" % 
>> i+".jpg"
>>            jpgReader.SetFileName(givable)
>>            atext.SetInput(jpgReader.GetOutput())
>>            #atext.Render(ren)
>>            #ren.Render()
>>            renWin.Render()
>>            #print iren.GetInitialized()
>>            #iren.SetRenderWindow(renWin)
>>            #iren.Enable()
>>            #iren.Initialize()
>>            #iren.Start()
>>
>>
>> _______________________________________________
>> This is the private VTK discussion list. Please keep messages 
>> on-topic. Check the FAQ at: http://www.vtk.org/Wiki/VTK_FAQ
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtkusers
>>
>



More information about the vtkusers mailing list