
S
glSelectBuffer
Chapter 17
398
glSelectBuffer
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
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 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.
Содержание c3700 - Workstation
Страница 9: ...Chapter 1 9 1 A ...
Страница 12: ...A glAccum Chapter 1 12 glLogicOp glPixelStore glPixelTransfer glReadBuffer glReadPixels glScissor glStencilOp ...
Страница 18: ...A glArrayElement Chapter 1 18 glNormalPointer glTexCoordPointer glVertexPointer ...
Страница 19: ...Chapter 2 19 2 B ...
Страница 40: ...B gluBuild2DMipmaps Chapter 2 40 ...
Страница 41: ...Chapter 3 41 3 C ...
Страница 49: ...C glXChooseVisual Chapter 3 49 See Also glXCreateContext glXGetConfig ...
Страница 73: ...C glCopyPixels Chapter 3 73 glReadBuffer glReadPixels glStencilFunc ...
Страница 84: ...C glCopyTexSubImage2D Chapter 3 84 glTexParameter glTexSubImage1D glTexSubImage2D ...
Страница 93: ...Chapter 4 93 4 D ...
Страница 99: ...D glDeleteTextures Chapter 4 99 glTexImage1D glTexImage2D glTexParameter ...
Страница 127: ...Chapter 5 127 5 E ...
Страница 148: ...E glEvalPoint Chapter 5 148 ...
Страница 149: ...Chapter 6 149 6 F ...
Страница 161: ...Chapter 7 161 7 G ...
Страница 164: ...G glGenTextures Chapter 7 164 glTexImage1D glTexImage2D glTexParameter ...
Страница 185: ...G glGet Chapter 7 185 glGetTexGen glGetTexImage glGetTexLevelParameter glGetTexParameter glIsEnabled ...
Страница 207: ...G glGetPointer Chapter 7 207 glSelectBuffer glTexCoordPointer glVertexPointer ...
Страница 224: ...G glGetTexParameter Chapter 7 224 See Also glAreTexturesResident glPrioritizeTextures glTexParameter ...
Страница 225: ...Chapter 8 225 8 H ...
Страница 228: ...H glHint Chapter 8 228 ...
Страница 229: ...Chapter 9 229 9 I ...
Страница 248: ...I glIsTexture Chapter 9 248 ...
Страница 249: ...Chapter 10 249 10 L ...
Страница 256: ...L glLightModel Chapter 10 256 See Also glLight glMaterial ...
Страница 271: ...Chapter 11 271 11 M ...
Страница 291: ...Chapter 12 291 12 N ...
Страница 312: ...N gluNurbsSurface Chapter 12 312 ...
Страница 313: ...Chapter 13 313 13 O ...
Страница 317: ...Chapter 14 317 14 P ...
Страница 345: ...P glPolygonStipple Chapter 14 345 See Also glDrawPixels glLineStipple glPixelStore glPixelTransfer ...
Страница 360: ...P glPushName Chapter 14 360 See Also glInitNames glLoadName glRenderMode glSelectBuffer ...
Страница 362: ...P gluPwlCurve Chapter 14 362 ...
Страница 363: ...Chapter 15 363 15 Q ...
Страница 372: ...Q glXQueryVersion Chapter 15 372 glXQueryVersion ...
Страница 373: ...Chapter 16 373 16 R ...
Страница 390: ...R glRotate Chapter 16 390 ...
Страница 391: ...Chapter 17 391 17 S ...
Страница 397: ...S glScissor Chapter 17 397 See Also glEnable glViewport ...
Страница 409: ...Chapter 18 409 18 T ...
Страница 430: ...T glTexEnv Chapter 18 430 glCopyTexSubImage2D glTexImage1D glTexImage2D glTexParameter glTexSubImage1D glTexSubImage2D ...
Страница 448: ...T glTexImage3DEXT Chapter 18 448 glTexGen glTexImage1D glTexImage2D glTexParameter ...
Страница 457: ...T glTexSubImage1D Chapter 18 457 glTexImage2D glTexParameter glTexSubImage2D ...
Страница 465: ...T glTranslate Chapter 18 465 See Also glMatrixMode glMultMatrix glPushMatrix glScale ...
Страница 466: ...T glTranslate Chapter 18 466 ...
Страница 467: ...Chapter 19 467 19 U ...
Страница 469: ...U gluUnProject Chapter 19 469 See Also glGet gluProject ...
Страница 471: ...U glXUseXFont Chapter 19 471 See Also glBitmap glXMakeCurrent ...
Страница 472: ...U glXUseXFont Chapter 19 472 ...
Страница 473: ...Chapter 20 473 20 V ...
Страница 482: ...V glVisibilityBufferhp Chapter 20 482 ...
Страница 483: ...Chapter 21 483 21 W ...
Страница 486: ...W glXWaitX Chapter 21 486 ...