Light | Dark

# docs.GL

OpenGL 3
OpenGL 2

# glPolygonStipple

## Name

glPolygonStipple — set the polygon stippling pattern

## C Specification

`void glPolygonStipple(` | const GLubyte * | pattern`)`;

## Parameters

`pattern`

  Specifies a pointer to a 32 × 32 stipple pattern that will be unpacked from memory in the same way that glDrawPixels unpacks pixels.

## Description

Polygon stippling, like line stippling (see glLineStipple), masks out certain fragments produced by rasterization, creating a pattern. Stippling is independent of polygon antialiasing.

`pattern` is a pointer to a 32 × 32 stipple pattern that is stored in memory just like the pixel data supplied to a glDrawPixels call with height and width both equal to 32, a pixel format of `GL_COLOR_INDEX`, and data type of `GL_BITMAP`. That is, the stipple pattern is represented as a 32 × 32 array of 1-bit color indices packed in unsigned bytes. glPixelStore parameters like `GL_UNPACK_SWAP_BYTES` and `GL_UNPACK_LSB_FIRST` affect the assembling of the bits into a stipple pattern. Pixel transfer operations (shift, offset, pixel map) are not applied to the stipple image, however.

If a non-zero named buffer object is bound to the `GL_PIXEL_UNPACK_BUFFER` target (see glBindBuffer) while a stipple pattern is specified, `pattern` is treated as a byte offset into the buffer object's data store.

To enable and disable polygon stippling, call glEnable and glDisable with argument `GL_POLYGON_STIPPLE`. Polygon stippling is initially disabled. If it's enabled, a rasterized polygon fragment with window coordinates x w and y w is sent to the next stage of the GL if and only if the ( x w % 32 )th bit in the ( y w % 32 )th row of the stipple pattern is 1 (one). When polygon stippling is disabled, it is as if the stipple pattern consists of all 1's.

## Errors

`GL_INVALID_OPERATION` is generated if a non-zero buffer object name is bound to the `GL_PIXEL_UNPACK_BUFFER` target and the buffer object's data store is currently mapped.

`GL_INVALID_OPERATION` is generated if a non-zero buffer object name is bound to the `GL_PIXEL_UNPACK_BUFFER` target and the data would be unpacked from the buffer object such that the memory reads required would exceed the data store size.

`GL_INVALID_OPERATION` is generated if `glPolygonStipple` is executed between the execution of glBegin and the corresponding execution of glEnd.

## Associated Gets

glGetPolygonStipple

glIsEnabled with argument `GL_POLYGON_STIPPLE`

glGet with argument `GL_PIXEL_UNPACK_BUFFER_BINDING`

## See Also

glDrawPixels, glLineStipple, glPixelStore, glPixelTransfer

## Copyright

Copyright © 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see https://web.archive.org/web/20171022161616/http://oss.sgi.com/projects/FreeB/.

Think you can improve this page? Edit this page on GitHub.