Erik Max Francis wrote: >I was interesting in adding selection and hit testing to ZOE, and was >looking at the PyOpenGL wrappers' handling of selection and picking. I >see glSelectBuffer to specify the size of the buffer, and glRenderMode >properly returns the number of hits when put back into GL_RENDER mode, >but I don't see any way within PyOpenGL itself to access the select >buffer to actually process the hits. Is there any way to do this >without using OpenGLContext? (If not, does this make sense, given that >OpenGLContext is supposed to be an additional helper library for a >gentle introduction to OpenGL?) > > I think you're missing what's returned from the glRenderMode code (which is non-standard OpenGL, to avoid the need for Python code using and decoding structured pointers), from OpenGLContext:
nameStack = list(glRenderMode(GL_RENDER)) that is, you get a stack of name records (i.e. your glSelectBuffer with (near,far,names) records) back from the glRenderMode call, *not* just a count of the records produced. In general, you shouldn't *need* OpenGLContext to do anything, as all of its OpenGL code is written directly in Python to PyOpenGL's API (that was its original purpose in life, to test those APIs). It is, however, intended to provide a source for sample code showing how to accomplish effects when using PyOpenGL, so from renderpass.py: event.setObjectPaths([ nodepath.NodePath(filter(None,[ self.selectable.get(name) for name in names ])) for (near,far,names) in nameStack ]) shows you how to deal with the glSelectBuffer result, namely that it's a near value, a far value, and a set of integer names (the name stack) for each record in the set. OpenGLContext is here creating a node-path of all selectable objects from the scenegraph root to the final selected object using the nameStack and a registered set of name:node values (self.selectable). It will use those to populate the event objects that show up in the OpenGLContext mouse-event-handling APIs. HTH, Mike -- ________________________________________________ Mike C. Fletcher Designer, VR Plumber, Coder http://www.vrplumber.com http://blog.vrplumber.com -- http://mail.python.org/mailman/listinfo/python-list