Copyright | (c) Sven Panne 2002-2018 |
---|---|

License | BSD3 |

Maintainer | Sven Panne <svenpanne@gmail.com> |

Stability | stable |

Portability | portable |

Safe Haskell | None |

Language | Haskell2010 |

This module corresponds to section 10.9 (Rectangles) of the OpenGL 4.4 specs.

## Synopsis

- class Rect a where

# Documentation

`rect`

and `rectv`

support efficient specification of rectangles as two
corner points. Each rectangle command takes four arguments, organized either
as two consecutive pairs of (*x*, *y*) coordinates, or as two pointers to
arrays, each containing an (*x*, *y*) pair. The resulting rectangle is
defined in the *z* = 0 plane.

is exactly equivalent to the
following sequence:`rect`

(`Vertex2`

x1 y1) (`Vertex2`

x2, y2)

`renderPrimitive`

`Polygon`

$ do`vertex`

(`Vertex2`

x1 y1)`vertex`

(`Vertex2`

x2 y1)`vertex`

(`Vertex2`

x2 y2)`vertex`

(`Vertex2`

x1 y2)

Note that if the second vertex is above and to the right of the first vertex, the rectangle is constructed with a counterclockwise winding.