This manual page is for Mac OS X version 10.6.3

If you are running a different version of Mac OS X, view the documentation locally:

  • In Terminal, using the man(1) command

Reading manual pages

Manual pages are intended as a quick reference for people who already understand a technology.

  • For more information about the manual page format, see the manual page for manpages(5).

  • For more information about this technology, look for other documentation in the Apple Reference Library.

  • For general information about writing shell scripts, read Shell Scripting Primer.



GLSELECTBUFFER(3G)                                                                        GLSELECTBUFFER(3G)



NAME
       glSelectBuffer - establish a buffer for selection mode values


C SPECIFICATION
       void glSelectBuffer( GLsizei size,
                            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 unsigned integers, and size
       indicates the size of the array.  buffer  returns  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 modelview 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 previ-ous previous
       ous 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 incremented 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  mini-mum minimum
       mum 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 argument other than
       GL_SELECT.

       glBegin/glEnd primitives and calls to glRasterPos can result in hits.

ERRORS
       GL_INVALID_VALUE is generated if size is negative.

       GL_INVALID_OPERATION is generated if glSelectBuffer is called while the render mode is GL_SELECT,  or
       if glRenderMode is called with argument GL_SELECT before glSelectBuffer is called at least once.

       GL_INVALID_OPERATION  is generated if glSelectBuffer is executed between the execution of glBegin and
       the corresponding execution of glEnd.

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(3G), glInitNames(3G), glLoadName(3G), glPushName(3G), glRenderMode(3G)




                                                                                          GLSELECTBUFFER(3G)

Reporting Problems

The way to report a problem with this manual page depends on the type of problem:

Content errors
Report errors in the content of this documentation to the OpenGL project.
Bug reports
Report bugs in the functionality of the described tool or API through Bug Reporter.
Formatting problems
Report formatting mistakes in the online version of these pages with the feedback links below.

Did this document help you? Yes It's good, but... Not helpful...