glPolygonOffset function

The glPolygonOffset function sets the scale and units OpenGL uses to calculate depth values.

Syntax

void WINAPI glPolygonOffset(
   GLfloat factor,
   GLfloat units
);

Parameters

factor

Specifies a scale factor that is used to create a variable depth offset for each polygon. The initial value is zero.

units

Specifies a value that is multiplied by an implementation-specific value to create a constant depth offset. The initial value is 0.

Return value

This function does not return a value.

Error codes

The following error code can be retrieved by the glGetError function.

Name Meaning
GL_INVALID_OPERATION
The function was called between a call to glBegin and the corresponding call to glEnd.

Remarks

When GL_POLYGON_OFFSET is enabled, each fragment's depth value will be offset after it is interpolated from the depth values of the appropriate vertices. The value of the offset is factor * ?z + r *units, where ?z is a measurement of the change in depth relative to the screen area of the polygon, and r is the smallest value that is guaranteed to produce a resolvable offset for a given implementation. The offset is added before the depth test is performed and before the value is written into the depth buffer.

The glPolygonOffset function is useful for rendering hidden-line images, for applying decals to surfaces, and for rendering solids with highlighted edges.

The glPolygonOffset function has no effect on depth coordinates placed in the feedback buffer. It also has no effect on selection.

The following functions retrieve information related to glPolygonOffset:

  • glGet with argument GL_POLYGON_OFFSET_FACTOR
  • glGet with argument GL_POLYGON_OFFSET_UNITS
  • glIsEnabled with argument GL_POLYGON_OFFSET_FILL
  • glIsEnabled with argument GL_POLYGON_OFFSET_LINE
  • glIsEnabled with argument GL_POLYGON_OFFSET_POINT

Note

The glPolygonOffset function is only available in OpenGl version 1.1 or greater.

Requirements

Requirement Value
Minimum supported client
Windows 2000 Professional [desktop apps only]
Minimum supported server
Windows 2000 Server [desktop apps only]
Header
Gl.h
Library
Opengl32.lib
DLL
Opengl32.dll

See also

glDepthFunc

glDisable

glEnable

glGet

glIsEnabled

glLineWidth

glStencilOp

glTexEnv