Fwd: Re: [vtkusers] small bug in startpick() method

william shuckley sherman420247 at hotmail.com
Thu Feb 14 19:07:22 EST 2002


This is a trace of the messages that are called before I believe offending 
openGL calls are made in StartPick().  Read from bottom to top:

vtkOpenGLRenderer::StartPick(unsigned int 1555) line 239
vtkRenderer::PickProp(float 135.000, float 247.000) line 1190 + 26 bytes
vtkViewport::PickPropFrom(float 135.000, float 247.000,
vtkPropCollection * 0x00000000) line 629 + 24 bytes
vtkPropPicker::PickProp(float 135.000, float 247.000, vtkRenderer * 
0x05b8b688) line 105 + 26 bytes
vtkPropPicker::Pick(float 135.000, float 247.000, float 0.000000, 
vtkRenderer * 0x05b8b688) line 73

I call the vtkPropPicker::Pick() operation from an OnLeftButtonDown() 
message.  There are multiple 2D actors in the scene.  Unless, you are using 
vtk2DActors and the vtkPropPicker you will not necessarily? enter this 
method at least I do not enter this method when I do a cell pick operation.

StartPick() makes openGL calls such as:

this->PickInfo->PickBuffer = new GLuint[bufferSize];
  glSelectBuffer(bufferSize, this->PickInfo->PickBuffer);
  // change to selection mode
  (void)glRenderMode(GL_SELECT);
  // initialize the pick names and add a 0 name, for no pick
  glInitNames();
  glPushName(0);

I think there needs to be a MakeCurrent() here before these calls are made.  
As you see, none of the functions before StartPick() call MakeCurrent().  
Even if your code wasn't crashing, wouldn't you make your gl context current 
before making these calls?  I have done this in my renderer and it works 
better.

>From: Jeff Lee <jeff at cdnorthamerica.com>
>To: Anthony Sherbondy <sherbond at stanford.edu>
>CC: vtkusers at public.kitware.com
>Subject: Re: [vtkusers] small bug in startpick() method
>Date: Thu, 14 Feb 2002 17:04:07 -0500
>
>If you could provide some code which demonstrates a problem, that would
>be good, I use multiple renderers all the time and picking works great.
>What is your problem specifically?
>-Jeff
>
>Anthony Sherbondy wrote:
>
>>Hello,
>>
>>The startpick() method in vtkOpenGLRenderer does not call MakeCurrent()
>>before accessing openGL.  I believe this is a bug as it seems to cause me
>>many problems when I attempt to interact with multiple windows.  If I add
>>MakeCurrent() at the beginning of this function there is no problem.
>>
>>-Tony
>>
>>_______________________________________________
>>This is the private VTK discussion list.
>>Please keep messages on-topic. Check the FAQ at: 
>><http://public.kitware.com/cgi-bin/vtkfaq>
>>Follow this link to subscribe/unsubscribe:
>>http://public.kitware.com/mailman/listinfo/vtkusers
>>
>>
>
>
>_______________________________________________
>This is the private VTK discussion list.
>Please keep messages on-topic. Check the FAQ at: 
><http://public.kitware.com/cgi-bin/vtkfaq>
>Follow this link to subscribe/unsubscribe:
>http://public.kitware.com/mailman/listinfo/vtkusers


_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail. 
http://www.hotmail.com




More information about the vtkusers mailing list