glSelectBuffer man page on DigitalUNIX

Man page or keyword search:  
man Server   12896 pages
apropos Keyword Search (all sections)
Output format
DigitalUNIX logo
[printable version]

glSelectBuffer(3G)					    glSelectBuffer(3G)

       glSelectBuffer - establish a buffer for selection mode values

       void glSelectBuffer(
	       GLsizei size,
	       GLuint *buffer );

       Specifies the size of buffer.  Returns the selection data.

       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  glRender‐
       Mode()).	  glSelectBuffer()  must  be  issued  before selection mode is
       enabled, and it	must  not  be  issued  while  the  rendering  mode  is

       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 buf‐
       fer  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
       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 option is set. If the name stack
       is empty when a hit record is copied, that record consists  of  0  fol‐
       lowed 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 option and the selection buffer pointer,  and  ini‐
       tializes	 the  name stack to be empty. If the overflow bit was set when
       glRenderMode() was called, a negative hit record count is returned.

       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

       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 argu‐
       ment 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

       glGet() with argument GL_NAME_STACK_DEPTH
       glGet() with argument GL_SELECTION_BUFFER_SIZE
       glGetPointerv() with argument GL_SELECTION_BUFFER_POINTER

       glFeedbackBuffer(3),  glInitNames(3),   glLoadName(3),	glPushName(3),


List of man pages available for DigitalUNIX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net