Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
GLSELECTBUFFER()						GLSELECTBUFFER()

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 un-
     signed 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.  In-
     stead, 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, be-
     fore being placed in the hit record.

     An internal index into buffer is reset to 0 whenever selection mode is  en-
     tered.   Each  time a hit record is copied into buffer, the index is incre-
     mented 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 num-
     ber 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_SE-
     LECT,  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_SE-
     LECT 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

SEE ALSO
     glFeedbackBuffer, glInitNames, glLoadName, glPushName, glRenderMode

								GLSELECTBUFFER()

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=glSelectBuffer&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help