GLdoubley, GLdoubledelX, GLdoubledelY, GLint*viewport)

**eqn not supported**

*x*,*y*- Specify the center of a picking region in window coordinates.
*delX*,*delY*- Specify the width and height, respectively, of the picking region in window coordinates.
*viewport*- Specifies the current
viewport (as from a
**glGetIntegerv**call).

The matrix created
by **gluPickMatrix** is multiplied by the current matrix just as if **glMultMatrix**
is called with the generated matrix. To effectively use the generated pick
matrix for picking, first call **glLoadIdentity** to load an identity matrix
onto the perspective matrix stack. Then call **gluPickMatrix**, and finally,
call a command (such as **gluPerspective**) to multiply the perspective matrix
by the pick matrix.

When using **gluPickMatrix** to pick NURBS, be careful to
turn off the NURBS property **GLU_AUTO_LOAD_MATRIX**. If **GLU_AUTO_LOAD_MATRIX**
is not turned off, then any NURBS surface rendered is subdivided differently
with the pick matrix than the way it was subdivided without the pick matrix.

glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(...); glMatrixMode(GL_MODELVIEW);

a portion of the viewport can be selected as a pick region like this:

glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPickMatrix(x, y, width, height, viewport); gluPerspective(...); glMatrixMode(GL_MODELVIEW);