    --------------------------------------------------------------------------------
    -- |
    -- Module      :  Graphics.Rendering.OpenGL.GL.Antialiasing
    -- Copyright   :  (c) Sven Panne 2002-2019
    -- License     :  BSD3
    --
    -- Maintainer  :  Sven Panne <svenpanne@gmail.com>
    -- Stability   :  stable
    -- Portability :  portable
    --
    -- This module corresponds to section 3.2 (Antialiasing) of the OpenGL 2.1
    -- specs.
    --
    --------------------------------------------------------------------------------

    module Graphics.Rendering.OpenGL.GL.Antialiasing (
       sampleBuffers, samples, multisample, subpixelBits
    ) where

    import Data.StateVar
    import Graphics.Rendering.OpenGL.GL.Capability
    import Graphics.Rendering.OpenGL.GL.QueryUtils
    import Graphics.GL

    --------------------------------------------------------------------------------

    sampleBuffers :: GettableStateVar GLsizei
    sampleBuffers :: GettableStateVar GLsizei
    sampleBuffers = PName1I -> GettableStateVar GLsizei
    forall p. GetPName1I p => p -> GettableStateVar GLsizei
    antialiasingInfo PName1I
    GetSampleBuffers

    samples :: GettableStateVar GLsizei
    samples :: GettableStateVar GLsizei
    samples = PName1I -> GettableStateVar GLsizei
    forall p. GetPName1I p => p -> GettableStateVar GLsizei
    antialiasingInfo PName1I
    GetSamples

    multisample :: StateVar Capability
    multisample :: StateVar Capability
    multisample = EnableCap -> StateVar Capability
    makeCapability EnableCap
    CapMultisample

    subpixelBits :: GettableStateVar GLsizei
    subpixelBits :: GettableStateVar GLsizei
    subpixelBits = PName1I -> GettableStateVar GLsizei
    forall p. GetPName1I p => p -> GettableStateVar GLsizei
    antialiasingInfo PName1I
    GetSubpixelBits

    antialiasingInfo :: GetPName1I p => p -> GettableStateVar GLsizei
    antialiasingInfo :: forall p. GetPName1I p => p -> GettableStateVar GLsizei
    antialiasingInfo = GettableStateVar GLsizei -> GettableStateVar GLsizei
    forall a. IO a -> IO a
    makeGettableStateVar (GettableStateVar GLsizei -> GettableStateVar GLsizei)
    -> (p -> GettableStateVar GLsizei) -> p -> GettableStateVar GLsizei
    forall b c a. (b -> c) -> (a -> b) -> a -> c
    . (GLsizei -> GLsizei) -> p -> GettableStateVar GLsizei
    forall p a. GetPName1I p => (GLsizei -> a) -> p -> IO a
    forall a. (GLsizei -> a) -> p -> IO a
    getSizei1 GLsizei -> GLsizei
    forall a. a -> a
    id