Following is a list of the basic OpenGL subroutines and the purpose of each.
Select the subroutine you want to read about, read the OpenGL Overview, or see what's new in this release.
| A | |
| glAccum | Operates on the accumulation buffer. | 
| glAlphaFunc | Specifies the alpha test function. | 
| glAreTexturesResident | Determines if textures are loaded in texture memory. | 
| glAreTexturesResidentEXT | Determines if textures are loaded in texture memory. | 
| glArrayElement | Renders a vertex using the specified vertex array element. | 
| glArrayElementEXT | Renders a vertex using the specified vertex array element. | 
| B | |
| glBegin or glEnd | Delimits the vertices of a primitive or group of like primitives. | 
| glBindTexture | Binds a named texture to a texturing target. | 
| glBindTextureEXT | Binds a named texture to a texturing target. | 
| glBitmap | Draws a bitmap. | 
| glBlendColor | Sets the blend color. | 
| glBlendColorEXT | Sets the blend color. | 
| glBlendEquation | Specifies the RGB color blend equation. | 
| glBlendEquationEXT | Specifies the RGB color blend equation. | 
| glBlendFunc | Specifies pixel arithmetic. | 
| C | |
| glCallList | Executes a display list. | 
| glCallLists | Executes a list of display lists. | 
| glClear | Clears buffers within the viewport. | 
| glClearAccum | Specifies clear values for the accumulation buffer. | 
| glClearColor | Specifies clear values for the color buffers. | 
| glClearDepth | Specifies the clear value for the depth buffer. | 
| glClearIndex | Specifies the clear value for the color index buffers. | 
| glClearStencil | Specifies the clear value for the stencil buffer. | 
| glClipPlane | Specifies a plane against which all geometry is clipped. | 
| glColor | Sets the current color. | 
| glColorMask | Enables and disables the writing of frame buffer color components. | 
| glColorMaterial | Causes a material color to track the current color. | 
| glColorPointer | Defines an array of colors. | 
| glColorPointerEXT | Defines an array of colors. | 
| glColorPointerListIBM | Defines a list of color arrays. | 
| glCopyPixels | Copies pixels in the frame buffer. | 
| glCopyTexImage1D | Defines a one-dimensional (1D) texture image. | 
| glCopyTexImage2D | Defines a two-dimensional (2D) texture image. | 
| glCopyTexSubImage1D | Copies a one-dimensional (1D) texture subimage. | 
| glCopyTexSubImage2D | Copies a two-dimensional (2D) texture subimage. | 
| glCopyTexSubImage3D | Copies a three-dimensional (3D) texture subimage. | 
| glCopyTexSubImage3DEXT | Copies a three-dimensional (3D) texture subimage. | 
| glCullFace | Specifies whether frontfacing or backfacing facets may be culled. | 
| D | |
| glDeleteLists | Deletes a contiguous group of display lists. | 
| glDeleteTextures | Deletes named textures. | 
| glDeleteTexturesEXT | Deletes named textures. | 
| glDepthFunc | Specifies the function used for depth buffer comparisons. | 
| glDepthMask | Enables or disables writing into the depth buffer. | 
| glDepthRange | Specifies the mapping of z values from normalized device coordinates to window coordinates. | 
| glDisable | Tests whether a capability is enabled. | 
| glDisableClientState | Disables an array. | 
| glDrawArrays | Renders primitives from array data. | 
| glDrawArraysEXT | Renders primitives from array data. | 
| glDrawBuffer | Specifies which color buffers are to be used for drawing. | 
| glDrawElements | Renders primitives from array data. | 
| glDrawPixels | Writes a block of pixels to the frame buffer. | 
| glDrawRangeElements | Renders primitives from array data. | 
| E | |
| glEdgeFlag | Marks edges as either boundary or nonboundary. | 
| glEdgeFlagPointer | Defines an array of edge flags. | 
| glEdgeFlagPointerEXT | Defines an array of edge flags. | 
| glEdgeFlagPointerListIBM | Defines a list of edge flag arrays. | 
| glEnable or glDisable | Tests whether a capability is enabled. | 
| glEnableClientState or glDisableClientState  | 
Enables or disables an array. | 
| glEnd | Delimits the vertices of a primitive or group of like primitives. | 
| glEvalCoord | Evaluates enabled one-dimensional (1D) and two-dimensional (2D) maps. | 
| glEvalMesh | Computes a one-dimensional (1D) or two-dimensional (2D) grid of points or lines. | 
| glEvalPoint | Generates and evaluates a single point in a mesh. | 
| F | |
| glFeedbackBuffer | Controls the feedback mode. | 
| glFinish | Blocks until all GL execution is complete. | 
| glFlush | Forces the running of GL subroutines in finite time. | 
| glFog | Specifies fog parameters. | 
| glFrontFace | Defines frontfacing and backfacing polygons. | 
| glFrustum | Multiplies the current matrix by a perspective matrix. | 
| G | |
| glGenLists | Generates a contiguous set of empty display lists. | 
| glGenTextures | Generate texture names. | 
| glGenTexturesEXT | Generates texture names. | 
| glGet | Returns the value or values of a selected parameter. | 
| glGetClipPlane | Returns the coefficients of the clipping plane. | 
| glGetError | Returns error information. | 
| glGetLight | Returns light source parameter values. | 
| glGetMap | Returns evaluator parameters. | 
| glGetMaterial | Returns material parameters. | 
| glGetPixelMap | Returns the specified pixel map. | 
| glGetPointerv | Returns the address of the specified pointer. | 
| glGetPointervEXT | Returns the address of a vertex data array. | 
| glGetPolygonStipple | Returns the polygonstipple pattern. | 
| glGetString | Returns a string describing the current GL connection. | 
| glGetTexEnv | Returns texture environment parameters. | 
| glGetTexGen | Returns texture coordinate generation parameters. | 
| glGetTexImage | Returns a texture image. | 
| glGetTexLevelParameter | Returns texture parameter levels for a specific level of detail. | 
| glGetTexParameter | Returns texture parameter values. | 
| H | |
| glHint | Specifies implementation-specific hints. | 
| I | |
| glIndex | Sets the current color index. | 
| glIndexMask | Controls the writing of individual bits in the color index buffers. | 
| glIndexPointer | Defines an array of color indexes. | 
| glIndexPointerEXT | Defines an array of color indexes. | 
| glIndexPointerListIBM | Defines a list of color index arrays. | 
| glInitNames | Initializes the name stack. | 
| glInterleavedArrays | Simultaneously specifies and enables several interleaved arrays. | 
| glIsEnabled | Tests whether a capability is enabled. | 
| glIsList | Tests for display list existence. | 
| glIsTexture | Determines if a name corresponds to a texture. | 
| glIsTextureEXT | Determines if a name corresponds to a texture. | 
| L | |
| glLight | Sets light source parameters. | 
| glLightModel | Sets the lighting model parameters. | 
| glLineStipple | Specifies the line stipple pattern. | 
| glLineWidth | Specifies the width of rasterized lines. | 
| glListBase | Sets the display-list base for the glCallLists subroutine. | 
| glLoadIdentity | Replaces the current matrix with the identity matrix. | 
| glLoadMatrix | Replaces the current matrix with an arbitrary matrix. | 
| glLoadName | Loads a name onto the name stack. | 
| glLockArraysEXT | Locks the currently enabled vertex arrays. | 
| glLogicOp | Specifies a logical pixel operation for color index rendering. | 
| M | |
| glMap1 | Defines a one-dimensional (1D) evaluator. | 
| glMap2 | Defines a two-dimensional (2D) evaluator. | 
| glMapGrid | Defines a one-dimensional (1D) or two-dimensional (2D) mesh. | 
| glMaterial | Specifies material parameters for the lighting model. | 
| glMatrixMode | Specifies the current matrix. | 
| glMultiDrawArraysEXT | Renders multiple primitives from array data. | 
| glMultiDrawElementsEXT | Renders multiple primitives from array data. | 
| glMultiModeDrawArraysIBM | Renders primitives of multiple primitive types from array data. | 
| glMultMatrix | Multiplies the current matrix by an arbitrary matrix. | 
| N | |
| glNewList | Creates or replaces a display list. | 
| glNormal | Sets the current normal vector. | 
| glNormalPointer | Defines an array of normals. | 
| glNormalPointerEXT | Defines an array of normals. | 
| glNormalPointerListIBM | Defines a list of normal arrays. | 
| O | |
| glOrtho | Multiplies the current matrix by an orthographic matrix. | 
| P | |
| glPassThrough | Places a marker in the feedback buffer. | 
| glPixelMap | Sets up pixel transfer maps. | 
| glPixelStore | Sets pixel storage modes. | 
| glPixelTransfer | Sets pixel transfer modes. | 
| glPixelZoom | Specifies the pixel zoom factors. | 
| glPointSize | Specifies the diameter of rasterized points. | 
| glPolygonMode | Selects a polygon rasterization mode. | 
| glPolygonOffset | Sets the scale and bias used to calculate depth values. | 
| glPolygonOffsetEXT | Sets the scale and bias used to calculate z values. | 
| glPolygonStipple | Sets the polygon stippling pattern. | 
| glPrioritizeTextures | Sets texture residence priority. | 
| glPrioritizeTexturesEXT | Sets texture residence priority. | 
| glPushAttrib or glPopAttrib | Pushes and pops the attribute stack. | 
| glPushClientAttrib or glPopClientAttrib | Pushes and pops the attribute stack. | 
| glPushMatrix or glPopMatrix | Pushes and pops the current matrix stack. | 
| glPushName or glPopName | Pushes and pops the name stack. | 
| R | |
| glRasterPos | Specifies the raster position for pixel operations. | 
| glReadBuffer | Selects a color buffer source for pixels. | 
| glReadPixels | Reads a block of pixels from the frame buffer. | 
| glRect | Draws a rectangle. | 
| glRenderMode | Sets rasterization mode. | 
| glRotate | Multiplies the current matrix by a rotation matrix. | 
| S | |
| glScale | Multiplies the current matrix by a general scaling matrix. | 
| glScissor | Defines the scissor box. | 
| glSelectBuffer | Establishes a buffer for selection mode values. | 
| glShadeModel | Selects flat or smooth shading. | 
| glStencilFunc | Sets function and reference values for stencil testing. | 
| glStencilMask | Controls the writing of individual bits in the stencil planes. | 
| glStencilOp | Sets stencil test actions. | 
| T | |
| glTexCoord | Sets the current texture coordinates. | 
| glTexCoordPointer | Defines an array of texture coordinates. | 
| glTexCoordPointerEXT | Defines an array of texture coordinates. | 
| glTexCoordPointerListIBM | Defines a list of texture coordinate arrays. | 
| glTexEnv | Sets texture environment parameters. | 
| glTexGen | Controls the generation of texture coordinates. | 
| glTexImage1D | Specifies a one-dimensional (1D) texture image. | 
| glTexImage2D | Specifies a two-dimensional (2D) texture image. | 
| glTexImage3D | Specifies a three-dimensional (3D) texture image. | 
| glTexImage3DEXT | Specifies a three-dimensional (3D) texture image. | 
| glTexParameter | Sets texture parameters. | 
| glTexSubImage1D | Specifies a one-dimensional (1D) texture subimage. | 
| glTexSubImage1DEXT | Specifies a one-dimensional (1D) texture subimage. | 
| glTexSubImage2D | Specifies a two-dimensional (2D) texture subimage. | 
| glTexSubImage2DEXT | Specifies a two-dimensional (2D) texture subimage. | 
| glTexSubImage3D | Specifies a three-dimensional (3D) texture subimage. | 
| glTexSubImage3DEXT | Specifies a three-dimensional (3D) texture subimage. | 
| glTranslate | Multiplies the current matrix by a translation matrix. | 
| U | |
| glUnLockArraysEXT | Unlocks the currently enabled vertex arrays. | 
| V | |
| glVertex | Specifies a vertex. | 
| glVertexPointer | Defines an array of vertex data. | 
| glVertexPointerEXT | Defines an array of vertex data. | 
| glVertexPointerListIBM | Defines a list of vertex arrays. | 
| glViewport | Sets the viewport. |