GLuint *buffer )

PARAMETERS
       size    Specifies the size of buffer.

       buffer  Returns the selection data.

DESCRIPTION
       glSelectBuffer has two arguments: buffer is a pointer to an array of un‐
       signed integers, and size indicates the size of the array.   buffer  re‐
       turns   values   from  the  name  stack  (see  glInitNames,  glLoadName,
       glPushName) when the rendering mode  is  GL_SELECT  (see  glRenderMode).
       glSelectBuffer  must  be issued before selection mode is enabled, and it
       must not be issued while the rendering mode is GL_SELECT.

       A programmer can use selection to determine which primitives  are  drawn
       into some region of a window.  The region is defined by the current mod‐
       elview and perspective matrices.

       In selection mode, no pixel fragments are produced  from  rasterization.
       Instead,  if  a  primitive  or a raster position intersects the clipping
       volume defined by the viewing  frustum  and  the  user-defined  clipping
       planes,  this  primitive causes a selection hit.  (With polygons, no hit
       occurs if the polygon is culled.)  When a change is  made  to  the  name
       stack,  or when glRenderMode is called, a hit record is copied to buffer
       if any hits have occurred since the last such event (name  stack  change
       or  glRenderMode  call).  The hit record consists of the number of names
       in the name stack at the time of the event, followed by the minimum  and
       maximum  depth values of all vertices that hit since the previous event,
       followed by the name stack contents, bottom name first.

       Depth values (which are in the range [0,1]) are multiplied by 2^32 -  1,
       before being placed in the hit record.

       An  internal  index into buffer is reset to 0 whenever selection mode is
       entered.  Each time a hit record is copied into buffer, the index is in‐
       cremented to point to the cell just past the end of the block of names -
       that is, to the next available cell.  If the hit record is  larger  than
       the  number of remaining locations in buffer, as much data as can fit is
       copied, and the overflow flag is set.  If the name stack is empty when a
       hit  record is copied, that record consists of 0 followed by the minimum
       and maximum depth values.

       To exit selection mode, call glRenderMode with an  argument  other  than
       GL_SELECT.   Whenever  glRenderMode  is  called while the render mode is
       GL_SELECT, it returns the number of hit records copied to buffer, resets
       the  overflow flag and the selection buffer pointer, and initializes the
       name stack to be empty.  If the overflow bit was set  when  glRenderMode
       was called, a negative hit record count is returned.

NOTES
       The contents of buffer is undefined until glRenderMode is called with an

ASSOCIATED GETS
       glGet with argument GL_NAME_STACK_DEPTH
       glGet with argument GL_SELECTION_BUFFER_SIZE
       glGetPointerv with argument GL_SELECTION_BUFFER_POINTER

SEE ALSO
       glFeedbackBuffer, glInitNames, glLoadName, glPushName, glRenderMode

                                                             GLSELECTBUFFER(3G)

Man(1) output converted with man2html