-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A binding for the OpenGL graphics system -- -- A Haskell binding for the OpenGL graphics system (GL, version 4.6) and -- its accompanying utility library (GLU, version 1.3). -- -- OpenGL is the industry's most widely used and supported 2D and 3D -- graphics application programming interface (API), incorporating a -- broad set of rendering, texture mapping, special effects, and other -- powerful visualization functions. For more information about OpenGL -- and its various extensions, please see http://www.opengl.org/ -- and http://www.opengl.org/registry/. @package OpenGL @version 3.0.3.0 -- | This module corresponds to section 2.3.2 (Flush and Finish) of the -- OpenGL 4.4 specs. module Graphics.Rendering.OpenGL.GL.FlushFinish -- | Different GL implementations buffer commands in several different -- locations, including network buffers and the graphics accelerator -- itself. flush empties all of these buffers, causing all issued -- commands to be executed as quickly as they are accepted by the actual -- rendering engine. Though this execution may not be completed in any -- particular time period, it does complete in finite time. -- -- Because any GL program might be executed over a network, or on an -- accelerator that buffers commands, all programs should call -- flush whenever they count on having all of their previously -- issued commands completed. For example, call flush before -- waiting for user input that depends on the generated image. -- -- Note that flush can return at any time. It does not wait until -- the execution of all previously issued GL commands is complete. flush :: IO () -- | finish does not return until the effects of all previously -- called GL commands are complete. Such effects include all changes to -- GL state, all changes to connection state, and all changes to the -- frame buffer contents. -- -- Note that finish requires a round trip to the server. finish :: IO () -- | This module corresponds to section 6.1.14 (Saving and Restoring State) -- of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.SavingState data ServerAttributeGroup CurrentAttributes :: ServerAttributeGroup PointAttributes :: ServerAttributeGroup LineAttributes :: ServerAttributeGroup PolygonAttributes :: ServerAttributeGroup PolygonStippleAttributes :: ServerAttributeGroup PixelModeAttributes :: ServerAttributeGroup LightingAttributes :: ServerAttributeGroup FogAttributes :: ServerAttributeGroup DepthBufferAttributes :: ServerAttributeGroup AccumBufferAttributes :: ServerAttributeGroup StencilBufferAttributes :: ServerAttributeGroup ViewportAttributes :: ServerAttributeGroup TransformAttributes :: ServerAttributeGroup EnableAttributes :: ServerAttributeGroup ColorBufferAttributes :: ServerAttributeGroup HintAttributes :: ServerAttributeGroup EvalAttributes :: ServerAttributeGroup ListAttributes :: ServerAttributeGroup TextureAttributes :: ServerAttributeGroup ScissorAttributes :: ServerAttributeGroup MultisampleAttributes :: ServerAttributeGroup AllServerAttributes :: ServerAttributeGroup preservingAttrib :: [ServerAttributeGroup] -> IO a -> IO a data ClientAttributeGroup PixelStoreAttributes :: ClientAttributeGroup VertexArrayAttributes :: ClientAttributeGroup AllClientAttributes :: ClientAttributeGroup preservingClientAttrib :: [ClientAttributeGroup] -> IO a -> IO a instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.SavingState.ClientAttributeGroup instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.SavingState.ClientAttributeGroup instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.SavingState.ClientAttributeGroup instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.SavingState.ServerAttributeGroup instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.SavingState.ServerAttributeGroup instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.SavingState.ServerAttributeGroup -- | This package contains tensor data types and their instances for some -- basic type classes. module Graphics.Rendering.OpenGL.GL.Tensor -- | A vertex with y=0, z=0 and w=1. newtype Vertex1 a Vertex1 :: a -> Vertex1 a -- | A vertex with z=0 and w=1. data Vertex2 a Vertex2 :: !a -> !a -> Vertex2 a -- | A vertex with w=1. data Vertex3 a Vertex3 :: !a -> !a -> !a -> Vertex3 a -- | A fully-fledged four-dimensional vertex. data Vertex4 a Vertex4 :: !a -> !a -> !a -> !a -> Vertex4 a -- | A one-dimensional vector. newtype Vector1 a Vector1 :: a -> Vector1 a -- | A two-dimensional vector. data Vector2 a Vector2 :: !a -> !a -> Vector2 a -- | A three-dimensional vector. data Vector3 a Vector3 :: !a -> !a -> !a -> Vector3 a -- | A four-dimensional vector. data Vector4 a Vector4 :: !a -> !a -> !a -> !a -> Vector4 a instance GHC.Read.Read a => GHC.Read.Read (Graphics.Rendering.OpenGL.GL.Tensor.Vector4 a) instance GHC.Show.Show a => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Tensor.Vector4 a) instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Graphics.Rendering.OpenGL.GL.Tensor.Vector4 a) instance GHC.Arr.Ix a => GHC.Arr.Ix (Graphics.Rendering.OpenGL.GL.Tensor.Vector4 a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Tensor.Vector4 a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Tensor.Vector4 a) instance GHC.Read.Read a => GHC.Read.Read (Graphics.Rendering.OpenGL.GL.Tensor.Vector3 a) instance GHC.Show.Show a => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Tensor.Vector3 a) instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Graphics.Rendering.OpenGL.GL.Tensor.Vector3 a) instance GHC.Arr.Ix a => GHC.Arr.Ix (Graphics.Rendering.OpenGL.GL.Tensor.Vector3 a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Tensor.Vector3 a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Tensor.Vector3 a) instance GHC.Read.Read a => GHC.Read.Read (Graphics.Rendering.OpenGL.GL.Tensor.Vector2 a) instance GHC.Show.Show a => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Tensor.Vector2 a) instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Graphics.Rendering.OpenGL.GL.Tensor.Vector2 a) instance GHC.Arr.Ix a => GHC.Arr.Ix (Graphics.Rendering.OpenGL.GL.Tensor.Vector2 a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Tensor.Vector2 a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Tensor.Vector2 a) instance GHC.Read.Read a => GHC.Read.Read (Graphics.Rendering.OpenGL.GL.Tensor.Vector1 a) instance GHC.Show.Show a => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Tensor.Vector1 a) instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Graphics.Rendering.OpenGL.GL.Tensor.Vector1 a) instance GHC.Arr.Ix a => GHC.Arr.Ix (Graphics.Rendering.OpenGL.GL.Tensor.Vector1 a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Tensor.Vector1 a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Tensor.Vector1 a) instance GHC.Read.Read a => GHC.Read.Read (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance GHC.Show.Show a => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance GHC.Arr.Ix a => GHC.Arr.Ix (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance GHC.Read.Read a => GHC.Read.Read (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance GHC.Show.Show a => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance GHC.Arr.Ix a => GHC.Arr.Ix (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance GHC.Read.Read a => GHC.Read.Read (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance GHC.Show.Show a => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance GHC.Arr.Ix a => GHC.Arr.Ix (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance GHC.Read.Read a => GHC.Read.Read (Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 a) instance GHC.Show.Show a => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 a) instance GHC.Enum.Bounded a => GHC.Enum.Bounded (Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 a) instance GHC.Arr.Ix a => GHC.Arr.Ix (Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 a) instance GHC.Base.Functor Graphics.Rendering.OpenGL.GL.Tensor.Vector4 instance GHC.Base.Applicative Graphics.Rendering.OpenGL.GL.Tensor.Vector4 instance Data.Foldable.Foldable Graphics.Rendering.OpenGL.GL.Tensor.Vector4 instance Data.Traversable.Traversable Graphics.Rendering.OpenGL.GL.Tensor.Vector4 instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Graphics.Rendering.OpenGL.GL.Tensor.Vector4 a) instance GHC.Base.Functor Graphics.Rendering.OpenGL.GL.Tensor.Vector3 instance GHC.Base.Applicative Graphics.Rendering.OpenGL.GL.Tensor.Vector3 instance Data.Foldable.Foldable Graphics.Rendering.OpenGL.GL.Tensor.Vector3 instance Data.Traversable.Traversable Graphics.Rendering.OpenGL.GL.Tensor.Vector3 instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Graphics.Rendering.OpenGL.GL.Tensor.Vector3 a) instance GHC.Base.Functor Graphics.Rendering.OpenGL.GL.Tensor.Vector2 instance GHC.Base.Applicative Graphics.Rendering.OpenGL.GL.Tensor.Vector2 instance Data.Foldable.Foldable Graphics.Rendering.OpenGL.GL.Tensor.Vector2 instance Data.Traversable.Traversable Graphics.Rendering.OpenGL.GL.Tensor.Vector2 instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Graphics.Rendering.OpenGL.GL.Tensor.Vector2 a) instance GHC.Base.Functor Graphics.Rendering.OpenGL.GL.Tensor.Vector1 instance GHC.Base.Applicative Graphics.Rendering.OpenGL.GL.Tensor.Vector1 instance Data.Foldable.Foldable Graphics.Rendering.OpenGL.GL.Tensor.Vector1 instance Data.Traversable.Traversable Graphics.Rendering.OpenGL.GL.Tensor.Vector1 instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Graphics.Rendering.OpenGL.GL.Tensor.Vector1 a) instance GHC.Base.Functor Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 instance GHC.Base.Applicative Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 instance Data.Foldable.Foldable Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 instance Data.Traversable.Traversable Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance GHC.Base.Functor Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 instance GHC.Base.Applicative Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 instance Data.Foldable.Foldable Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 instance Data.Traversable.Traversable Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance GHC.Base.Functor Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 instance GHC.Base.Applicative Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 instance Data.Foldable.Foldable Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 instance Data.Traversable.Traversable Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance GHC.Base.Functor Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 instance GHC.Base.Applicative Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 instance Data.Foldable.Foldable Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 instance Data.Traversable.Traversable Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 a) -- | This module corresponds to section 10.9 (Rectangles) of the OpenGL 4.4 -- specs. module Graphics.Rendering.OpenGL.GL.Rectangles -- | 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. -- -- rect (Vertex2 x1 y1) (Vertex2 x2, y2) is -- exactly equivalent to the following sequence: -- --
--   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. class Rect a rect :: Rect a => Vertex2 a -> Vertex2 a -> IO () rectv :: Rect a => Ptr a -> Ptr a -> IO () instance Graphics.Rendering.OpenGL.GL.Rectangles.Rect Graphics.GL.Types.GLshort instance Graphics.Rendering.OpenGL.GL.Rectangles.Rect Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.Rectangles.Rect Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.Rectangles.Rect Graphics.GL.Types.GLdouble -- | This module corresponds to section 2.5 (GL Errors) of the OpenGL 2.1 -- specs and chapter 8 (Errors) of the GLU specs, offering a generalized -- view of errors in GL and GLU. module Graphics.Rendering.OpenGL.GLU.Errors -- | GL/GLU errors consist of a general error category and a description of -- what went wrong. data Error Error :: ErrorCategory -> String -> Error -- | General GL/GLU error categories data ErrorCategory ContextLost :: ErrorCategory InvalidEnum :: ErrorCategory InvalidValue :: ErrorCategory InvalidOperation :: ErrorCategory InvalidFramebufferOperation :: ErrorCategory OutOfMemory :: ErrorCategory StackOverflow :: ErrorCategory StackUnderflow :: ErrorCategory TableTooLarge :: ErrorCategory TesselatorError :: ErrorCategory NURBSError :: ErrorCategory -- | When an error occurs, it is recorded in this state variable and no -- further errors are recorded. Reading errors returns the -- currently recorded errors (there may be more than one due to a -- possibly distributed implementation) and resets the state variable to -- [], re-enabling the recording of future errors. The value -- [] means that there has been no detectable error since the -- last time errors was read, or since the GL was initialized. errors :: GettableStateVar [Error] -- | This module corresponds to section 2.7 (Vertex Specification) of the -- OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.VertexSpec -- | Specify the (x, y, z, w) coordinates of a -- four-dimensional vertex. This must only be done during -- renderPrimitive, otherwise the behaviour is unspecified. The -- current values of the auxiliary vertex attributes are associated with -- the vertex. -- -- Note that there is no such thing as a "current vertex" which could be -- retrieved. class Vertex a vertex :: Vertex a => a -> IO () vertexv :: Vertex a => Ptr a -> IO () -- | The class of all types which can be used as a vertex coordinate. class VertexComponent a -- | The current texture coordinates (s, t, r, -- q) for the current texture unit (see activeTexture). The -- initial value is (0,0,0,1) for all texture units. currentTextureCoords :: StateVar (TexCoord4 GLfloat) -- | Change the current texture coordinates of the current or given texture -- unit. class TexCoord a texCoord :: TexCoord a => a -> IO () texCoordv :: TexCoord a => Ptr a -> IO () multiTexCoord :: TexCoord a => TextureUnit -> a -> IO () multiTexCoordv :: TexCoord a => TextureUnit -> Ptr a -> IO () -- | The class of all types which can be used as a texture coordinate. class TexCoordComponent a -- | Texture coordinates with t=0, r=0, and q=1. newtype TexCoord1 a TexCoord1 :: a -> TexCoord1 a -- | Texture coordinates with r=0 and q=1. data TexCoord2 a TexCoord2 :: !a -> !a -> TexCoord2 a -- | Texture coordinates with q=1. data TexCoord3 a TexCoord3 :: !a -> !a -> !a -> TexCoord3 a -- | Fully-fledged four-dimensional texture coordinates. data TexCoord4 a TexCoord4 :: !a -> !a -> !a -> !a -> TexCoord4 a -- | The current normal (x, y, z). The initial value -- is the unit vector (0, 0, 1). currentNormal :: StateVar (Normal3 GLfloat) -- | Change the current normal. Integral arguments are converted to -- floating-point with a linear mapping that maps the most positive -- representable integer value to 1.0, and the most negative -- representable integer value to -1.0. -- -- Normals specified with normal or normalv need not have -- unit length. If normalize is enabled, then normals of any -- length specified with normal or normalv are normalized -- after transformation. If rescaleNormal is enabled, normals are -- scaled by a scaling factor derived from the modelview matrix. -- rescaleNormal requires that the originally specified normals -- were of unit length, and that the modelview matrix contains only -- uniform scales for proper results. Normalization is initially -- disabled. class Normal a normal :: Normal a => a -> IO () normalv :: Normal a => Ptr a -> IO () -- | The class of all types which can be used as a component of a normal. class NormalComponent a data Normal3 a Normal3 :: !a -> !a -> !a -> Normal3 a -- | The current fog coordinate. The initial value is 0. currentFogCoord :: StateVar (FogCoord1 GLfloat) -- | Change the current fog coordinate. class FogCoord a fogCoord :: FogCoord a => a -> IO () fogCoordv :: FogCoord a => Ptr a -> IO () -- | The class of all types which can be used as the fog coordinate. class FogCoordComponent a -- | A fog coordinate. newtype FogCoord1 a FogCoord1 :: a -> FogCoord1 a -- | If rgbaMode contains True, the color buffers store RGBA -- value. If color indexes are stored, it contains False. rgbaMode :: GettableStateVar Bool currentColor :: StateVar (Color4 GLfloat) -- | Change the current color. class Color a color :: Color a => a -> IO () colorv :: Color a => Ptr a -> IO () currentSecondaryColor :: StateVar (Color3 GLfloat) -- | Change the current secondary color. class SecondaryColor a secondaryColor :: SecondaryColor a => a -> IO () secondaryColorv :: SecondaryColor a => Ptr a -> IO () -- | The class of all types which can be used as a color component. class ColorComponent a data Color3 a Color3 :: !a -> !a -> !a -> Color3 a -- | A fully-fledged RGBA color. data Color4 a Color4 :: !a -> !a -> !a -> !a -> Color4 a currentIndex :: StateVar (Index1 GLint) -- | Change the current color index. class Index a index :: Index a => a -> IO () indexv :: Index a => Ptr a -> IO () -- | The class of all types which can be used as a color index. class IndexComponent a -- | A color index. newtype Index1 a Index1 :: a -> Index1 a data IntegerHandling ToFloat :: IntegerHandling ToNormalizedFloat :: IntegerHandling KeepIntegral :: IntegerHandling newtype AttribLocation AttribLocation :: GLuint -> AttribLocation currentVertexAttrib :: AttribLocation -> StateVar (Vertex4 GLfloat) currentVertexAttribI :: AttribLocation -> StateVar (Vertex4 GLint) currentVertexAttribIu :: AttribLocation -> StateVar (Vertex4 GLuint) class VertexAttrib a vertexAttrib :: VertexAttrib a => IntegerHandling -> AttribLocation -> a -> IO () vertexAttribv :: VertexAttrib a => IntegerHandling -> AttribLocation -> Ptr a -> IO () -- | The class of all types which can be used as a generic vertex -- attribute. NOTE: Do not use the methods of this class directly, they -- were only exported by accident and will be hidden in future versions -- of this package. class (Storable a, Num a) => VertexAttribComponent a vertexAttrib1 :: VertexAttribComponent a => AttribLocation -> a -> IO () vertexAttrib2 :: VertexAttribComponent a => AttribLocation -> a -> a -> IO () vertexAttrib3 :: VertexAttribComponent a => AttribLocation -> a -> a -> a -> IO () vertexAttrib4 :: VertexAttribComponent a => AttribLocation -> a -> a -> a -> a -> IO () vertexAttrib1N :: VertexAttribComponent a => AttribLocation -> a -> IO () vertexAttrib2N :: VertexAttribComponent a => AttribLocation -> a -> a -> IO () vertexAttrib3N :: VertexAttribComponent a => AttribLocation -> a -> a -> a -> IO () vertexAttrib4N :: VertexAttribComponent a => AttribLocation -> a -> a -> a -> a -> IO () vertexAttrib1I :: VertexAttribComponent a => AttribLocation -> a -> IO () vertexAttrib2I :: VertexAttribComponent a => AttribLocation -> a -> a -> IO () vertexAttrib3I :: VertexAttribComponent a => AttribLocation -> a -> a -> a -> IO () vertexAttrib4I :: VertexAttribComponent a => AttribLocation -> a -> a -> a -> a -> IO () vertexAttrib1v :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib2v :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib3v :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib4v :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib1Nv :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib2Nv :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib3Nv :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib4Nv :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib1Iv :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib2Iv :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib3Iv :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () vertexAttrib4Iv :: VertexAttribComponent a => AttribLocation -> Ptr a -> IO () -- | Identifies a texture unit via its number, which must be in the range -- of (0 .. maxTextureUnit). newtype TextureUnit TextureUnit :: GLuint -> TextureUnit -- | An implementation must support at least 2 texture units, but it may -- support up to 32 ones. This state variable can be used to query the -- actual implementation limit. maxTextureUnit :: GettableStateVar TextureUnit instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.VertexSpec.IntegerHandling instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.VertexSpec.IntegerHandling instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.VertexSpec.IntegerHandling instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.Tensor.Vector1 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.Tensor.Vector2 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.Tensor.Vector3 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.Tensor.Vector4 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord1 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord2 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord3 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord4 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.VertexAttributes.Normal3 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.VertexAttributes.FogCoord1 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.VertexAttributes.Color3 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.VertexAttributes.Color4 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttrib (Graphics.Rendering.OpenGL.GL.VertexAttributes.Index1 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent Graphics.GL.Types.GLbyte instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent Graphics.GL.Types.GLubyte instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent Graphics.GL.Types.GLshort instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent Graphics.GL.Types.GLushort instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent Graphics.GL.Types.GLuint instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexAttribComponent Graphics.GL.Types.GLdouble instance Graphics.Rendering.OpenGL.GL.VertexSpec.IndexComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.Index (Graphics.Rendering.OpenGL.GL.VertexAttributes.Index1 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.IndexComponent Graphics.GL.Types.GLshort instance Graphics.Rendering.OpenGL.GL.VertexSpec.IndexComponent Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.VertexSpec.IndexComponent Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.VertexSpec.IndexComponent Graphics.GL.Types.GLdouble instance Graphics.Rendering.OpenGL.GL.VertexSpec.IndexComponent Graphics.GL.Types.GLubyte instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.SecondaryColor (Graphics.Rendering.OpenGL.GL.VertexAttributes.Color3 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.Color (Graphics.Rendering.OpenGL.GL.VertexAttributes.Color3 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.Color (Graphics.Rendering.OpenGL.GL.VertexAttributes.Color4 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent Graphics.GL.Types.GLbyte instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent Graphics.GL.Types.GLshort instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent Graphics.GL.Types.GLdouble instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent Graphics.GL.Types.GLubyte instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent Graphics.GL.Types.GLushort instance Graphics.Rendering.OpenGL.GL.VertexSpec.ColorComponent Graphics.GL.Types.GLuint instance Graphics.Rendering.OpenGL.GL.VertexSpec.FogCoordComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.FogCoord (Graphics.Rendering.OpenGL.GL.VertexAttributes.FogCoord1 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.FogCoordComponent Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.VertexSpec.FogCoordComponent Graphics.GL.Types.GLdouble instance Graphics.Rendering.OpenGL.GL.VertexSpec.NormalComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.Normal (Graphics.Rendering.OpenGL.GL.VertexAttributes.Normal3 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.NormalComponent Graphics.GL.Types.GLbyte instance Graphics.Rendering.OpenGL.GL.VertexSpec.NormalComponent Graphics.GL.Types.GLshort instance Graphics.Rendering.OpenGL.GL.VertexSpec.NormalComponent Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.VertexSpec.NormalComponent Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.VertexSpec.NormalComponent Graphics.GL.Types.GLdouble instance Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoordComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoord (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord1 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoordComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoord (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord2 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoordComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoord (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord3 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoordComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoord (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord4 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoordComponent Graphics.GL.Types.GLshort instance Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoordComponent Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoordComponent Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.VertexSpec.TexCoordComponent Graphics.GL.Types.GLdouble instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.Vertex (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.Vertex (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexComponent a => Graphics.Rendering.OpenGL.GL.VertexSpec.Vertex (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexComponent Graphics.GL.Types.GLshort instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexComponent Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexComponent Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.VertexSpec.VertexComponent Graphics.GL.Types.GLdouble -- | This module contains functions related to shader limits. module Graphics.Rendering.OpenGL.GL.Shaders.Limits -- | Contains the number of hardware units that can be used to access -- texture maps from the vertex processor. The minimum legal value is 0. maxVertexTextureImageUnits :: GettableStateVar GLsizei -- | Contains the total number of hardware units that can be used to access -- texture maps from the fragment processor. The minimum legal value is -- 2. maxTextureImageUnits :: GettableStateVar GLsizei -- | Contains the total number of hardware units that can be used to access -- texture maps from the vertex processor and the fragment processor -- combined. Note: If the vertex shader and the fragment processing stage -- access the same texture image unit, then that counts as using two -- texture image units. The minimum legal value is 2. maxCombinedTextureImageUnits :: GettableStateVar GLsizei -- | Contains the number of texture coordinate sets that are available. The -- minimum legal value is 2. maxTextureCoords :: GettableStateVar GLsizei -- | Contains the number of individual components (i.e., floating-point, -- integer or boolean values) that are available for vertex shader -- uniform variables. The minimum legal value is 512. maxVertexUniformComponents :: GettableStateVar GLsizei -- | Contains the number of individual components (i.e., floating-point, -- integer or boolean values) that are available for fragment shader -- uniform variables. The minimum legal value is 64. maxFragmentUniformComponents :: GettableStateVar GLsizei -- | Contains the number of active vertex attributes that are available. -- The minimum legal value is 16. maxVertexAttribs :: GettableStateVar GLsizei -- | Contains the number of individual floating-point values available for -- varying variables. The minimum legal value is 32. maxVaryingFloats :: GettableStateVar GLsizei -- | This module corresponds to section 5.2 (Selection) of the OpenGL 2.1 -- specs. module Graphics.Rendering.OpenGL.GL.Selection data HitRecord HitRecord :: GLfloat -> GLfloat -> [Name] -> HitRecord getHitRecords :: GLsizei -> IO a -> IO (a, Maybe [HitRecord]) newtype Name Name :: GLuint -> Name withName :: Name -> IO a -> IO a loadName :: Name -> IO () maxNameStackDepth :: GettableStateVar GLsizei nameStackDepth :: GettableStateVar GLsizei data RenderMode Render :: RenderMode Feedback :: RenderMode Select :: RenderMode renderMode :: GettableStateVar RenderMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Selection.HitRecord instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Selection.HitRecord instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Selection.HitRecord instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Selection.Name instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Selection.Name instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Selection.Name -- | This module corresponds to section 5.3 (Feedback) of the OpenGL 2.1 -- specs. module Graphics.Rendering.OpenGL.GL.Feedback data FeedbackToken PointToken :: VertexInfo -> FeedbackToken LineToken :: VertexInfo -> VertexInfo -> FeedbackToken LineResetToken :: VertexInfo -> VertexInfo -> FeedbackToken PolygonToken :: [VertexInfo] -> FeedbackToken BitmapToken :: VertexInfo -> FeedbackToken DrawPixelToken :: VertexInfo -> FeedbackToken CopyPixelToken :: VertexInfo -> FeedbackToken PassThroughToken :: PassThroughValue -> FeedbackToken data VertexInfo Vertex2D :: Vertex2 GLfloat -> VertexInfo Vertex3D :: Vertex3 GLfloat -> VertexInfo Vertex3DColor :: Vertex3 GLfloat -> ColorInfo -> VertexInfo Vertex3DColorTexture :: Vertex3 GLfloat -> ColorInfo -> TexCoord4 GLfloat -> VertexInfo Vertex4DColorTexture :: Vertex4 GLfloat -> ColorInfo -> TexCoord4 GLfloat -> VertexInfo type ColorInfo = Either (Index1 GLint) (Color4 GLfloat) data FeedbackType TwoD :: FeedbackType ThreeD :: FeedbackType ThreeDColor :: FeedbackType ThreeDColorTexture :: FeedbackType FourDColorTexture :: FeedbackType getFeedbackTokens :: GLsizei -> FeedbackType -> IO a -> IO (a, Maybe [FeedbackToken]) newtype PassThroughValue PassThroughValue :: GLfloat -> PassThroughValue passThrough :: PassThroughValue -> IO () instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Feedback.FeedbackToken instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Feedback.FeedbackToken instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Feedback.FeedbackToken instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Feedback.PassThroughValue instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Feedback.PassThroughValue instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Feedback.PassThroughValue instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Feedback.FeedbackType instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Feedback.FeedbackType instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Feedback.FeedbackType instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Feedback.VertexInfo instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Feedback.VertexInfo instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Feedback.VertexInfo -- | This module corresponds to section 3.6.1 (Pixel Storage Modes) of the -- OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelStorage data PixelStoreDirection Pack :: PixelStoreDirection Unpack :: PixelStoreDirection swapBytes :: PixelStoreDirection -> StateVar Bool lsbFirst :: PixelStoreDirection -> StateVar Bool rowLength :: PixelStoreDirection -> StateVar GLint skipRows :: PixelStoreDirection -> StateVar GLint skipPixels :: PixelStoreDirection -> StateVar GLint rowAlignment :: PixelStoreDirection -> StateVar GLint imageHeight :: PixelStoreDirection -> StateVar GLint skipImages :: PixelStoreDirection -> StateVar GLint instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelStorage.PixelStoreDirection instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelStorage.PixelStoreDirection instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelStorage.PixelStoreDirection -- | This module corresponds to a part of section 3.6.1 (Pixel Storage -- Modes) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap data PixelMapTarget IToI :: PixelMapTarget SToS :: PixelMapTarget IToR :: PixelMapTarget IToG :: PixelMapTarget IToB :: PixelMapTarget IToA :: PixelMapTarget RToR :: PixelMapTarget GToG :: PixelMapTarget BToB :: PixelMapTarget AToA :: PixelMapTarget class Storable c => PixelMapComponent c class PixelMap m withNewPixelMap :: (PixelMap m, PixelMapComponent c) => Int -> (Ptr c -> IO ()) -> IO (m c) withPixelMap :: (PixelMap m, PixelMapComponent c) => m c -> (Int -> Ptr c -> IO a) -> IO a newPixelMap :: (PixelMap m, PixelMapComponent c) => [c] -> IO (m c) getPixelMapComponents :: (PixelMap m, PixelMapComponent c) => m c -> IO [c] data GLpixelmap a maxPixelMapTable :: GettableStateVar GLsizei pixelMap :: (PixelMap m, PixelMapComponent c) => PixelMapTarget -> StateVar (m c) -- | Convenience state variable pixelMapIToRGBA :: PixelMapComponent c => StateVar [Color4 c] -- | Convenience state variable pixelMapRGBAToRGBA :: PixelMapComponent c => StateVar [Color4 c] instance GHC.Show.Show (Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.GLpixelmap a) instance GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.GLpixelmap a) instance GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.GLpixelmap a) instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.PixelMapTarget instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.PixelMapTarget instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.PixelMapTarget instance Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.PixelMap Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.GLpixelmap instance Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.PixelMapComponent Graphics.GL.Types.GLushort instance Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.PixelMapComponent Graphics.GL.Types.GLuint instance Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelMap.PixelMapComponent Graphics.GL.Types.GLfloat -- | This module corresponds to section 5.6 (Hints) of the OpenGL 2.1 -- specs. module Graphics.Rendering.OpenGL.GL.Hints data HintTarget PerspectiveCorrection :: HintTarget PointSmooth :: HintTarget LineSmooth :: HintTarget PolygonSmooth :: HintTarget Fog :: HintTarget GenerateMipmap :: HintTarget TextureCompression :: HintTarget PackCMYK :: HintTarget UnpackCMYK :: HintTarget data HintMode DontCare :: HintMode Fastest :: HintMode Nicest :: HintMode hint :: HintTarget -> StateVar HintMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Hints.HintMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Hints.HintMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Hints.HintMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Hints.HintTarget instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Hints.HintTarget instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Hints.HintTarget -- | This module corresponds to parts of section 6.1.5 (String Queries) of -- the OpenGL 3.2 specs. module Graphics.Rendering.OpenGL.GL.StringQueries vendor :: GettableStateVar String renderer :: GettableStateVar String glVersion :: GettableStateVar String glExtensions :: GettableStateVar [String] extensionSupported :: String -> GettableStateVar Bool shadingLanguageVersion :: GettableStateVar String -- | A utility function to be used with e.g. glVersion or -- shadingLanguageVersion, transforming a variable containing a -- string of the form major.minor[optional rest] into a variable -- containing a numeric major/minor version. If the string is malformed, -- which should never happen with a sane OpenGL implementation, it is -- transformed to (-1,-1). majorMinor :: GettableStateVar String -> GettableStateVar (Int, Int) data ContextProfile' CoreProfile' :: ContextProfile' CompatibilityProfile' :: ContextProfile' contextProfile :: GettableStateVar [ContextProfile'] instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.StringQueries.ContextProfile' instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.StringQueries.ContextProfile' instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.StringQueries.ContextProfile' -- | This module corresponds to section 10.1 (Primitive Types) of the -- OpenGL 4.4 specs. module Graphics.Rendering.OpenGL.GL.PrimitiveMode -- | Specification of the way the vertices given during -- renderPrimitive are interpreted. In the description of the -- constructors, n is an integer count starting at one, and -- N is the total number of vertices specified. data PrimitiveMode -- | Treats each vertex as a single point. Vertex n defines point -- n. N points are drawn. Points :: PrimitiveMode -- | Treats each pair of vertices as an independent line segment. Vertices -- 2n-1 and 2n define line n. N/2 lines are -- drawn. Lines :: PrimitiveMode -- | Draws a connected group of line segments from the first vertex to the -- last, then back to the first. Vertices n and n+1 define -- line n. The last line, however, is defined by vertices N -- and 1. N lines are drawn. LineLoop :: PrimitiveMode -- | Draws a connected group of line segments from the first vertex to the -- last. Vertices n and n+1 define line n. -- N-1 lines are drawn. LineStrip :: PrimitiveMode -- | Treats each triplet of vertices as an independent triangle. Vertices -- 3n-2, 3n-1, and 3n define triangle n. -- N/3 triangles are drawn. Triangles :: PrimitiveMode -- | Draws a connected group of triangles. One triangle is defined for each -- vertex presented after the first two vertices. For odd n, -- vertices n, n+1, and n+2 define triangle -- n. For even n, vertices n+1, n, and -- n+2 define triangle n. N-2 triangles are drawn. TriangleStrip :: PrimitiveMode -- | Draws a connected group of triangles. One triangle is defined for each -- vertex presented after the first two vertices. Vertices 1, n+1, -- and n+2 define triangle n. N-2 triangles are -- drawn. TriangleFan :: PrimitiveMode -- | Treats each group of four vertices as an independent quadrilateral. -- Vertices 4n-3, 4n-2, 4n-1, and 4n define -- quadrilateral n. N/4 quadrilaterals are drawn. Quads :: PrimitiveMode -- | Draws a connected group of quadrilaterals. One quadrilateral is -- defined for each pair of vertices presented after the first pair. -- Vertices 2n-1, 2n, 2n+2, and 2n+1 define -- quadrilateral n. N/2-1 quadrilaterals are drawn. Note -- that the order in which vertices are used to construct a quadrilateral -- from strip data is different from that used with independent data. QuadStrip :: PrimitiveMode -- | Draws a single, convex polygon. Vertices 1 through N define -- this polygon. Polygon :: PrimitiveMode -- | Only used in conjunction with tessellation. The number of vertices per -- patch can be set with patchVertices. Patches :: PrimitiveMode -- | patchVertices is the number of vertices per patch primitive. -- -- An InvalidValue is generated if patchVertices is set to -- a value less than or equal to zero or greater than the -- implementation-dependent maximum value maxPatchVertices. patchVertices :: StateVar GLsizei -- | Contains the maximumum number of vertices in a single patch. maxPatchVertices :: GettableStateVar GLsizei -- | Contains the four default outer tessellation levels to be used when no -- tessellation control shader is present. patchDefaultOuterLevel :: StateVar (GLfloat, GLfloat, GLfloat, GLfloat) -- | Contains the two default inner tessellation levels to be used when no -- tessellation control shader is present. patchDefaultInnerLevel :: StateVar (GLfloat, GLfloat) -- | Contains the maximum allowed tessellation level. maxTessGenLevel :: GettableStateVar GLsizei instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PrimitiveMode.PrimitiveMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PrimitiveMode.PrimitiveMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PrimitiveMode.PrimitiveMode -- | This module corresponds to section 10.8 (Drawing Commands Using Begin -- and End) of the OpenGL 4.4 specs. module Graphics.Rendering.OpenGL.GL.BeginEnd -- | Delimit the vertices that define a primitive or a group of like -- primitives. -- -- Only a subset of GL commands can be used in the delimited action: -- Those for specifying vertex coordinates (vertex, -- vertexv), vertex colors (color, colorv, -- secondaryColor, secondaryColorv, index, -- indexv), normal (normal, normalv), texture -- coordinates (texCoord, texCoordv, multiTexCoord, -- multiTexCoordv), and fog coordinates (fogCoord, -- fogCoordv). Additionally, evalPoint1, evalPoint2, -- evalCoord1, evalCoord1v, evalCoord2, -- evalCoord2v, materialAmbient, materialDiffuse, -- materialAmbientAndDiffuse, materialSpecular, -- materialEmission, materialShininess, callList, -- callLists, and setting edgeFlag are allowed. Writing the -- respective state variables is allowed in the delimited action, too. -- -- Regardless of the chosen PrimitiveMode, there is no limit to -- the number of vertices that can be defined during a single -- renderPrimitive. Lines, triangles, quadrilaterals, and polygons -- that are incompletely specified are not drawn. Incomplete -- specification results when either too few vertices are provided to -- specify even a single primitive or when an incorrect multiple of -- vertices is specified. The incomplete primitive is ignored; the rest -- are drawn. -- -- The minimum specification of vertices for each primitive is as -- follows: 1 for a point, 2 for a line, 3 for a triangle, 4 for a -- quadrilateral, and 3 for a polygon. Modes that require a certain -- multiple of vertices are Lines (2), Triangles (3), -- Quads (4), and QuadStrip (2). renderPrimitive :: PrimitiveMode -> IO a -> IO a -- | A more efficient, but potentially dangerous version of -- renderPrimitive: The given action is not allowed to throw an -- exception. unsafeRenderPrimitive :: PrimitiveMode -> IO a -> IO a primitiveRestart :: IO () -- | A vertex can begin an edge which lies in the interior of its polygon -- or on the polygon's boundary. data EdgeFlag BeginsInteriorEdge :: EdgeFlag BeginsBoundaryEdge :: EdgeFlag -- | Each vertex of a polygon, separate triangle, or separate quadrilateral -- specified during renderPrimitive is marked as the start of -- either a boundary or nonboundary (interior) edge. -- -- The vertices of connected triangles and connected quadrilaterals are -- always marked as boundary, regardless of the value of the edge flag. -- -- Boundary and nonboundary edge flags on vertices are significant only -- if polygonMode is set to Point or Line. -- -- Note that the current edge flag can be updated at any time, in -- particular during renderPrimitive. edgeFlag :: StateVar EdgeFlag -- | This module corresponds to section 2.8 (Vertex Arrays) of the OpenGL -- 2.1 specs. module Graphics.Rendering.OpenGL.GL.VertexArrays type NumComponents = GLint data DataType UnsignedByte :: DataType Byte :: DataType UnsignedShort :: DataType Short :: DataType UnsignedInt :: DataType Int :: DataType HalfFloat :: DataType Float :: DataType UnsignedByte332 :: DataType UnsignedByte233Rev :: DataType UnsignedShort565 :: DataType UnsignedShort565Rev :: DataType UnsignedShort4444 :: DataType UnsignedShort4444Rev :: DataType UnsignedShort5551 :: DataType UnsignedShort1555Rev :: DataType UnsignedInt8888 :: DataType UnsignedInt8888Rev :: DataType UnsignedInt1010102 :: DataType UnsignedInt2101010Rev :: DataType UnsignedInt248 :: DataType UnsignedInt10f11f11fRev :: DataType UnsignedInt5999Rev :: DataType Float32UnsignedInt248Rev :: DataType Bitmap :: DataType UnsignedShort88 :: DataType UnsignedShort88Rev :: DataType Double :: DataType TwoBytes :: DataType ThreeBytes :: DataType FourBytes :: DataType type Stride = GLsizei data VertexArrayDescriptor a VertexArrayDescriptor :: !NumComponents -> !DataType -> !Stride -> !Ptr a -> VertexArrayDescriptor a data Capability Disabled :: Capability Enabled :: Capability data ClientArrayType VertexArray :: ClientArrayType NormalArray :: ClientArrayType ColorArray :: ClientArrayType IndexArray :: ClientArrayType TextureCoordArray :: ClientArrayType EdgeFlagArray :: ClientArrayType FogCoordArray :: ClientArrayType SecondaryColorArray :: ClientArrayType MatrixIndexArray :: ClientArrayType arrayPointer :: ClientArrayType -> StateVar (VertexArrayDescriptor a) data InterleavedArrays V2f :: InterleavedArrays V3f :: InterleavedArrays C4ubV2f :: InterleavedArrays C4ubV3f :: InterleavedArrays C3fV3f :: InterleavedArrays N3fV3f :: InterleavedArrays C4fN3fV3f :: InterleavedArrays T2fV3f :: InterleavedArrays T4fV4f :: InterleavedArrays T2fC4ubV3f :: InterleavedArrays T2fC3fV3f :: InterleavedArrays T2fN3fV3f :: InterleavedArrays T2fC4fN3fV3f :: InterleavedArrays T4fC4fN3fV4f :: InterleavedArrays interleavedArrays :: InterleavedArrays -> Stride -> Ptr a -> IO () clientState :: ClientArrayType -> StateVar Capability clientActiveTexture :: StateVar TextureUnit type ArrayIndex = GLint type NumArrayIndices = GLsizei type NumIndexBlocks = GLsizei type NumInstances = GLsizei type BaseInstance = GLuint type BaseVertex = GLint arrayElement :: ArrayIndex -> IO () drawArrays :: PrimitiveMode -> ArrayIndex -> NumArrayIndices -> IO () drawArraysInstancedBaseInstance :: PrimitiveMode -> ArrayIndex -> NumArrayIndices -> NumInstances -> BaseInstance -> IO () drawArraysInstanced :: PrimitiveMode -> ArrayIndex -> NumArrayIndices -> NumInstances -> IO () multiDrawArrays :: PrimitiveMode -> Ptr ArrayIndex -> Ptr NumArrayIndices -> NumIndexBlocks -> IO () drawElements :: PrimitiveMode -> NumArrayIndices -> DataType -> Ptr a -> IO () drawElementsInstancedBaseInstance :: PrimitiveMode -> NumArrayIndices -> DataType -> Ptr a -> NumInstances -> BaseInstance -> IO () drawElementsInstanced :: PrimitiveMode -> NumArrayIndices -> DataType -> Ptr a -> NumInstances -> IO () multiDrawElements :: PrimitiveMode -> Ptr NumArrayIndices -> DataType -> Ptr (Ptr a) -> NumIndexBlocks -> IO () drawRangeElements :: PrimitiveMode -> (ArrayIndex, ArrayIndex) -> NumArrayIndices -> DataType -> Ptr a -> IO () drawElementsBaseVertex :: PrimitiveMode -> NumArrayIndices -> DataType -> Ptr a -> BaseVertex -> IO () drawRangeElementsBaseVertex :: PrimitiveMode -> (ArrayIndex, ArrayIndex) -> NumArrayIndices -> DataType -> Ptr a -> BaseVertex -> IO () drawElementsInstancedBaseVertex :: PrimitiveMode -> NumArrayIndices -> DataType -> Ptr a -> NumInstances -> BaseVertex -> IO () drawElementsInstancedBaseVertexBaseInstance :: PrimitiveMode -> NumArrayIndices -> DataType -> Ptr a -> NumInstances -> BaseVertex -> BaseInstance -> IO () multiDrawElementsBaseVertex :: PrimitiveMode -> Ptr NumArrayIndices -> DataType -> Ptr (Ptr a) -> NumIndexBlocks -> Ptr BaseVertex -> IO () maxElementsVertices :: GettableStateVar NumArrayIndices maxElementsIndices :: GettableStateVar NumArrayIndices lockArrays :: StateVar (Maybe (ArrayIndex, NumArrayIndices)) primitiveRestartIndex :: StateVar (Maybe ArrayIndex) primitiveRestartIndexNV :: StateVar (Maybe ArrayIndex) vertexAttribPointer :: AttribLocation -> StateVar (IntegerHandling, VertexArrayDescriptor a) vertexAttribArray :: AttribLocation -> StateVar Capability instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.VertexArrays.InterleavedArrays instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.VertexArrays.InterleavedArrays instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.VertexArrays.InterleavedArrays instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.VertexArrays.ClientArrayType instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.VertexArrays.ClientArrayType instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.VertexArrays.ClientArrayType instance GHC.Show.Show (Graphics.Rendering.OpenGL.GL.VertexArrays.VertexArrayDescriptor a) instance GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.VertexArrays.VertexArrayDescriptor a) instance GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.VertexArrays.VertexArrayDescriptor a) -- | This module corresponds to section 2.13 (Current Raster Position) of -- the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.RasterPos currentRasterPosition :: StateVar (Vertex4 GLfloat) class RasterPosComponent a class RasterPos a rasterPos :: RasterPos a => a -> IO () rasterPosv :: RasterPos a => Ptr a -> IO () class WindowPosComponent a class WindowPos a windowPos :: WindowPos a => a -> IO () windowPosv :: WindowPos a => Ptr a -> IO () currentRasterDistance :: GettableStateVar GLfloat currentRasterColor :: GettableStateVar (Color4 GLfloat) currentRasterSecondaryColor :: GettableStateVar (Color4 GLfloat) currentRasterIndex :: GettableStateVar (Index1 GLint) currentRasterTexCoords :: GettableStateVar (TexCoord4 GLfloat) currentRasterPositionValid :: GettableStateVar Bool rasterPositionUnclipped :: StateVar Capability instance Graphics.Rendering.OpenGL.GL.RasterPos.WindowPosComponent a => Graphics.Rendering.OpenGL.GL.RasterPos.WindowPos (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance Graphics.Rendering.OpenGL.GL.RasterPos.WindowPosComponent a => Graphics.Rendering.OpenGL.GL.RasterPos.WindowPos (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance Graphics.Rendering.OpenGL.GL.RasterPos.WindowPosComponent Graphics.GL.Types.GLshort instance Graphics.Rendering.OpenGL.GL.RasterPos.WindowPosComponent Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.RasterPos.WindowPosComponent Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.RasterPos.WindowPosComponent Graphics.GL.Types.GLdouble instance Graphics.Rendering.OpenGL.GL.RasterPos.RasterPosComponent a => Graphics.Rendering.OpenGL.GL.RasterPos.RasterPos (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance Graphics.Rendering.OpenGL.GL.RasterPos.RasterPosComponent a => Graphics.Rendering.OpenGL.GL.RasterPos.RasterPos (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance Graphics.Rendering.OpenGL.GL.RasterPos.RasterPosComponent a => Graphics.Rendering.OpenGL.GL.RasterPos.RasterPos (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance Graphics.Rendering.OpenGL.GL.RasterPos.RasterPosComponent Graphics.GL.Types.GLshort instance Graphics.Rendering.OpenGL.GL.RasterPos.RasterPosComponent Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.RasterPos.RasterPosComponent Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.RasterPos.RasterPosComponent Graphics.GL.Types.GLdouble -- | This module corresponds to section 3.3 (Points) of the OpenGL 2.1 -- specs. module Graphics.Rendering.OpenGL.GL.Points -- | pointSize contains the rasterized diameter of both aliased and -- antialiased points. The initial value is 1. Using a point size other -- than 1 has different effects, depending on whether point antialiasing -- is enabled (see pointSmooth) or point sprites are enabled (see -- pointSprite). Both are initially disabled. -- -- The specified point size is multiplied with a distance attenuation -- factor and clamped to the specified pointSizeRange, and further -- clamped to the implementation-dependent point size range to produce -- the derived point size using -- --
--   derivedSize = clamp (size * sqrt (1 / (a + b * d + c * d^2)))
--   
-- -- where d is the eye-coordinate distance from the eye to the -- vertex, and a, b, and c are the distance -- attenuation coefficients (see pointDistanceAttenuation). -- -- If multisampling is disabled, the computed point size is used as the -- point's width. -- -- If multisampling is enabled, the point may be faded by modifying the -- point alpha value (see sampleCoverage) instead of allowing the -- point width to go below a given pointFadeThresholdSize. In this -- case, the width is further modified in the following manner: -- --
--   width = if derivedSize >= threshold then derivedSize else threshold
--   
-- -- The point alpha value is modified by computing: -- --
--   alpha = if derivedSize >= threshold then 1 else (derivedSize / threshold)^2
--   
-- -- If point antialiasing is disabled, the actual size is determined by -- rounding the supplied size to the nearest integer. (If the rounding -- results in the value 0, it is as if the point size were 1.) If the -- rounded size is odd, then the center point (x, y) of the -- pixel fragment that represents the point is computed as -- --
--   (x, y) = (floor xw + 0.5, floor yw + 0.5)
--   
-- -- where xw and yw indicate window coordinates. All pixels -- that lie within the square grid of the rounded size centered at -- (x, y) make up the fragment. If the size is even, the -- center point is -- --
--   (x, y) = (floor (xw + 0.5), floor (yw + 0.5))
--   
-- -- and the rasterized fragment's centers are the half-integer window -- coordinates within the square of the rounded size centered at -- (x, y). All pixel fragments produced in rasterizing a -- nonantialiased point are assigned the same associated data, that of -- the vertex corresponding to the point. -- -- If antialiasing is enabled, then point rasterization produces a -- fragment for each pixel square that intersects the region lying within -- the circle having diameter equal to the current point size and -- centered at the point's (xw, yw). The coverage value for -- each fragment is the window coordinate area of the intersection of the -- circular region with the corresponding pixel square. This value is -- saved and used in the final rasterization step. The data associated -- with each fragment is the data associated with the point being -- rasterized. -- -- Not all sizes are supported when point antialiasing is enabled. If an -- unsupported size is requested, the nearest supported size is used. -- Only size 1 is guaranteed to be supported; others depend on the -- implementation. To query the range of supported sizes for antialiased -- points and the size difference between supported sizes within the -- range, query smoothPointSizeRange and -- smoothPointSizeGranularity, respectively. For aliased points, -- query the supported range with aliasedPointSizeRange. -- -- The point size specified when pointSize is set is always -- returned when it is queried. Clamping and rounding for aliased and -- antialiased points have no effect on the specified value. -- -- A non-antialiased point size may be clamped to an -- implementation-dependent maximum. Although this maximum cannot be -- queried, it must be no less than the maximum value for antialiased -- points, rounded to the nearest integer value. -- -- An InvalidValue is generated if pointSize is set to a -- value less than or equal to zero. -- -- An InvalidOperation is generated if pointSize is set -- during renderPrimitive. pointSize :: StateVar GLfloat vertexProgramPointSize :: StateVar Capability -- | The range to which the derived point size is clamped, see -- pointSize. Note that the size is further clamped to the -- implementation-dependent limits, see aliasedPointSizeRange and -- smoothPointSizeRange. The initial range is (0, 1). -- -- An InvalidValue is generated if the lower or upper bound of the -- range is set to a value less than zero. If the lower bound is greater -- than the upper bound, the point size after clamping is undefined, but -- no error is generated. pointSizeRange :: StateVar (GLfloat, GLfloat) -- | The constant, linear, and quadratic distance attenuation coefficients, -- see pointSize. The initial coefficients are (1, 0, 0). pointDistanceAttenuation :: StateVar (GLfloat, GLfloat, GLfloat) -- | The threshold for alpha attenuation of points when multisampling is -- used, see pointSize. The initial threshold is 1. -- -- An InvalidValue is generated if the threshold is set to a value -- less than zero. pointFadeThresholdSize :: StateVar GLfloat -- | Controls whether point antialiasing is enabled. The initial state is -- Disabled. pointSmooth :: StateVar Capability -- | Controls whether point sprites are enabled. The initial state is -- Disabled. When point sprites are enabled, the state of point -- antialiasing (i.e. pointSmooth) is ignored. pointSprite :: StateVar Capability -- | The smallest and largest supported size of aliased points. aliasedPointSizeRange :: GettableStateVar (GLfloat, GLfloat) -- | The smallest and largest supported size of antialiased points. smoothPointSizeRange :: GettableStateVar (GLfloat, GLfloat) -- | The antialiased point size granularity, i.e. the size difference -- between supported sizes. smoothPointSizeGranularity :: GettableStateVar GLfloat -- | This module corresponds to a part of section 3.6.1 (Pixel Storage -- Modes) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelTransfer data PixelTransferStage PreConvolution :: PixelTransferStage PostConvolution :: PixelTransferStage PostColorMatrix :: PixelTransferStage mapColor :: StateVar Capability mapStencil :: StateVar Capability indexShift :: StateVar GLint indexOffset :: StateVar GLint depthScale :: StateVar GLfloat depthBias :: StateVar GLfloat rgbaScale :: PixelTransferStage -> StateVar (Color4 GLfloat) rgbaBias :: PixelTransferStage -> StateVar (Color4 GLfloat) instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelTransfer.PixelTransferStage instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelTransfer.PixelTransferStage instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PixelRectangles.PixelTransfer.PixelTransferStage -- | This module corresponds to a part of section 3.6.1 (Pixel Storage -- Modes) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.PixelRectangles.Minmax minmax :: StateVar (Maybe (PixelInternalFormat, Sink)) getMinmax :: Reset -> PixelData a -> IO () resetMinmax :: IO () -- | This module corresponds to section 3.4 (Line Segments) of the OpenGL -- 2.1 specs. module Graphics.Rendering.OpenGL.GL.LineSegments -- | lineWidth contains the rasterized width of both aliased and -- antialiased lines. The initial value is 1. Using a line width other -- than 1 has different effects, depending on whether line antialiasing -- is enabled (see lineSmooth). Line antialiasing is initially -- disabled. -- -- If line antialiasing is disabled, the actual width is determined by -- rounding the supplied width to the nearest integer. (If the rounding -- results in the value 0, it is as if the line width were 1.) If -- delta x >= delta y, i pixels are filled in -- each column that is rasterized, where i is the rounded value of -- lineWidth. Otherwise, i pixels are filled in each row -- that is rasterized. -- -- If antialiasing is enabled, line rasterization produces a fragment for -- each pixel square that intersects the region lying within the -- rectangle having width equal to the current line width, length equal -- to the actual length of the line, and centered on the mathematical -- line segment. The coverage value for each fragment is the window -- coordinate area of the intersection of the rectangular region with the -- corresponding pixel square. This value is saved and used in the final -- rasterization step. -- -- Not all widths can be supported when line antialiasing is enabled. If -- an unsupported width is requested, the nearest supported width is -- used. Only width 1 is guaranteed to be supported; others depend on the -- implementation. Likewise, there is a range for aliased line widths as -- well. To query the range of supported widths of antialiased lines and -- the size difference between supported widths within the range, query -- smoothLineWidthRange and smoothLineWidthGranularity, -- respectively. For aliased lines, query the supported range with -- aliasedLineWidthRange. -- -- The line width specified when lineWidth is set is always -- returned when it is queried. Clamping and rounding for aliased and -- antialiased lines have no effect on the specified value. -- -- A non-antialiased line width may be clamped to an -- implementation-dependent maximum. Query aliasedLineWidthRange -- to determine the maximum width. -- -- An InvalidValue is generated if lineWidth is set to a -- value less than or equal to zero. -- -- An InvalidOperation is generated if lineWidth is set -- during renderPrimitive. lineWidth :: StateVar GLfloat -- | Line stippling masks out certain fragments produced by rasterization; -- those fragments will not be drawn. The masking is achieved by using -- three parameters: the repeat count (1st element of the -- lineStipple pair, clamped to the range [ 1 .. 256 ]), the -- 16-bit line stipple pattern (2nd element), and an integer stipple -- counter s. -- -- The counter s is reset to 0 at before the first action during -- renderPrimitive is called and before each line segment during -- renderPrimitive is generated. It is incremented after each -- fragment of a unit width aliased line segment is generated or after -- each i fragments of an i width line segment are -- generated. The i fragments associated with count s are -- masked out if testBit pattern (( s / -- factor ) mod 16) is False, otherwise these -- fragments are sent to the frame buffer. Bit zero of the pattern is the -- least significant bit, i.e. it is used first. -- -- Antialiased lines are treated as a sequence of rectangles of height 1 -- for purposes of stippling. Whether rectangle s is rasterized or -- not depends on the fragment rule described for aliased lines, counting -- rectangles rather than groups of fragments. -- -- The initial value of lineStipple is Nothing, i.e. line -- stippling is disabled. -- -- An InvalidOperation is generated if lineStipple is set -- during renderPrimitive. lineStipple :: StateVar (Maybe (GLint, GLushort)) -- | Controls whether line antialiasing is enabled. The initial state is -- Disabled. lineSmooth :: StateVar Capability -- | The smallest and largest supported width of aliased lines. aliasedLineWidthRange :: GettableStateVar (GLfloat, GLfloat) -- | The smallest and largest supported width of antialiased lines. smoothLineWidthRange :: GettableStateVar (GLfloat, GLfloat) -- | The antialiased line width granularity, i.e. the size difference -- between supported widths. smoothLineWidthGranularity :: GettableStateVar GLfloat -- | This module corresponds to section 3.10 (Fog) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.Fog fog :: StateVar Capability data FogMode Linear :: GLfloat -> GLfloat -> FogMode Exp :: GLfloat -> FogMode Exp2 :: GLfloat -> FogMode fogMode :: StateVar FogMode fogColor :: StateVar (Color4 GLclampf) fogIndex :: StateVar (Index1 GLint) data FogCoordSrc FogCoord :: FogCoordSrc FragmentDepth :: FogCoordSrc fogCoordSrc :: StateVar FogCoordSrc data FogDistanceMode EyeRadial :: FogDistanceMode EyePlaneSigned :: FogDistanceMode EyePlaneAbsolute :: FogDistanceMode fogDistanceMode :: StateVar FogDistanceMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Fog.FogDistanceMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Fog.FogDistanceMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Fog.FogDistanceMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Fog.FogCoordSrc instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Fog.FogCoordSrc instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Fog.FogCoordSrc instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Fog.FogMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Fog.FogMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Fog.FogMode -- | This module corresponds to section 20 (Debug Output) of the OpenGL 4.5 -- specs. module Graphics.Rendering.OpenGL.GL.DebugOutput debugOutput :: StateVar Capability data DebugMessage DebugMessage :: DebugSource -> DebugType -> DebugMessageID -> DebugSeverity -> String -> DebugMessage data DebugSource DebugSourceAPI :: DebugSource DebugSourceShaderCompiler :: DebugSource DebugSourceWindowSystem :: DebugSource DebugSourceThirdParty :: DebugSource DebugSourceApplication :: DebugSource DebugSourceOther :: DebugSource data DebugType DebugTypeError :: DebugType DebugTypeDeprecatedBehavior :: DebugType DebugTypeUndefinedBehavior :: DebugType DebugTypePerformance :: DebugType DebugTypePortability :: DebugType DebugTypeMarker :: DebugType DebugTypePushGroup :: DebugType DebugTypePopGroup :: DebugType DebugTypeOther :: DebugType newtype DebugMessageID DebugMessageID :: GLuint -> DebugMessageID data DebugSeverity DebugSeverityHigh :: DebugSeverity DebugSeverityMedium :: DebugSeverity DebugSeverityLow :: DebugSeverity DebugSeverityNotification :: DebugSeverity maxDebugMessageLength :: GettableStateVar GLsizei debugMessageCallback :: StateVar (Maybe (DebugMessage -> IO ())) maxDebugLoggedMessages :: GettableStateVar GLsizei debugLoggedMessages :: IO [DebugMessage] data MessageGroup MessageGroup :: Maybe DebugSource -> Maybe DebugType -> Maybe DebugSeverity -> MessageGroup MessageGroupWithIDs :: DebugSource -> DebugType -> [DebugMessageID] -> MessageGroup debugMessageControl :: MessageGroup -> SettableStateVar Capability debugMessageInsert :: DebugMessage -> IO () data DebugGroup DebugGroup :: DebugSource -> DebugMessageID -> String -> DebugGroup pushDebugGroup :: DebugSource -> DebugMessageID -> String -> IO () popDebugGroup :: IO () withDebugGroup :: DebugSource -> DebugMessageID -> String -> IO a -> IO a maxDebugGroupStackDepth :: GettableStateVar GLsizei class CanBeLabeled a objectLabel :: CanBeLabeled a => a -> StateVar (Maybe String) maxLabelLength :: GettableStateVar GLsizei debugOutputSynchronous :: StateVar Capability instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.DebugOutput.MessageGroup instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.DebugOutput.MessageGroup instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.DebugOutput.MessageGroup instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.DebugOutput.DebugMessage instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.DebugOutput.DebugMessage instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.DebugOutput.DebugMessage instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.DebugOutput.DebugSeverity instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.DebugOutput.DebugSeverity instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.DebugOutput.DebugSeverity instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.DebugOutput.DebugMessageID instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.DebugOutput.DebugMessageID instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.DebugOutput.DebugMessageID instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.DebugOutput.DebugType instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.DebugOutput.DebugType instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.DebugOutput.DebugType instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.DebugOutput.DebugSource instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.DebugOutput.DebugSource instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.DebugOutput.DebugSource module Graphics.Rendering.OpenGL.GL.VertexArrayObjects data VertexArrayObject bindVertexArrayObject :: StateVar (Maybe VertexArrayObject) instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.VertexArrayObjects.VertexArrayObject instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.VertexArrayObjects.VertexArrayObject instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.VertexArrayObjects.VertexArrayObject instance Data.ObjectName.ObjectName Graphics.Rendering.OpenGL.GL.VertexArrayObjects.VertexArrayObject instance Data.ObjectName.GeneratableObjectName Graphics.Rendering.OpenGL.GL.VertexArrayObjects.VertexArrayObject instance Graphics.Rendering.OpenGL.GL.DebugOutput.CanBeLabeled Graphics.Rendering.OpenGL.GL.VertexArrayObjects.VertexArrayObject -- | This module corresponds to section 4.1 (Sync Objects and Fences) of -- the OpenGL 4.4 specs. module Graphics.Rendering.OpenGL.GL.SyncObjects data SyncObject syncGpuCommandsComplete :: IO SyncObject type WaitTimeout = GLuint64 data WaitFlag SyncFlushCommands :: WaitFlag data WaitResult AlreadySignaled :: WaitResult TimeoutExpired :: WaitResult ConditionSatisfied :: WaitResult WaitFailed :: WaitResult clientWaitSync :: SyncObject -> [WaitFlag] -> WaitTimeout -> IO WaitResult waitSync :: SyncObject -> IO () maxServerWaitTimeout :: GettableStateVar WaitTimeout data SyncStatus Unsignaled :: SyncStatus Signaled :: SyncStatus syncStatus :: SyncObject -> GettableStateVar SyncStatus instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.SyncObjects.SyncStatus instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.SyncObjects.SyncStatus instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.SyncObjects.SyncStatus instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.SyncObjects.WaitResult instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.SyncObjects.WaitResult instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.SyncObjects.WaitResult instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.SyncObjects.WaitFlag instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.SyncObjects.WaitFlag instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.SyncObjects.WaitFlag instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.SyncObjects.SyncObject instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.SyncObjects.SyncObject instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.SyncObjects.SyncObject instance Data.ObjectName.ObjectName Graphics.Rendering.OpenGL.GL.SyncObjects.SyncObject instance Graphics.Rendering.OpenGL.GL.DebugOutput.CanBeLabeled Graphics.Rendering.OpenGL.GL.SyncObjects.SyncObject -- | This module corresponds to section 7.1 (Shader Objects) and 7.13 -- (Shader, Program, and Program Pipeline Queries) of the OpenGL 4.4 -- spec. module Graphics.Rendering.OpenGL.GL.Shaders.ShaderObjects shaderCompiler :: GettableStateVar Bool data ShaderType VertexShader :: ShaderType TessControlShader :: ShaderType TessEvaluationShader :: ShaderType GeometryShader :: ShaderType FragmentShader :: ShaderType ComputeShader :: ShaderType data Shader createShader :: ShaderType -> IO Shader -- | UTF8 encoded. shaderSourceBS :: Shader -> StateVar ByteString -- | Deprecated: Use a combination of shaderSourceBS and -- packUtf8 or unpackUtf8 instead. shaderSource :: Shader -> StateVar [String] compileShader :: Shader -> IO () releaseShaderCompiler :: IO () shaderType :: Shader -> GettableStateVar ShaderType shaderDeleteStatus :: Shader -> GettableStateVar Bool compileStatus :: Shader -> GettableStateVar Bool shaderInfoLog :: Shader -> GettableStateVar String data PrecisionType shaderPrecisionFormat :: ShaderType -> PrecisionType -> GettableStateVar ((GLint, GLint), GLint) packUtf8 :: String -> ByteString unpackUtf8 :: ByteString -> String instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Shaders.ShaderObjects.PrecisionType instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Shaders.ShaderObjects.PrecisionType instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Shaders.ShaderObjects.PrecisionType instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Shaders.ShaderObjects.ShaderType instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Shaders.ShaderObjects.ShaderType instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Shaders.ShaderObjects.ShaderType -- | This module corresponds to section 7.2 (Shader Binaries) of the OpenGL -- 4.4 spec. module Graphics.Rendering.OpenGL.GL.Shaders.ShaderBinaries newtype ShaderBinaryFormat ShaderBinaryFormat :: GLenum -> ShaderBinaryFormat shaderBinaryFormats :: GettableStateVar [ShaderBinaryFormat] data ShaderBinary ShaderBinary :: ShaderBinaryFormat -> ByteString -> ShaderBinary shaderBinary :: [Shader] -> SettableStateVar ShaderBinary instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Shaders.ShaderBinaries.ShaderBinary instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Shaders.ShaderBinaries.ShaderBinary instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Shaders.ShaderBinaries.ShaderBinary instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Shaders.ShaderBinaries.ShaderBinaryFormat instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Shaders.ShaderBinaries.ShaderBinaryFormat instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Shaders.ShaderBinaries.ShaderBinaryFormat module Graphics.Rendering.OpenGL.GL.TransformFeedback beginTransformFeedback :: PrimitiveMode -> IO () endTransformFeedback :: IO () data TransformFeedbackBufferMode InterleavedAttribs :: TransformFeedbackBufferMode SeparateAttribs :: TransformFeedbackBufferMode -- | Deprecated: Use SeparateAttribs instead. SeperateAttribs :: TransformFeedbackBufferMode marshalTransformFeedbackBufferMode :: TransformFeedbackBufferMode -> GLenum unmarshalTransformFeedbackBufferMode :: GLenum -> TransformFeedbackBufferMode -- | Get the currently used transformFeedbackBufferMode transformFeedbackBufferMode :: Program -> GettableStateVar TransformFeedbackBufferMode -- | The name, datatype and size of the transform feedback varyings. transformFeedbackVaryings :: Program -> GettableStateVar [(GLint, DataType, String)] -- | Set all the transform feedbacks varyings for this program it -- overwrites any previous call to this function setTransformFeedbackVaryings :: Program -> [String] -> TransformFeedbackBufferMode -> IO () -- | Max number of seprate atributes or varyings than can be captured in -- transformfeedback, initial value 4 maxTransformFeedbackSeparateAttribs :: GettableStateVar GLint -- | Max number of components to write to a single buffer in interleaved -- mod, initial value 64 maxTransformFeedbackInterleavedComponents :: GettableStateVar GLint -- | Max number of components per attribute or varying in seperate mode -- initial value 4 maxTransformFeedbackSeparateComponents :: GettableStateVar GLint instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.TransformFeedback.TransformFeedbackBufferMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.TransformFeedback.TransformFeedbackBufferMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.TransformFeedback.TransformFeedbackBufferMode -- | This module corresponds to section 7.5 (Program Binaries) of the -- OpenGL 4.4 spec. module Graphics.Rendering.OpenGL.GL.Shaders.ProgramBinaries newtype ProgramBinaryFormat ProgramBinaryFormat :: GLenum -> ProgramBinaryFormat programBinaryFormats :: GettableStateVar [ProgramBinaryFormat] data ProgramBinary ProgramBinary :: ProgramBinaryFormat -> ByteString -> ProgramBinary programBinary :: Program -> StateVar ProgramBinary instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Shaders.ProgramBinaries.ProgramBinary instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Shaders.ProgramBinaries.ProgramBinary instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Shaders.ProgramBinaries.ProgramBinary instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Shaders.ProgramBinaries.ProgramBinaryFormat instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Shaders.ProgramBinaries.ProgramBinaryFormat instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Shaders.ProgramBinaries.ProgramBinaryFormat -- | This module contains functions related to shader attributes, -- corresponding to section 2.20.3 of the OpenGL 3.1 spec (Shader -- Variables). module Graphics.Rendering.OpenGL.GL.Shaders.Attribs attribLocation :: Program -> String -> StateVar AttribLocation data VariableType Float' :: VariableType FloatVec2 :: VariableType FloatVec3 :: VariableType FloatVec4 :: VariableType Int' :: VariableType IntVec2 :: VariableType IntVec3 :: VariableType IntVec4 :: VariableType UnsignedInt' :: VariableType UnsignedIntVec2 :: VariableType UnsignedIntVec3 :: VariableType UnsignedIntVec4 :: VariableType Bool :: VariableType BoolVec2 :: VariableType BoolVec3 :: VariableType BoolVec4 :: VariableType FloatMat2 :: VariableType FloatMat3 :: VariableType FloatMat4 :: VariableType FloatMat2x3 :: VariableType FloatMat2x4 :: VariableType FloatMat3x2 :: VariableType FloatMat3x4 :: VariableType FloatMat4x2 :: VariableType FloatMat4x3 :: VariableType Sampler1D :: VariableType Sampler2D :: VariableType Sampler3D :: VariableType SamplerCube :: VariableType Sampler1DShadow :: VariableType Sampler2DShadow :: VariableType Sampler1DArray :: VariableType Sampler2DArray :: VariableType Sampler1DArrayShadow :: VariableType Sampler2DArrayShadow :: VariableType SamplerCubeShadow :: VariableType Sampler2DRect :: VariableType Sampler2DRectShadow :: VariableType IntSampler1D :: VariableType IntSampler2D :: VariableType IntSampler3D :: VariableType IntSamplerCube :: VariableType IntSampler1DArray :: VariableType IntSampler2DArray :: VariableType UnsignedIntSampler1D :: VariableType UnsignedIntSampler2D :: VariableType UnsignedIntSampler3D :: VariableType UnsignedIntSamplerCube :: VariableType UnsignedIntSampler1DArray :: VariableType UnsignedIntSampler2DArray :: VariableType activeAttribs :: Program -> GettableStateVar [(GLint, VariableType, String)] -- | This module corresponds to section 4.2 (Query Objects and Asynchronous -- Queries) of the OpenGL 4.4 specs. module Graphics.Rendering.OpenGL.GL.QueryObjects data QueryObject type QueryIndex = GLuint maxVertexStreams :: GettableStateVar QueryIndex data QueryTarget SamplesPassed :: QueryTarget AnySamplesPassed :: QueryTarget AnySamplesPassedConservative :: QueryTarget TimeElapsed :: QueryTarget PrimitivesGenerated :: QueryIndex -> QueryTarget TransformFeedbackPrimitivesWritten :: QueryIndex -> QueryTarget beginQuery :: QueryTarget -> QueryObject -> IO () endQuery :: QueryTarget -> IO () -- | Convenience function for an exception-safe combination of -- beginQuery and endQuery. withQuery :: QueryTarget -> QueryObject -> IO a -> IO a currentQuery :: QueryTarget -> GettableStateVar (Maybe QueryObject) queryCounterBits :: QueryTarget -> GettableStateVar GLsizei queryResultAvailable :: QueryObject -> GettableStateVar Bool class Storable a => QueryResult a queryResult :: QueryResult a => QueryObject -> GettableStateVar a -- | Record the time after all previous commands on the GL client and -- server state and the framebuffer have been fully realized timestampQuery :: QueryObject -> IO () -- | Contains the GL time after all previous commands have reached the GL -- server but have not yet necessarily executed. timestamp :: GettableStateVar GLuint64 instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.QueryObjects.QueryTarget instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.QueryObjects.QueryTarget instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.QueryObjects.QueryTarget instance Graphics.Rendering.OpenGL.GL.QueryObjects.QueryResult Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.QueryObjects.QueryResult Graphics.GL.Types.GLuint instance Graphics.Rendering.OpenGL.GL.QueryObjects.QueryResult Graphics.GL.Types.GLint64 instance Graphics.Rendering.OpenGL.GL.QueryObjects.QueryResult Graphics.GL.Types.GLuint64 -- | This module corresponds to section 10.10 (Conditional Rendering) of -- the OpenGL 4.4 specs. module Graphics.Rendering.OpenGL.GL.ConditionalRendering data ConditionalRenderMode QueryWait :: ConditionalRenderMode QueryNoWait :: ConditionalRenderMode QueryByRegionWait :: ConditionalRenderMode QueryByRegionNoWait :: ConditionalRenderMode beginConditionalRender :: QueryObject -> ConditionalRenderMode -> IO () endConditionalRender :: IO () withConditionalRender :: QueryObject -> ConditionalRenderMode -> IO a -> IO a instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.ConditionalRendering.ConditionalRenderMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.ConditionalRendering.ConditionalRenderMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.ConditionalRendering.ConditionalRenderMode module Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObjects data RenderbufferObject noRenderbufferObject :: RenderbufferObject data RenderbufferTarget Renderbuffer :: RenderbufferTarget data RenderbufferSize RenderbufferSize :: !GLsizei -> !GLsizei -> RenderbufferSize newtype Samples Samples :: GLsizei -> Samples bindRenderbuffer :: RenderbufferTarget -> StateVar RenderbufferObject renderbufferStorage :: RenderbufferTarget -> PixelInternalFormat -> RenderbufferSize -> IO () renderbufferStorageMultiSample :: RenderbufferTarget -> Samples -> PixelInternalFormat -> RenderbufferSize -> IO () instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObjects.RenderbufferSize instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObjects.RenderbufferSize instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferObjects.RenderbufferSize module Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObjects data FramebufferObject defaultFramebufferObject :: FramebufferObject data FramebufferTarget DrawFramebuffer :: FramebufferTarget ReadFramebuffer :: FramebufferTarget Framebuffer :: FramebufferTarget bindFramebuffer :: FramebufferTarget -> StateVar FramebufferObject data FramebufferStatus Complete :: FramebufferStatus Undefined :: FramebufferStatus IncompleteMissingAttachment :: FramebufferStatus IncompleteDrawBuffer :: FramebufferStatus IncompleteReadBuffer :: FramebufferStatus IncompleteMultiSample :: FramebufferStatus Unsupported :: FramebufferStatus framebufferStatus :: FramebufferTarget -> GettableStateVar FramebufferStatus instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObjects.FramebufferStatus instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObjects.FramebufferStatus instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.FramebufferObjects.FramebufferObjects.FramebufferStatus -- | This module corresponds to section 5.4 (Display Lists) of the OpenGL -- 2.1 specs. module Graphics.Rendering.OpenGL.GL.DisplayLists newtype DisplayList DisplayList :: GLuint -> DisplayList data ListMode Compile :: ListMode CompileAndExecute :: ListMode defineList :: DisplayList -> ListMode -> IO a -> IO a defineNewList :: ListMode -> IO a -> IO DisplayList listIndex :: GettableStateVar (Maybe DisplayList) listMode :: GettableStateVar ListMode maxListNesting :: GettableStateVar GLsizei callList :: DisplayList -> IO () callLists :: GLsizei -> DataType -> Ptr a -> IO () listBase :: StateVar DisplayList instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.DisplayLists.ListMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.DisplayLists.ListMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.DisplayLists.ListMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.DisplayLists.DisplayList instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.DisplayLists.DisplayList instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.DisplayLists.DisplayList instance Data.ObjectName.ObjectName Graphics.Rendering.OpenGL.GL.DisplayLists.DisplayList instance Graphics.Rendering.OpenGL.GL.DebugOutput.CanBeLabeled Graphics.Rendering.OpenGL.GL.DisplayLists.DisplayList instance Data.ObjectName.GeneratableObjectName Graphics.Rendering.OpenGL.GL.DisplayLists.DisplayList -- | This module corresponds to section 2.11 (Coordinate Transformations) -- of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.CoordTrans -- | After clipping and division by w, depth coordinates range from -- -1 to 1, corresponding to the near and far clipping planes. -- depthRange specifies a linear mapping of the normalized depth -- coordinates in this range to window depth coordinates. Regardless of -- the actual depth buffer implementation, window coordinate depth values -- are treated as though they range from 0 through 1 (like color -- components). Thus, the values accepted by depthRange are both -- clamped to this range before they are accepted. -- -- The initial setting of (0, 1) maps the near plane to 0 and the far -- plane to 1. With this mapping, the depth buffer range is fully -- utilized. -- -- It is not necessary that the near value be less than the far value. -- Reverse mappings such as (1, 0) are acceptable. depthRange :: StateVar (GLclampd, GLclampd) -- | A 2-dimensional position, measured in pixels. data Position Position :: !GLint -> !GLint -> Position -- | A 2-dimensional size, measured in pixels. data Size Size :: !GLsizei -> !GLsizei -> Size -- | Controls the affine transformation from normalized device coordinates -- to window coordinates. The viewport state variable consists of the -- coordinates (x, y) of the lower left corner of the -- viewport rectangle, (in pixels, initial value (0,0)), and the size -- (width, height) of the viewport. When a GL context is -- first attached to a window, width and height are set to -- the dimensions of that window. -- -- Let (xnd, ynd) be normalized device coordinates. Then -- the window coordinates (xw, yw) are computed as follows: -- -- xw = (xnd + 1) (width / 2) + x -- -- yw = (ynd + 1) (heigth / 2) + y -- -- Viewport width and height are silently clamped to a range that depends -- on the implementation, see maxViewportDims. viewport :: StateVar (Position, Size) -- | The implementation-dependent maximum viewport width and height. maxViewportDims :: GettableStateVar Size -- | A matrix stack. data MatrixMode -- | The modelview matrix stack of the specified vertex unit. Modelview :: GLsizei -> MatrixMode -- | The projection matrix stack. Projection :: MatrixMode -- | The texture matrix stack. Texture :: MatrixMode -- | The color matrix stack. Color :: MatrixMode -- | The matrix palette stack. MatrixPalette :: MatrixMode -- | Controls which matrix stack is the target for subsequent matrix -- operations. The initial value is (Modelview 0). matrixMode :: StateVar MatrixMode data MatrixOrder ColumnMajor :: MatrixOrder RowMajor :: MatrixOrder class Storable c => MatrixComponent c rotate :: MatrixComponent c => c -> Vector3 c -> IO () translate :: MatrixComponent c => Vector3 c -> IO () scale :: MatrixComponent c => c -> c -> c -> IO () class Matrix m -- | Create a new matrix of the given order (containing undefined elements) -- and call the action to fill it with 4x4 elements. withNewMatrix :: (Matrix m, MatrixComponent c) => MatrixOrder -> (Ptr c -> IO ()) -> IO (m c) -- | Call the action with the given matrix. Note: The action is -- not allowed to modify the matrix elements! withMatrix :: (Matrix m, MatrixComponent c) => m c -> (MatrixOrder -> Ptr c -> IO a) -> IO a newMatrix :: (Matrix m, MatrixComponent c) => MatrixOrder -> [c] -> IO (m c) getMatrixComponents :: (Matrix m, MatrixComponent c) => MatrixOrder -> m c -> IO [c] matrix :: (Matrix m, MatrixComponent c) => Maybe MatrixMode -> StateVar (m c) multMatrix :: (Matrix m, MatrixComponent c) => m c -> IO () data GLmatrix a loadIdentity :: IO () ortho :: GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO () frustum :: GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO () depthClamp :: StateVar Capability activeTexture :: StateVar TextureUnit -- | Push the current matrix stack down by one, duplicating the current -- matrix, excute the given action, and pop the current matrix stack, -- replacing the current matrix with the one below it on the stack (i.e. -- restoring it to its previous state). The returned value is that of the -- given action. Note that a round-trip to the server is probably -- required. For a more efficient version, see -- unsafePreservingMatrix. preservingMatrix :: IO a -> IO a -- | A more efficient, but potentially dangerous version of -- preservingMatrix: The given action is not allowed to throw an -- exception or change the current matrix mode permanently. unsafePreservingMatrix :: IO a -> IO a stackDepth :: Maybe MatrixMode -> GettableStateVar GLsizei maxStackDepth :: MatrixMode -> GettableStateVar GLsizei -- | If rescaleNormal contains Enabled, normal vectors -- specified with normal are scaled by a scaling factor derived -- from the modelview matrix. rescaleNormal requires that the -- originally specified normals were of unit length, and that the -- modelview matrix contains only uniform scales for proper results. The -- initial value of rescaleNormal is Disabled. rescaleNormal :: StateVar Capability -- | If normalize contains Enabled, normal vectors specified -- with normal are scaled to unit length after transformation. The -- initial value of normalize is Disabled. normalize :: StateVar Capability data Plane a Plane :: !a -> !a -> !a -> !a -> Plane a data TextureCoordName S :: TextureCoordName T :: TextureCoordName R :: TextureCoordName Q :: TextureCoordName data TextureGenMode EyeLinear :: Plane GLdouble -> TextureGenMode ObjectLinear :: Plane GLdouble -> TextureGenMode SphereMap :: TextureGenMode NormalMap :: TextureGenMode ReflectionMap :: TextureGenMode textureGenMode :: TextureCoordName -> StateVar (Maybe TextureGenMode) instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.CoordTrans.TextureGenMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.CoordTrans.TextureGenMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.CoordTrans.TextureGenMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.CoordTrans.TextureCoordName instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.CoordTrans.TextureCoordName instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.CoordTrans.TextureCoordName instance GHC.Show.Show a => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.CoordTrans.Plane a) instance GHC.Classes.Ord a => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.CoordTrans.Plane a) instance GHC.Classes.Eq a => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.CoordTrans.Plane a) instance GHC.Show.Show (Graphics.Rendering.OpenGL.GL.CoordTrans.GLmatrix a) instance GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.CoordTrans.GLmatrix a) instance GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.CoordTrans.GLmatrix a) instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.CoordTrans.MatrixOrder instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.CoordTrans.MatrixOrder instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.CoordTrans.MatrixOrder instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.CoordTrans.MatrixMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.CoordTrans.MatrixMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.CoordTrans.MatrixMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.CoordTrans.Size instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.CoordTrans.Size instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.CoordTrans.Size instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.CoordTrans.Position instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.CoordTrans.Position instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.CoordTrans.Position instance Foreign.Storable.Storable a => Foreign.Storable.Storable (Graphics.Rendering.OpenGL.GL.CoordTrans.Plane a) instance Graphics.Rendering.OpenGL.GL.CoordTrans.Matrix Graphics.Rendering.OpenGL.GL.CoordTrans.GLmatrix -- | This module corresponds to section 4.3 (Drawing, Reading, and Copying -- Pixels) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.ReadCopyPixels readPixels :: Position -> Size -> PixelData a -> IO () readBuffer :: StateVar BufferMode data PixelCopyType CopyColor :: PixelCopyType CopyDepth :: PixelCopyType CopyStencil :: PixelCopyType copyPixels :: Position -> Size -> PixelCopyType -> IO () -- | The buffers which can be copied with blitFramebuffer. data BlitBuffer ColorBuffer' :: BlitBuffer StencilBuffer' :: BlitBuffer DepthBuffer' :: BlitBuffer blitFramebuffer :: Position -> Position -> Position -> Position -> [BlitBuffer] -> TextureFilter -> IO () instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.ReadCopyPixels.BlitBuffer instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.ReadCopyPixels.BlitBuffer instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.ReadCopyPixels.BlitBuffer instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.ReadCopyPixels.PixelCopyType instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.ReadCopyPixels.PixelCopyType instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.ReadCopyPixels.PixelCopyType -- | This module corresponds to a part of section 3.6.4 (Rasterization of -- Pixel Rectangles) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.PixelRectangles.Rasterization data PixelData a PixelData :: PixelFormat -> DataType -> Ptr a -> PixelData a data PixelFormat ColorIndex :: PixelFormat StencilIndex :: PixelFormat DepthComponent :: PixelFormat DepthStencil :: PixelFormat Red :: PixelFormat Green :: PixelFormat Blue :: PixelFormat Alpha :: PixelFormat RG :: PixelFormat RGB :: PixelFormat RGBA :: PixelFormat Luminance :: PixelFormat LuminanceAlpha :: PixelFormat RedInteger :: PixelFormat GreenInteger :: PixelFormat BlueInteger :: PixelFormat AlphaInteger :: PixelFormat RGInteger :: PixelFormat RGBInteger :: PixelFormat RGBAInteger :: PixelFormat BGRInteger :: PixelFormat BGRAInteger :: PixelFormat ABGR :: PixelFormat BGR :: PixelFormat BGRA :: PixelFormat CMYK :: PixelFormat CMYKA :: PixelFormat FourTwoTwo :: PixelFormat FourTwoTwoRev :: PixelFormat FourTwoTwoAverage :: PixelFormat FourTwoTwoRevAverage :: PixelFormat YCBCR422 :: PixelFormat drawPixels :: Size -> PixelData a -> IO () pixelZoom :: StateVar (GLfloat, GLfloat) -- | This module corresponds to a part of section 3.6.1 (Pixel Storage -- Modes) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution data ConvolutionTarget Convolution1D :: ConvolutionTarget Convolution2D :: ConvolutionTarget Separable2D :: ConvolutionTarget convolution :: ConvolutionTarget -> StateVar Capability convolutionFilter1D :: PixelInternalFormat -> GLsizei -> PixelData a -> IO () getConvolutionFilter1D :: PixelData a -> IO () convolutionFilter2D :: PixelInternalFormat -> Size -> PixelData a -> IO () getConvolutionFilter2D :: PixelData a -> IO () separableFilter2D :: PixelInternalFormat -> Size -> PixelData a -> PixelData a -> IO () getSeparableFilter2D :: PixelData a -> PixelData a -> IO () copyConvolutionFilter1D :: PixelInternalFormat -> Position -> GLsizei -> IO () copyConvolutionFilter2D :: PixelInternalFormat -> Position -> Size -> IO () convolutionWidth :: ConvolutionTarget -> GettableStateVar GLsizei convolutionHeight :: ConvolutionTarget -> GettableStateVar GLsizei maxConvolutionWidth :: ConvolutionTarget -> GettableStateVar GLsizei maxConvolutionHeight :: ConvolutionTarget -> GettableStateVar GLsizei data ConvolutionBorderMode Reduce :: ConvolutionBorderMode ConstantBorder :: Color4 GLfloat -> ConvolutionBorderMode ReplicateBorder :: ConvolutionBorderMode convolutionBorderMode :: ConvolutionTarget -> StateVar ConvolutionBorderMode convolutionFilterScale :: ConvolutionTarget -> StateVar (Color4 GLfloat) convolutionFilterBias :: ConvolutionTarget -> StateVar (Color4 GLfloat) instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution.ConvolutionBorderMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution.ConvolutionBorderMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution.ConvolutionBorderMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution.ConvolutionParameter instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution.ConvolutionParameter instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution.ConvolutionParameter instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution.ConvolutionTarget instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution.ConvolutionTarget instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PixelRectangles.Convolution.ConvolutionTarget -- | This module corresponds to a part of section 3.6.1 (Pixel Storage -- Modes) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable data ColorTableStage ColorTableStage :: ColorTableStage PostConvolutionColorTableStage :: ColorTableStage PostColorMatrixColorTableStage :: ColorTableStage TextureColorTableStage :: ColorTableStage colorTableStage :: ColorTableStage -> StateVar Capability data Proxy NoProxy :: Proxy Proxy :: Proxy data ColorTable ColorTable :: ColorTable PostConvolutionColorTable :: ColorTable PostColorMatrixColorTable :: ColorTable Texture1DColorTable :: ColorTable Texture2DColorTable :: ColorTable Texture3DColorTable :: ColorTable TextureCubeMapColorTable :: ColorTable TextureColorTable :: ColorTable SharedTexturePalette :: ColorTable data PixelInternalFormat Alpha' :: PixelInternalFormat DepthComponent' :: PixelInternalFormat Luminance' :: PixelInternalFormat LuminanceAlpha' :: PixelInternalFormat Intensity :: PixelInternalFormat R8 :: PixelInternalFormat R16 :: PixelInternalFormat RG8 :: PixelInternalFormat RG16 :: PixelInternalFormat RGB' :: PixelInternalFormat RGBA' :: PixelInternalFormat SRGB :: PixelInternalFormat SRGBAlpha :: PixelInternalFormat SLuminance :: PixelInternalFormat SLuminanceAlpha :: PixelInternalFormat Alpha4 :: PixelInternalFormat Alpha8 :: PixelInternalFormat Alpha12 :: PixelInternalFormat Alpha16 :: PixelInternalFormat DepthComponent16 :: PixelInternalFormat DepthComponent24 :: PixelInternalFormat DepthComponent32 :: PixelInternalFormat Luminance4 :: PixelInternalFormat Luminance8 :: PixelInternalFormat Luminance12 :: PixelInternalFormat Luminance16 :: PixelInternalFormat Luminance4Alpha4 :: PixelInternalFormat Luminance6Alpha2 :: PixelInternalFormat Luminance8Alpha8 :: PixelInternalFormat Luminance12Alpha4 :: PixelInternalFormat Luminance12Alpha12 :: PixelInternalFormat Luminance16Alpha16 :: PixelInternalFormat Intensity4 :: PixelInternalFormat Intensity8 :: PixelInternalFormat Intensity12 :: PixelInternalFormat Intensity16 :: PixelInternalFormat R3G3B2 :: PixelInternalFormat RGB4 :: PixelInternalFormat RGB5 :: PixelInternalFormat RGB8 :: PixelInternalFormat RGB10 :: PixelInternalFormat RGB12 :: PixelInternalFormat RGB16 :: PixelInternalFormat RGBA2 :: PixelInternalFormat RGBA4 :: PixelInternalFormat RGB5A1 :: PixelInternalFormat RGBA8 :: PixelInternalFormat RGB10A2 :: PixelInternalFormat RGBA12 :: PixelInternalFormat RGBA16 :: PixelInternalFormat SRGB8 :: PixelInternalFormat SRGB8Alpha8 :: PixelInternalFormat R16F :: PixelInternalFormat RG16F :: PixelInternalFormat RGB16F :: PixelInternalFormat RGBA16F :: PixelInternalFormat R32F :: PixelInternalFormat RG32F :: PixelInternalFormat RGB32F :: PixelInternalFormat RGBA32F :: PixelInternalFormat R8I :: PixelInternalFormat R8UI :: PixelInternalFormat R16I :: PixelInternalFormat R16UI :: PixelInternalFormat R32I :: PixelInternalFormat R32UI :: PixelInternalFormat RG8I :: PixelInternalFormat RG8UI :: PixelInternalFormat RG16I :: PixelInternalFormat RG16UI :: PixelInternalFormat RG32I :: PixelInternalFormat RG32UI :: PixelInternalFormat RGB8I :: PixelInternalFormat RGB8UI :: PixelInternalFormat RGB16I :: PixelInternalFormat RGB16UI :: PixelInternalFormat RGB32I :: PixelInternalFormat RGB32UI :: PixelInternalFormat RGBA8I :: PixelInternalFormat RGBA8UI :: PixelInternalFormat RGBA16I :: PixelInternalFormat RGBA16UI :: PixelInternalFormat RGBA32I :: PixelInternalFormat RGBA32UI :: PixelInternalFormat SLuminance8 :: PixelInternalFormat SLuminance8Alpha8 :: PixelInternalFormat CompressedAlpha :: PixelInternalFormat CompressedLuminance :: PixelInternalFormat CompressedLuminanceAlpha :: PixelInternalFormat CompressedIntensity :: PixelInternalFormat CompressedRed :: PixelInternalFormat CompressedRG :: PixelInternalFormat CompressedRGB :: PixelInternalFormat CompressedRGBA :: PixelInternalFormat CompressedSRGB :: PixelInternalFormat CompressedSRGBAlpha :: PixelInternalFormat CompressedSLuminance :: PixelInternalFormat CompressedSLuminanceAlpha :: PixelInternalFormat CompressedRedRGTC1 :: PixelInternalFormat CompressedSignedRedRGTC1 :: PixelInternalFormat CompressedRG_RGTC2 :: PixelInternalFormat CompressedSignedRG_RGTC2 :: PixelInternalFormat DepthComponent32f :: PixelInternalFormat Depth32fStencil8 :: PixelInternalFormat RGB9E5 :: PixelInternalFormat R11fG11fB10f :: PixelInternalFormat StencilIndex1 :: PixelInternalFormat StencilIndex4 :: PixelInternalFormat StencilIndex8 :: PixelInternalFormat StencilIndex16 :: PixelInternalFormat RGBS3TC :: PixelInternalFormat RGB4S3TC :: PixelInternalFormat RGBAS3TC :: PixelInternalFormat RGBA4S3TC :: PixelInternalFormat RGBADXT5S3TC :: PixelInternalFormat RGBA4DXT5S3TC :: PixelInternalFormat CompressedRGBAS3TCDXT1 :: PixelInternalFormat CompressedRGBAS3TCDXT3 :: PixelInternalFormat CompressedRGBAS3TCDXT5 :: PixelInternalFormat CompressedRGBS3TCDXT1 :: PixelInternalFormat Alpha32F :: PixelInternalFormat Intensity32F :: PixelInternalFormat Luminance32F :: PixelInternalFormat LuminanceAlpha32F :: PixelInternalFormat Alpha16F :: PixelInternalFormat Intensity16F :: PixelInternalFormat Luminance16F :: PixelInternalFormat LuminanceAlpha16F :: PixelInternalFormat Depth24Stencil8 :: PixelInternalFormat colorTable :: Proxy -> ColorTable -> PixelInternalFormat -> GLsizei -> PixelData a -> IO () getColorTable :: ColorTable -> PixelData a -> IO () copyColorTable :: ColorTable -> PixelInternalFormat -> Position -> GLsizei -> IO () colorSubTable :: ColorTable -> GLsizei -> GLsizei -> PixelData a -> IO () copyColorSubTable :: ColorTable -> GLsizei -> Position -> GLsizei -> IO () colorTableScale :: ColorTableStage -> StateVar (Color4 GLfloat) colorTableBias :: ColorTableStage -> StateVar (Color4 GLfloat) colorTableFormat :: ColorTable -> GettableStateVar PixelInternalFormat colorTableWidth :: ColorTable -> GettableStateVar GLsizei colorTableRGBASizes :: ColorTable -> GettableStateVar (Color4 GLsizei) colorTableLuminanceSize :: ColorTable -> GettableStateVar GLsizei colorTableIntesitySize :: ColorTable -> GettableStateVar GLsizei instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable.Proxy instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable.Proxy instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable.Proxy instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable.ColorTable instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable.ColorTable instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable.ColorTable instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable.ColorTableStage instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable.ColorTableStage instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PixelRectangles.ColorTable.ColorTableStage -- | This module corresponds to section 3.8.12 (Texture Objects) of the -- OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.Texturing.Objects newtype TextureObject TextureObject :: GLuint -> TextureObject textureBinding :: BindableTextureTarget t => t -> StateVar (Maybe TextureObject) textureResident :: ParameterizedTextureTarget t => t -> GettableStateVar Bool areTexturesResident :: [TextureObject] -> IO ([TextureObject], [TextureObject]) type TexturePriority = GLclampf texturePriority :: ParameterizedTextureTarget t => t -> StateVar TexturePriority prioritizeTextures :: [(TextureObject, TexturePriority)] -> IO () -- | Generate mipmaps for the specified texture target. Note that from -- OpenGL 3.1 onwards you should use this function instead of the texture -- parameter generateMipmap. generateMipmap' :: ParameterizedTextureTarget t => t -> IO () -- | This module corresponds to section 3.8.15 (Texture Application) of the -- OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.Texturing.Application texture :: ParameterizedTextureTarget t => t -> StateVar Capability -- | This module corresponds to a part of section 3.6.1 (Pixel Storage -- Modes) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.PixelRectangles.Histogram data Sink PassThrough :: Sink Sink :: Sink histogram :: Proxy -> StateVar (Maybe (GLsizei, PixelInternalFormat, Sink)) data Reset NoReset :: Reset Reset :: Reset getHistogram :: Reset -> PixelData a -> IO () resetHistogram :: IO () histogramRGBASizes :: Proxy -> GettableStateVar (Color4 GLsizei) histogramLuminanceSize :: Proxy -> GettableStateVar GLsizei -- | This module corresponds to section 3.6 (Pixel Rectangles) of the -- OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.PixelRectangles -- | This module corresponds to section 3.8.1 (Texture Image -- Specification), section 3.8.2 (Alternate Texture Image Specification -- Commands), and section 3.8.3 (Compressed Texture Images) of the OpenGL -- 2.1 specs. module Graphics.Rendering.OpenGL.GL.Texturing.Specification data TextureTarget1D Texture1D :: TextureTarget1D data TextureTarget2D Texture2D :: TextureTarget2D Texture1DArray :: TextureTarget2D TextureRectangle :: TextureTarget2D data TextureTarget2DMultisample Texture2DMultisample :: TextureTarget2DMultisample data TextureTargetCubeMap TextureCubeMap :: TextureTargetCubeMap data TextureTargetCubeMapFace TextureCubeMapPositiveX :: TextureTargetCubeMapFace TextureCubeMapNegativeX :: TextureTargetCubeMapFace TextureCubeMapPositiveY :: TextureTargetCubeMapFace TextureCubeMapNegativeY :: TextureTargetCubeMapFace TextureCubeMapPositiveZ :: TextureTargetCubeMapFace TextureCubeMapNegativeZ :: TextureTargetCubeMapFace data TextureTarget3D Texture3D :: TextureTarget3D Texture2DArray :: TextureTarget3D TextureCubeMapArray :: TextureTarget3D data TextureTarget2DMultisampleArray Texture2DMultisampleArray :: TextureTarget2DMultisampleArray data TextureTargetBuffer TextureBuffer' :: TextureTargetBuffer class BindableTextureTarget t class ParameterizedTextureTarget t class OneDimensionalTextureTarget t class TwoDimensionalTextureTarget t class ThreeDimensionalTextureTarget t class QueryableTextureTarget t class GettableTextureTarget t type Level = GLint type Border = GLint newtype TexturePosition1D TexturePosition1D :: GLint -> TexturePosition1D data TexturePosition2D TexturePosition2D :: !GLint -> !GLint -> TexturePosition2D data TexturePosition3D TexturePosition3D :: !GLint -> !GLint -> !GLint -> TexturePosition3D newtype TextureSize1D TextureSize1D :: GLsizei -> TextureSize1D data TextureSize2D TextureSize2D :: !GLsizei -> !GLsizei -> TextureSize2D data TextureSize3D TextureSize3D :: !GLsizei -> !GLsizei -> !GLsizei -> TextureSize3D texImage1D :: OneDimensionalTextureTarget t => t -> Proxy -> Level -> PixelInternalFormat -> TextureSize1D -> Border -> PixelData a -> IO () texImage2D :: TwoDimensionalTextureTarget t => t -> Proxy -> Level -> PixelInternalFormat -> TextureSize2D -> Border -> PixelData a -> IO () texImage3D :: ThreeDimensionalTextureTarget t => t -> Proxy -> Level -> PixelInternalFormat -> TextureSize3D -> Border -> PixelData a -> IO () copyTexImage1D :: OneDimensionalTextureTarget t => t -> Level -> PixelInternalFormat -> Position -> TextureSize1D -> Border -> IO () copyTexImage2D :: TwoDimensionalTextureTarget t => t -> Level -> PixelInternalFormat -> Position -> TextureSize2D -> Border -> IO () texSubImage1D :: OneDimensionalTextureTarget t => t -> Level -> TexturePosition1D -> TextureSize1D -> PixelData a -> IO () texSubImage2D :: TwoDimensionalTextureTarget t => t -> Level -> TexturePosition2D -> TextureSize2D -> PixelData a -> IO () texSubImage3D :: ThreeDimensionalTextureTarget t => t -> Level -> TexturePosition3D -> TextureSize3D -> PixelData a -> IO () getTexImage :: GettableTextureTarget t => t -> Level -> PixelData a -> IO () copyTexSubImage1D :: OneDimensionalTextureTarget t => t -> Level -> TexturePosition1D -> Position -> TextureSize1D -> IO () copyTexSubImage2D :: TwoDimensionalTextureTarget t => t -> Level -> TexturePosition2D -> Position -> TextureSize2D -> IO () copyTexSubImage3D :: ThreeDimensionalTextureTarget t => t -> Level -> TexturePosition3D -> Position -> TextureSize2D -> IO () newtype CompressedTextureFormat CompressedTextureFormat :: GLenum -> CompressedTextureFormat compressedTextureFormats :: GettableStateVar [CompressedTextureFormat] data CompressedPixelData a CompressedPixelData :: !CompressedTextureFormat -> GLsizei -> Ptr a -> CompressedPixelData a compressedTexImage1D :: OneDimensionalTextureTarget t => t -> Proxy -> Level -> TextureSize1D -> Border -> CompressedPixelData a -> IO () compressedTexImage2D :: TwoDimensionalTextureTarget t => t -> Proxy -> Level -> TextureSize2D -> Border -> CompressedPixelData a -> IO () compressedTexImage3D :: ThreeDimensionalTextureTarget t => t -> Proxy -> Level -> TextureSize3D -> Border -> CompressedPixelData a -> IO () compressedTexSubImage1D :: OneDimensionalTextureTarget t => t -> Level -> TexturePosition1D -> TextureSize1D -> CompressedPixelData a -> IO () compressedTexSubImage2D :: TwoDimensionalTextureTarget t => t -> Level -> TexturePosition2D -> TextureSize2D -> CompressedPixelData a -> IO () compressedTexSubImage3D :: ThreeDimensionalTextureTarget t => t -> Level -> TexturePosition3D -> TextureSize3D -> CompressedPixelData a -> IO () getCompressedTexImage :: GettableTextureTarget t => t -> Level -> Ptr a -> IO () data SampleLocations FlexibleSampleLocations :: SampleLocations FixedSampleLocations :: SampleLocations texImage2DMultisample :: TextureTarget2DMultisample -> Proxy -> Samples -> PixelInternalFormat -> TextureSize2D -> SampleLocations -> IO () texImage3DMultisample :: TextureTarget2DMultisampleArray -> Proxy -> Samples -> PixelInternalFormat -> TextureSize3D -> SampleLocations -> IO () maxTextureSize :: GettableStateVar GLsizei maxCubeMapTextureSize :: GettableStateVar GLsizei maxRectangleTextureSize :: GettableStateVar GLsizei max3DTextureSize :: GettableStateVar GLsizei maxArrayTextureLayers :: GettableStateVar GLsizei maxSampleMaskWords :: GettableStateVar GLsizei maxColorTextureSamples :: GettableStateVar GLsizei maxDepthTextureSamples :: GettableStateVar GLsizei maxIntegerSamples :: GettableStateVar GLsizei instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Specification.SampleLocations instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Specification.SampleLocations instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Specification.SampleLocations instance GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Texturing.Specification.CompressedPixelData a) instance GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Texturing.Specification.CompressedPixelData a) instance GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Texturing.Specification.CompressedPixelData a) instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Specification.CompressedTextureFormat instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Specification.CompressedTextureFormat instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Specification.CompressedTextureFormat instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Specification.TextureSize3D instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Specification.TextureSize3D instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Specification.TextureSize3D instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Specification.TextureSize2D instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Specification.TextureSize2D instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Specification.TextureSize2D instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Specification.TextureSize1D instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Specification.TextureSize1D instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Specification.TextureSize1D instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Specification.TexturePosition3D instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Specification.TexturePosition3D instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Specification.TexturePosition3D instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Specification.TexturePosition2D instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Specification.TexturePosition2D instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Specification.TexturePosition2D instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Specification.TexturePosition1D instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Specification.TexturePosition1D instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Specification.TexturePosition1D -- | This module corresponds to section 3.8.4 (Texture Parameters), section -- 3.8.7 (Texture Wrap Mode), section 3.8.8 (Texture Minification), and -- section 3.8.9 (Texture Magnification) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.Texturing.Parameters data TextureFilter Nearest :: TextureFilter Linear' :: TextureFilter type MinificationFilter = (TextureFilter, Maybe TextureFilter) type MagnificationFilter = TextureFilter textureFilter :: ParameterizedTextureTarget t => t -> StateVar (MinificationFilter, MagnificationFilter) data Repetition Repeated :: Repetition Mirrored :: Repetition data Clamping Clamp :: Clamping Repeat :: Clamping ClampToEdge :: Clamping ClampToBorder :: Clamping textureWrapMode :: ParameterizedTextureTarget t => t -> TextureCoordName -> StateVar (Repetition, Clamping) textureBorderColor :: ParameterizedTextureTarget t => t -> StateVar (Color4 GLfloat) type LOD = GLfloat textureObjectLODBias :: ParameterizedTextureTarget t => t -> StateVar LOD maxTextureLODBias :: GettableStateVar LOD textureLODRange :: ParameterizedTextureTarget t => t -> StateVar (LOD, LOD) textureMaxAnisotropy :: ParameterizedTextureTarget t => t -> StateVar GLfloat maxTextureMaxAnisotropy :: GettableStateVar GLfloat textureLevelRange :: ParameterizedTextureTarget t => t -> StateVar (Level, Level) -- | Note: OpenGL 3.1 deprecated this texture parameter, use -- generateMipmap' instead. generateMipmap :: ParameterizedTextureTarget t => t -> StateVar Capability depthTextureMode :: ParameterizedTextureTarget t => t -> StateVar PixelInternalFormat textureCompareMode :: ParameterizedTextureTarget t => t -> StateVar (Maybe ComparisonFunction) textureCompareFailValue :: ParameterizedTextureTarget t => t -> StateVar GLclampf data TextureCompareOperator LequalR :: TextureCompareOperator GequalR :: TextureCompareOperator textureCompareOperator :: ParameterizedTextureTarget t => t -> StateVar (Maybe TextureCompareOperator) instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Parameters.TextureCompareOperator instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Parameters.TextureCompareOperator instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Parameters.TextureCompareOperator instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Parameters.Clamping instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Parameters.Clamping instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Parameters.Clamping instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Parameters.Repetition instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Parameters.Repetition instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Parameters.Repetition -- | This module corresponds to section 3.8.13 (Texture Environments and -- Texture Functions) of the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.Texturing.Environments data TextureFunction Modulate :: TextureFunction Decal :: TextureFunction Blend :: TextureFunction Replace :: TextureFunction AddUnsigned :: TextureFunction Combine :: TextureFunction Combine4 :: TextureFunction textureFunction :: StateVar TextureFunction data TextureCombineFunction Replace' :: TextureCombineFunction Modulate' :: TextureCombineFunction AddUnsigned' :: TextureCombineFunction AddSigned :: TextureCombineFunction Interpolate :: TextureCombineFunction Subtract :: TextureCombineFunction Dot3RGB :: TextureCombineFunction Dot3RGBA :: TextureCombineFunction combineRGB :: StateVar TextureCombineFunction combineAlpha :: StateVar TextureCombineFunction data ArgNum Arg0 :: ArgNum Arg1 :: ArgNum Arg2 :: ArgNum Arg3 :: ArgNum data Arg Arg :: BlendingFactor -> Src -> Arg data Src CurrentUnit :: Src Previous :: Src Crossbar :: TextureUnit -> Src Constant :: Src PrimaryColor :: Src argRGB :: ArgNum -> StateVar Arg argAlpha :: ArgNum -> StateVar Arg rgbScale :: StateVar GLfloat alphaScale :: StateVar GLfloat constantColor :: StateVar (Color4 GLfloat) textureUnitLODBias :: StateVar LOD instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Environments.Arg instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Environments.Arg instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Environments.Arg instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Environments.Src instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Environments.Src instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Environments.Src instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Environments.ArgNum instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Environments.ArgNum instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Environments.ArgNum instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Environments.TextureCombineFunction instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Environments.TextureCombineFunction instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Environments.TextureCombineFunction instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Texturing.Environments.TextureFunction instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Texturing.Environments.TextureFunction instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Texturing.Environments.TextureFunction module Graphics.Rendering.OpenGL.GL.PixellikeObject data PixellikeObjectGetPName RedSize :: PixellikeObjectGetPName BlueSize :: PixellikeObjectGetPName GreenSize :: PixellikeObjectGetPName AlphaSize :: PixellikeObjectGetPName DepthSize :: PixellikeObjectGetPName StencilSize :: PixellikeObjectGetPName class PixellikeObjectTarget t pixellikeObjTarParam :: PixellikeObjectTarget t => t -> PixellikeObjectGetPName -> GettableStateVar GLint instance Graphics.Rendering.OpenGL.GL.Texturing.TextureTarget.QueryableTextureTarget t => Graphics.Rendering.OpenGL.GL.PixellikeObject.PixellikeObjectTarget (Graphics.Rendering.OpenGL.GL.PixellikeObject.TextureTargetFull t) instance Graphics.Rendering.OpenGL.GL.PixellikeObject.PixellikeObjectTarget Graphics.Rendering.OpenGL.GL.PixellikeObject.FramebufferTargetAttachment instance Graphics.Rendering.OpenGL.GL.PixellikeObject.PixellikeObjectTarget Graphics.Rendering.OpenGL.GL.FramebufferObjects.RenderbufferTarget.RenderbufferTarget module Graphics.Rendering.OpenGL.GL.FramebufferObjects.Queries data AttachmentObjectType DefaultFramebufferAttachment :: AttachmentObjectType TextureAttachment :: AttachmentObjectType RenderbufferAttachment :: AttachmentObjectType attachmentObjectType :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar (Maybe AttachmentObjectType) -- | tries to retrieve the object that is bound to the attachment point of -- the given framebuffertarget. If the object type of it is None or the -- default, then Nothing is returned, otherwise the bound -- RenderbufferObject or TextureObject attachmentObject :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar (Maybe (Either RenderbufferObject TextureObject)) attachmentTextureLayer :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar GLint attachmentTextureLevel :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar Level attachmentTextureTextureTargetCubeMapFace :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar TextureTargetCubeMapFace attachmentRedSize :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar GLint attachmentBlueSize :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar GLint attachmentGreenSize :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar GLint attachmentAlphaSize :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar GLint attachmentDepthSize :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar GLint attachmentStencilSize :: FramebufferAttachment fba => FramebufferTarget -> fba -> GettableStateVar GLint renderbufferWidth :: RenderbufferTarget -> GettableStateVar GLsizei renderbufferHeight :: RenderbufferTarget -> GettableStateVar GLsizei renderbufferInternalFormat :: RenderbufferTarget -> GettableStateVar PixelInternalFormat renderbufferSamples :: RenderbufferTarget -> GettableStateVar Samples renderbufferRedSize :: RenderbufferTarget -> GettableStateVar GLint renderbufferBlueSize :: RenderbufferTarget -> GettableStateVar GLint renderbufferGreenSize :: RenderbufferTarget -> GettableStateVar GLint renderbufferAlphaSize :: RenderbufferTarget -> GettableStateVar GLint renderbufferDepthSize :: RenderbufferTarget -> GettableStateVar GLint renderbufferStencilSize :: RenderbufferTarget -> GettableStateVar GLint instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.FramebufferObjects.Queries.AttachmentObjectType instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.FramebufferObjects.Queries.AttachmentObjectType instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.FramebufferObjects.Queries.AttachmentObjectType module Graphics.Rendering.OpenGL.GL.FramebufferObjects.Attachments data FramebufferObjectAttachment ColorAttachment :: !GLuint -> FramebufferObjectAttachment DepthAttachment :: FramebufferObjectAttachment StencilAttachment :: FramebufferObjectAttachment DepthStencilAttachment :: FramebufferObjectAttachment fboaToBufferMode :: FramebufferObjectAttachment -> Maybe BufferMode fboaFromBufferMode :: BufferMode -> Maybe FramebufferObjectAttachment class Show a => FramebufferAttachment a marshalAttachment :: FramebufferAttachment a => a -> Maybe GLenum unmarshalAttachment :: FramebufferAttachment a => GLenum -> a unmarshalAttachmentSafe :: FramebufferAttachment a => GLenum -> Maybe a framebufferRenderbuffer :: FramebufferTarget -> FramebufferObjectAttachment -> RenderbufferTarget -> RenderbufferObject -> IO () framebufferTexture1D :: FramebufferTarget -> FramebufferObjectAttachment -> TextureTarget1D -> TextureObject -> Level -> IO () framebufferTexture2D :: FramebufferTarget -> FramebufferObjectAttachment -> TextureTarget2D -> TextureObject -> Level -> IO () framebufferTexture3D :: FramebufferTarget -> FramebufferObjectAttachment -> TextureTarget3D -> TextureObject -> Level -> GLint -> IO () framebufferTextureLayer :: FramebufferTarget -> FramebufferObjectAttachment -> TextureObject -> Level -> GLint -> IO () -- | Framebuffer objects. module Graphics.Rendering.OpenGL.GL.FramebufferObjects -- | This module offers various texture queries. module Graphics.Rendering.OpenGL.GL.Texturing.Queries type TextureQuery t a = t -> Level -> GettableStateVar a textureInternalFormat :: QueryableTextureTarget t => TextureQuery t PixelInternalFormat textureSize1D :: TextureQuery TextureTarget1D TextureSize1D textureSize2D :: TextureQuery TextureTarget2D TextureSize2D textureSize3D :: TextureQuery TextureTarget3D TextureSize3D textureBorder :: QueryableTextureTarget t => TextureQuery t Border textureRGBASizes :: QueryableTextureTarget t => TextureQuery t (Color4 GLsizei) textureSharedSize :: QueryableTextureTarget t => TextureQuery t GLsizei textureIntensitySize :: QueryableTextureTarget t => TextureQuery t GLsizei textureLuminanceSize :: QueryableTextureTarget t => TextureQuery t GLsizei textureIndexSize :: QueryableTextureTarget t => TextureQuery t GLsizei textureDepthBits :: QueryableTextureTarget t => TextureQuery t GLsizei textureCompressedImageSize :: QueryableTextureTarget t => TextureQuery t (Maybe GLsizei) textureProxyOK :: ParameterizedTextureTarget t => TextureQuery t Bool data DataRepresentation SignedNormalizedRepresentation :: DataRepresentation UnsignedNormalizedRepresentation :: DataRepresentation FloatRepresentation :: DataRepresentation IntRepresentation :: DataRepresentation UnsignedIntRepresentation :: DataRepresentation textureRGBATypes :: QueryableTextureTarget t => TextureQuery t (Color4 (Maybe DataRepresentation)) textureIntensityType :: QueryableTextureTarget t => TextureQuery t (Maybe DataRepresentation) textureLuminanceType :: QueryableTextureTarget t => TextureQuery t (Maybe DataRepresentation) textureDepthType :: QueryableTextureTarget t => TextureQuery t (Maybe DataRepresentation) -- | This module corresponds to section 3.8 (Texturing) of the OpenGL 2.1 -- specs. module Graphics.Rendering.OpenGL.GL.Texturing -- | This module corresponds to section 3.5 (Polygons) of the OpenGL 2.1 -- specs. module Graphics.Rendering.OpenGL.GL.Polygons polygonSmooth :: StateVar Capability cullFace :: StateVar (Maybe Face) class PolygonStipple s withNewPolygonStipple :: PolygonStipple s => (Ptr GLubyte -> IO ()) -> IO s withPolygonStipple :: PolygonStipple s => s -> (Ptr GLubyte -> IO a) -> IO a newPolygonStipple :: PolygonStipple s => [GLubyte] -> IO s getPolygonStippleComponents :: PolygonStipple s => s -> IO [GLubyte] data GLpolygonstipple polygonStipple :: PolygonStipple s => StateVar (Maybe s) data PolygonMode Point :: PolygonMode Line :: PolygonMode Fill :: PolygonMode polygonMode :: StateVar (PolygonMode, PolygonMode) polygonOffset :: StateVar (GLfloat, GLfloat) polygonOffsetPoint :: StateVar Capability polygonOffsetLine :: StateVar Capability polygonOffsetFill :: StateVar Capability instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Polygons.GLpolygonstipple instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Polygons.GLpolygonstipple instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Polygons.GLpolygonstipple instance Graphics.Rendering.OpenGL.GL.Polygons.PolygonStipple Graphics.Rendering.OpenGL.GL.Polygons.GLpolygonstipple -- | This module corresponds to section 17.4 (Whole Framebuffer Operations) -- of the OpenGL 4.5 specs. module Graphics.Rendering.OpenGL.GL.Framebuffer -- | The set of color buffers which are selected for reading and writing. -- Note that FBOColorAttachment can only be used with framebuffer -- objects, while the rest can only be used with the default framebuffer. -- Furthermore, OpenGL 3.0 deprecated auxiliary buffers, so avoid -- AuxBuffer in modern code. data BufferMode -- | No color buffers are selected. NoBuffers :: BufferMode -- | Only the front left color buffer is selected. FrontLeftBuffer :: BufferMode -- | Only the front right color buffer is selected. FrontRightBuffer :: BufferMode -- | Only the back left color buffer is selected. BackLeftBuffer :: BufferMode -- | Only the back right color buffer is selected. BackRightBuffer :: BufferMode -- | Only the front left and front right color buffers are selected. If -- there is no front right color buffer, only the front left color buffer -- is selected. FrontBuffers :: BufferMode -- | Only the back left and back right color buffers are selected. If there -- is no back right color buffer, only the back left color buffer is -- selected. BackBuffers :: BufferMode -- | Only the front left and back left color buffers are selected. If there -- is no back left color buffer, only the front left color buffer is -- selected. LeftBuffers :: BufferMode -- | Only the front right and back right color buffers are selected. If -- there is no back right color buffer, only the front right color buffer -- is selected. RightBuffers :: BufferMode -- | All the front and back color buffers (front left, front right, back -- left, back right) are selected. If there are no back color buffers, -- only the front left and front right color buffers are selected. If -- there are no right color buffers, only the front left and back left -- color buffers are selected. If there are no right or back color -- buffers, only the front left color buffer is selected. FrontAndBackBuffers :: BufferMode -- | Only the given auxiliary color buffer no. i is selected. AuxBuffer :: GLsizei -> BufferMode -- | Only the given color attachment of the bound framebufferobject is -- selected for reading or writing. FBOColorAttachment :: GLsizei -> BufferMode -- | When colors are written to the framebuffer, they are written into the -- color buffers specified by drawBuffer. -- -- If more than one color buffer is selected for drawing, then blending -- or logical operations are computed and applied independently for each -- color buffer and can produce different results in each buffer. -- -- Monoscopic contexts include only left buffers, and stereoscopic -- contexts include both left and right buffers. Likewise, -- single-buffered contexts include only front buffers, and -- double-buffered contexts include both front and back buffers. The -- context is selected at GL initialization. -- -- The initial value is FrontBuffers for single-buffered contexts, -- and BackBuffers for double-buffered contexts. drawBuffer :: StateVar BufferMode -- | The direct-state-access version of drawBuffer. namedFramebufferDrawBuffer :: FramebufferObject -> SettableStateVar BufferMode -- | drawBuffers defines the draw buffers to which all fragment -- colors are written. The draw buffers being defined correspond in order -- to the respective fragment colors. The draw buffer for fragment colors -- beyond those specified is set to NoBuffers. -- -- Except for NoBuffers, a buffer may not appear more then once in -- the given list. Specifying a buffer more then once will result in an -- InvalidOperation. -- -- If fixed-function fragment shading is being performed, -- drawBuffers specifies a set of draw buffers into which the -- fragment color is written. -- -- If a fragment shader writes to gl_FragColor, -- drawBuffers specifies a set of draw buffers into which the -- single fragment color defined by gl_FragColor is written. If -- a fragment shader writes to gl_FragData, drawBuffers -- specifies a set of draw buffers into which each of the multiple -- fragment colors defined by gl_FragData are separately -- written. If a fragment shader writes to neither gl_FragColor -- nor gl_FragData, the values of the fragment colors following -- shader execution are undefined, and may differ for each fragment -- color. drawBuffers :: StateVar [BufferMode] -- | The direct-state-access version of drawBuffers. namedFramebufferDrawBuffers :: FramebufferObject -> SettableStateVar [BufferMode] -- | The index of the draw buffer. type DrawBufferIndex = GLuint -- | drawBufferi is a fast query function. For indices in the range -- 0..maxDrawBuffers-1 its results is the same as selecting the -- corresponding element from the list returned by drawBuffers, -- but this function uses only one GL function call instead of -- maxDrawBuffers ones. drawBufferi :: DrawBufferIndex -> GettableStateVar BufferMode -- | Contains the maximum number of buffers that can activated via -- drawBuffers or which can be simultaneously written into from -- within a fragment shader using the special output variable array -- gl_FragData. This constant effectively defines the size of -- the gl_FragData array. The minimum legal value is 1. maxDrawBuffers :: GettableStateVar GLsizei -- | Controls the writing of individual bits in the color index buffers. -- The least significant n bits of its value, where n is -- the number of bits in a color index buffer, specify a mask. Where a 1 -- appears in the mask, it is possible to write to the corresponding bit -- in the color index buffer (or buffers). Where a 0 appears, the -- corresponding bit is write-protected. -- -- This mask is used only in color index mode, and it affects only the -- buffers currently selected for writing (see drawBuffer). -- Initially, all bits are enabled for writing. indexMask :: StateVar GLuint -- | Controls whether the individual color components in the framebuffer -- can or cannot be written. If the red flag is Disabled, for -- example, no change is made to the red component of any pixel in any of -- the color buffers, regardless of the drawing operation attempted. -- Initially, all color components can be written. -- -- Changes to individual bits of components cannot be controlled. Rather, -- changes are either enabled or disabled for entire color components. -- Furthermore, this mask is used only in RGBA mode. colorMask :: StateVar (Color4 Capability) -- | colorMaski is a version of colorMask that only applies -- to the specified draw buffer. colorMaski :: DrawBufferIndex -> StateVar (Color4 Capability) -- | Controls whether the depth buffer is enabled for writing. The initial -- state is Enabled. depthMask :: StateVar Capability -- | Controls the writing of individual bits in the stencil planes. The -- least significant n bits of its value, where n is the -- number of bits in the stencil buffer, specify a mask. Where a 1 -- appears in the mask, it is possible to write to the corresponding bit -- in the stencil buffer. Where a 0 appears, the corresponding bit is -- write-protected. Initially, all bits are enabled for writing. stencilMask :: StateVar GLuint -- | A per-face version of stencilMask. stencilMaskSeparate :: Face -> StateVar GLuint -- | The buffers which can be cleared with clear. data ClearBuffer -- | The buffers currently enabled for color writing. ColorBuffer :: ClearBuffer -- | The accumulation buffer. AccumBuffer :: ClearBuffer -- | The stencil buffer. StencilBuffer :: ClearBuffer -- | The depth buffer. DepthBuffer :: ClearBuffer -- | Set the bitplane area of the window to values previously selected by -- clearColor, clearIndex, clearDepth, -- clearStencil, and clearAccum. Multiple color buffers can -- be cleared simultaneously by selecting more than one buffer at a time -- using drawBuffer. -- -- The pixel ownership test, the scissor test, dithering, and the buffer -- writemasks affect the operation of clear. The scissor box -- bounds the cleared region. Alpha function, blend function, logical -- operation, stenciling, texure mapping, and depth-buffering are ignored -- by clear. -- -- clear takes a list of buffers, indicating which buffers are to -- be cleared. If a buffer is not present, then a clear directed -- at that buffer has no effect. -- -- The value to which each buffer is cleared depends on the setting of -- the clear value for that buffer. clear :: [ClearBuffer] -> IO () -- | Controls the red, green, blue, and alpha values used by clear -- to clear the color buffers. Initially, all values are 0. clearColor :: StateVar (Color4 GLfloat) -- | Controls the index c used by clear to clear the color -- index buffers. c is not clamped. Rather, c is converted -- to a fixed-point value with unspecified precision to the right of the -- binary point. The integer part of this value is then masked with -- 2^m-1, where m is the number of bits in a color index -- stored in the framebuffer. Initially, the value is 0. clearIndex :: StateVar (Index1 GLfloat) -- | Controls the depth value used by clear to clear the depth -- buffer. The initial value is 1. clearDepth :: StateVar GLdouble -- | A variant of clearDepth with a GLfloat argument. clearDepthf :: StateVar GLfloat -- | Controls the value s used by clear to clear the stencil -- buffer. s is masked with 2^m-1, where m is the -- number of bits in the stencil buffer. Initially, the value is 0. clearStencil :: StateVar GLint -- | Controls the red, green, blue, and alpha values used by clear -- to clear the accumulation buffer. Values written into -- clearAccum are clamped to the range [-1, 1]. The initial values -- are all 0. clearAccum :: StateVar (Color4 GLfloat) -- | Describes which buffer(s) to clear and the value to use. data ClearBufferCommand -- | Clear the signed integer color buffer(s) at the given index. ClearColorBufferInt :: DrawBufferIndex -> Color4 GLint -> ClearBufferCommand -- | Clear the fixed- or floating-point color buffer(s) at the given index. ClearColorBufferFloat :: DrawBufferIndex -> Color4 GLfloat -> ClearBufferCommand -- | Clear the unsigned color buffer(s) at the given index. ClearColorBufferUint :: DrawBufferIndex -> Color4 GLuint -> ClearBufferCommand -- | Clear the depth buffer. ClearDepthBuffer :: GLfloat -> ClearBufferCommand -- | Clear the stencil buffer. ClearStencilBuffer :: GLint -> ClearBufferCommand -- | Clear the depth buffer and the stencil buffer. ClearDepthAndStencilBuffers :: GLfloat -> GLint -> ClearBufferCommand -- | Clear the given buffer(s). clearBuffer :: ClearBufferCommand -> IO () -- | The direct-state-access version of clearBuffer. clearNamedFramebuffer :: FramebufferObject -> ClearBufferCommand -> IO () -- | Invalidate a region of the attachments bound to the given target. invalidateSubFramebuffer :: FramebufferTarget -> [FramebufferObjectAttachment] -> (Position, Size) -> IO () -- | The direct-state-access version of invalidateSubFramebuffer. invalidateNamedFramebufferSubData :: FramebufferObject -> [FramebufferObjectAttachment] -> (Position, Size) -> IO () -- | A version of invalidateSubFramebuffer affecting the whole -- viewport. invalidateFramebuffer :: FramebufferTarget -> [FramebufferObjectAttachment] -> IO () -- | The direct-state-access version of invalidateFramebuffer. invalidateNamedFramebufferData :: FramebufferObject -> [FramebufferObjectAttachment] -> IO () -- | An operation on the accumulation buffer. data AccumOp -- | Obtains R, G, B, and A values from the -- buffer currently selected for reading (see readBuffer). Each -- component value is divided by 2^n-1, where n is the -- number of bits allocated to each color component in the currently -- selected buffer. The result is a floating-point value in the range [0, -- 1], which is multiplied by the value given to accum and added -- to the corresponding pixel component in the accumulation buffer, -- thereby updating the accumulation buffer. Accum :: AccumOp -- | Similar to Accum, except that the current value in the -- accumulation buffer is not used in the calculation of the new value. -- That is, the R, G, B, and A values from -- the currently selected buffer are divided by 2^n-1, multiplied -- by the value given to accum, and then stored in the -- corresponding accumulation buffer cell, overwriting the current value. Load :: AccumOp -- | Transfers accumulation buffer values to the color buffer or buffers -- currently selected for writing. Each R, G, B, and -- A component is multiplied by the value given to accum, -- then multiplied by 2^n-1, clamped to the range [0, -- 2^n-1], and stored in the corresponding display buffer cell. -- The only fragment operations that are applied to this transfer are -- pixel ownership, scissor, dithering, and color writemasks. Return :: AccumOp -- | Multiplies each R, G, B, and A in the -- accumulation buffer by the value given to accum and returns the -- scaled component to its corresponding accumulation buffer location. Mult :: AccumOp -- | Adds the value given to accum to each R, G, -- B, and A in the accumulation buffer. Add :: AccumOp -- | The accumulation buffer is an extended-range color buffer. Images are -- not rendered into it. Rather, images rendered into one of the color -- buffers are added to the contents of the accumulation buffer after -- rendering. Effects such as antialiasing (of points, lines, and -- polygons), motion blur, and depth of field can be created by -- accumulating images generated with different transformation matrices. -- -- Each pixel in the accumulation buffer consists of red, green, blue, -- and alpha values. The number of bits per component in the accumulation -- buffer depends on the implementation (see accumBits). -- Regardless of the number of bits per component, the range of values -- stored by each component is [-1, 1]. The accumulation buffer pixels -- are mapped one-to-one with frame buffer pixels. -- -- accum operates on the accumulation buffer. The first argument -- selects an accumulation buffer operation. The second argument, is a -- floating-point value to be used in that operation, see AccumOp. -- -- All accumulation buffer operations are limited to the area of the -- current scissor box and applied identically to the red, green, blue, -- and alpha components of each pixel. If an accum operation -- results in a value outside the range [-1, 1], the contents of an -- accumulation buffer pixel component are undefined. -- -- To clear the accumulation buffer, use clearAccum to specify the -- clear value, then call clear with the accumulation buffer -- enabled. accum :: AccumOp -> GLfloat -> IO () -- | The implementation and context dependent number of auxiliary buffers. auxBuffers :: GettableStateVar GLsizei -- | True if front and back buffers exist. doubleBuffer :: GettableStateVar Bool -- | True if left and right buffers exist. stereoBuffer :: GettableStateVar Bool rgbaBits :: GettableStateVar (Color4 GLsizei) stencilBits :: GettableStateVar GLsizei depthBits :: GettableStateVar GLsizei accumBits :: GettableStateVar (Color4 GLsizei) rgbaSignedComponents :: GettableStateVar (Color4 Bool) instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Framebuffer.AccumOp instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Framebuffer.AccumOp instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Framebuffer.AccumOp instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Framebuffer.ClearBufferCommand instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Framebuffer.ClearBufferCommand instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Framebuffer.ClearBufferCommand instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Framebuffer.ClearBuffer instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Framebuffer.ClearBuffer instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Framebuffer.ClearBuffer -- | This module corresponds to section 7.3 (Program Objects) of the OpenGL -- 4.4 spec. module Graphics.Rendering.OpenGL.GL.Shaders.ProgramObjects data Program createProgram :: IO Program programDeleteStatus :: Program -> GettableStateVar Bool attachShader :: Program -> Shader -> IO () detachShader :: Program -> Shader -> IO () attachedShaders :: Program -> StateVar [Shader] linkProgram :: Program -> IO () linkStatus :: Program -> GettableStateVar Bool validateProgram :: Program -> IO () validateStatus :: Program -> GettableStateVar Bool programInfoLog :: Program -> GettableStateVar String currentProgram :: StateVar (Maybe Program) programSeparable :: Program -> StateVar Bool programBinaryRetrievableHint :: Program -> StateVar Bool -- | bindFragDataLocation binds a varying variable, specified by -- program and name, to a drawbuffer. The effects only take place after -- succesfull linking of the program. invalid arguments and conditions -- are - an index larger than maxDrawBufferIndex - names starting with -- gl_ linking failure will ocure when - one of the arguments -- was invalid - more than one varying varuable name is bound to the same -- index It's not an error to specify unused variables, those will be -- ingored. bindFragDataLocation :: Program -> String -> SettableStateVar DrawBufferIndex -- | query the binding of a given variable, specified by program and name. -- The program has to be linked. The result is Nothing if an error -- occures or the name is not a name of a varying variable. If the -- program hasn't been linked an InvalidOperation error is -- generated. getFragDataLocation :: Program -> String -> IO (Maybe DrawBufferIndex) -- | This module contains functions related to shader uniforms, this -- corresponds to section 2.20.3 of the OpenGL 3.1 spec (Shader -- Variables). module Graphics.Rendering.OpenGL.GL.Shaders.Uniform newtype UniformLocation UniformLocation :: GLint -> UniformLocation uniformLocation :: Program -> String -> GettableStateVar UniformLocation activeUniforms :: Program -> GettableStateVar [(GLint, VariableType, String)] class Uniform a uniform :: Uniform a => UniformLocation -> StateVar a uniformv :: Uniform a => UniformLocation -> GLsizei -> Ptr a -> IO () class Storable a => UniformComponent a instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformLocation instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformLocation instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformLocation instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform Graphics.GL.Types.GLuint instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform Graphics.GL.Types.GLdouble instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.Tensor.Vertex1 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.Tensor.Vertex4 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.Tensor.Vector1 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.Tensor.Vector2 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.Tensor.Vector3 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.Tensor.Vector4 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord1 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord2 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord3 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.VertexAttributes.TexCoord4 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.VertexAttributes.Normal3 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.VertexAttributes.FogCoord1 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.VertexAttributes.Color3 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.VertexAttributes.Color4 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.VertexAttributes.Index1 a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform Graphics.Rendering.OpenGL.GL.Texturing.TextureUnit.TextureUnit instance Graphics.Rendering.OpenGL.GL.MatrixComponent.MatrixComponent a => Graphics.Rendering.OpenGL.GL.Shaders.Uniform.Uniform (Graphics.Rendering.OpenGL.GL.CoordTrans.GLmatrix a) instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent Graphics.GL.Types.GLint instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent Graphics.GL.Types.GLuint instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent Graphics.GL.Types.GLfloat instance Graphics.Rendering.OpenGL.GL.Shaders.Uniform.UniformComponent Graphics.GL.Types.GLdouble -- | This module corresponds to section 7 (Programs and Shaders) of the -- OpenGL 4.4 specs. module Graphics.Rendering.OpenGL.GL.Shaders -- | This module corresponds to section 4.1 (Per-Fragment Operations) of -- the OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.PerFragment rasterizerDiscard :: StateVar Capability discardingRasterizer :: IO a -> IO a scissor :: StateVar (Maybe (Position, Size)) sampleAlphaToCoverage :: StateVar Capability sampleAlphaToOne :: StateVar Capability sampleCoverage :: StateVar (Maybe (GLclampf, Bool)) depthBounds :: StateVar (Maybe (GLclampd, GLclampd)) data ComparisonFunction Never :: ComparisonFunction Less :: ComparisonFunction Equal :: ComparisonFunction Lequal :: ComparisonFunction Greater :: ComparisonFunction Notequal :: ComparisonFunction Gequal :: ComparisonFunction Always :: ComparisonFunction alphaFunc :: StateVar (Maybe (ComparisonFunction, GLclampf)) stencilTest :: StateVar Capability stencilFunc :: StateVar (ComparisonFunction, GLint, GLuint) stencilFuncSeparate :: Face -> StateVar (ComparisonFunction, GLint, GLuint) data StencilOp OpZero :: StencilOp OpKeep :: StencilOp OpReplace :: StencilOp OpIncr :: StencilOp OpIncrWrap :: StencilOp OpDecr :: StencilOp OpDecrWrap :: StencilOp OpInvert :: StencilOp stencilOp :: StateVar (StencilOp, StencilOp, StencilOp) stencilOpSeparate :: Face -> StateVar (StencilOp, StencilOp, StencilOp) activeStencilFace :: StateVar (Maybe Face) depthFunc :: StateVar (Maybe ComparisonFunction) blend :: StateVar Capability -- | enable or disable blending based on the buffer bound to the -- i'th drawBuffer that is the buffer fmap (!! i) (get -- drawBuffers) blendBuffer :: DrawBufferIndex -> StateVar Capability data BlendEquation FuncAdd :: BlendEquation FuncSubtract :: BlendEquation FuncReverseSubtract :: BlendEquation Min :: BlendEquation Max :: BlendEquation LogicOp :: BlendEquation blendEquation :: StateVar BlendEquation blendEquationSeparate :: StateVar (BlendEquation, BlendEquation) data BlendingFactor Zero :: BlendingFactor One :: BlendingFactor SrcColor :: BlendingFactor OneMinusSrcColor :: BlendingFactor DstColor :: BlendingFactor OneMinusDstColor :: BlendingFactor SrcAlpha :: BlendingFactor OneMinusSrcAlpha :: BlendingFactor DstAlpha :: BlendingFactor OneMinusDstAlpha :: BlendingFactor ConstantColor :: BlendingFactor OneMinusConstantColor :: BlendingFactor ConstantAlpha :: BlendingFactor OneMinusConstantAlpha :: BlendingFactor SrcAlphaSaturate :: BlendingFactor blendFuncSeparate :: StateVar ((BlendingFactor, BlendingFactor), (BlendingFactor, BlendingFactor)) blendFunc :: StateVar (BlendingFactor, BlendingFactor) blendColor :: StateVar (Color4 GLclampf) dither :: StateVar Capability data LogicOp Clear :: LogicOp And :: LogicOp AndReverse :: LogicOp Copy :: LogicOp AndInverted :: LogicOp Noop :: LogicOp Xor :: LogicOp Or :: LogicOp Nor :: LogicOp Equiv :: LogicOp Invert :: LogicOp OrReverse :: LogicOp CopyInverted :: LogicOp OrInverted :: LogicOp Nand :: LogicOp Set :: LogicOp logicOp :: StateVar (Maybe LogicOp) instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PerFragment.LogicOp instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PerFragment.LogicOp instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PerFragment.LogicOp instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PerFragment.BlendEquation instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PerFragment.BlendEquation instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PerFragment.BlendEquation instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.PerFragment.StencilOp instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.PerFragment.StencilOp instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.PerFragment.StencilOp -- | This module corresponds to section 3.7 (Bitmaps) of the OpenGL 2.1 -- specs. module Graphics.Rendering.OpenGL.GL.Bitmaps bitmap :: Size -> Vertex2 GLfloat -> Vector2 GLfloat -> Ptr GLubyte -> IO () -- | This module corresponds to section 5.1 (Evaluators) of the OpenGL 2.1 -- specs. module Graphics.Rendering.OpenGL.GL.Evaluators type Order = GLint maxOrder :: GettableStateVar Order class Storable d => Domain d data MapDescriptor d MapDescriptor :: (d, d) -> Stride -> Order -> NumComponents -> MapDescriptor d class ControlPoint c class Map1 m withNewMap1 :: (Map1 m, ControlPoint c, Domain d) => MapDescriptor d -> (Ptr d -> IO ()) -> IO (m c d) withMap1 :: (Map1 m, ControlPoint c, Domain d) => m c d -> (MapDescriptor d -> Ptr d -> IO a) -> IO a newMap1 :: (Map1 m, ControlPoint c, Domain d) => (d, d) -> [c d] -> IO (m c d) getMap1Components :: (Map1 m, ControlPoint c, Domain d) => m c d -> IO ((d, d), [c d]) data GLmap1 (c :: * -> *) d map1 :: (Map1 m, ControlPoint c, Domain d) => StateVar (Maybe (m c d)) class Map2 m withNewMap2 :: (Map2 m, ControlPoint c, Domain d) => MapDescriptor d -> MapDescriptor d -> (Ptr d -> IO ()) -> IO (m c d) withMap2 :: (Map2 m, ControlPoint c, Domain d) => m c d -> (MapDescriptor d -> MapDescriptor d -> Ptr d -> IO a) -> IO a newMap2 :: (Map2 m, ControlPoint c, Domain d) => (d, d) -> (d, d) -> [[c d]] -> IO (m c d) getMap2Components :: (Map2 m, ControlPoint c, Domain d) => m c d -> IO ((d, d), (d, d), [[c d]]) data GLmap2 (c :: * -> *) d map2 :: (Map2 m, ControlPoint c, Domain d) => StateVar (Maybe (m c d)) evalCoord1 :: Domain d => d -> IO () evalCoord1v :: Domain d => Ptr d -> IO () evalCoord2 :: Domain d => (d, d) -> IO () evalCoord2v :: Domain d => Ptr d -> IO () mapGrid1 :: Domain d => StateVar (GLint, (d, d)) mapGrid2 :: Domain d => StateVar ((GLint, (d, d)), (GLint, (d, d))) evalMesh1 :: PolygonMode -> (GLint, GLint) -> IO () evalMesh2 :: PolygonMode -> (GLint, GLint) -> (GLint, GLint) -> IO () evalPoint1 :: GLint -> IO () evalPoint2 :: (GLint, GLint) -> IO () autoNormal :: StateVar Capability instance GHC.Show.Show d => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Evaluators.GLmap2 c d) instance GHC.Classes.Ord d => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Evaluators.GLmap2 c d) instance GHC.Classes.Eq d => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Evaluators.GLmap2 c d) instance GHC.Show.Show d => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Evaluators.GLmap1 c d) instance GHC.Classes.Ord d => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Evaluators.GLmap1 c d) instance GHC.Classes.Eq d => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Evaluators.GLmap1 c d) instance GHC.Show.Show d => GHC.Show.Show (Graphics.Rendering.OpenGL.GL.Evaluators.MapDescriptor d) instance GHC.Classes.Ord d => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GL.Evaluators.MapDescriptor d) instance GHC.Classes.Eq d => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GL.Evaluators.MapDescriptor d) instance Graphics.Rendering.OpenGL.GL.Evaluators.Map2 Graphics.Rendering.OpenGL.GL.Evaluators.GLmap2 instance Graphics.Rendering.OpenGL.GL.Evaluators.Map1 Graphics.Rendering.OpenGL.GL.Evaluators.GLmap1 -- | This module corresponds to section 2.14 (Colors and Coloring) of the -- OpenGL 2.1 specs. module Graphics.Rendering.OpenGL.GL.Colors lighting :: StateVar Capability newtype Light Light :: GLsizei -> Light light :: Light -> StateVar Capability maxLights :: GettableStateVar GLsizei data FrontFaceDirection CW :: FrontFaceDirection CCW :: FrontFaceDirection frontFace :: StateVar FrontFaceDirection data Face Front :: Face Back :: Face FrontAndBack :: Face materialAmbient :: Face -> StateVar (Color4 GLfloat) materialDiffuse :: Face -> StateVar (Color4 GLfloat) materialAmbientAndDiffuse :: Face -> StateVar (Color4 GLfloat) materialSpecular :: Face -> StateVar (Color4 GLfloat) materialEmission :: Face -> StateVar (Color4 GLfloat) materialShininess :: Face -> StateVar GLfloat maxShininess :: GettableStateVar GLfloat materialColorIndexes :: Face -> StateVar (Index1 GLint, Index1 GLint, Index1 GLint) ambient :: Light -> StateVar (Color4 GLfloat) diffuse :: Light -> StateVar (Color4 GLfloat) specular :: Light -> StateVar (Color4 GLfloat) position :: Light -> StateVar (Vertex4 GLfloat) spotDirection :: Light -> StateVar (Normal3 GLfloat) spotExponent :: Light -> StateVar GLfloat maxSpotExponent :: GettableStateVar GLfloat spotCutoff :: Light -> StateVar GLfloat attenuation :: Light -> StateVar (GLfloat, GLfloat, GLfloat) lightModelAmbient :: StateVar (Color4 GLfloat) lightModelLocalViewer :: StateVar Capability lightModelTwoSide :: StateVar Capability vertexProgramTwoSide :: StateVar Capability data LightModelColorControl SingleColor :: LightModelColorControl SeparateSpecularColor :: LightModelColorControl lightModelColorControl :: StateVar LightModelColorControl data ColorMaterialParameter Ambient :: ColorMaterialParameter Diffuse :: ColorMaterialParameter Specular :: ColorMaterialParameter Emission :: ColorMaterialParameter AmbientAndDiffuse :: ColorMaterialParameter colorMaterial :: StateVar (Maybe (Face, ColorMaterialParameter)) data ShadingModel Flat :: ShadingModel Smooth :: ShadingModel shadeModel :: StateVar ShadingModel data ClampTarget ClampVertexColor :: ClampTarget ClampFragmentColor :: ClampTarget ClampReadColor :: ClampTarget data ClampMode ClampOn :: ClampMode FixedOnly :: ClampMode ClampOff :: ClampMode clampColor :: ClampTarget -> StateVar ClampMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Colors.ClampMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Colors.ClampMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Colors.ClampMode instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Colors.ClampTarget instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Colors.ClampTarget instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Colors.ClampTarget instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Colors.ShadingModel instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Colors.ShadingModel instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Colors.ShadingModel instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Colors.ColorMaterialParameter instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Colors.ColorMaterialParameter instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Colors.ColorMaterialParameter instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Colors.LightModelColorControl instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Colors.LightModelColorControl instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Colors.LightModelColorControl instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Colors.FrontFaceDirection instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Colors.FrontFaceDirection instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Colors.FrontFaceDirection instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Colors.Light instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Colors.Light instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Colors.Light -- | This module corresponds to section 3.9 (Color Sum) of the OpenGL 2.1 -- specs. module Graphics.Rendering.OpenGL.GL.ColorSum colorSum :: StateVar Capability -- | This module corresponds to section 13.5 (Primitive Clipping) of the -- OpenGL 4.4 specs. module Graphics.Rendering.OpenGL.GL.Clipping newtype ClipPlaneName ClipPlaneName :: GLsizei -> ClipPlaneName clipPlane :: ClipPlaneName -> StateVar (Maybe (Plane GLdouble)) maxClipPlanes :: GettableStateVar GLsizei instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.Clipping.ClipPlaneName instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.Clipping.ClipPlaneName instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.Clipping.ClipPlaneName -- | This module corresponds to section 3.2 (Antialiasing) of the OpenGL -- 2.1 specs. module Graphics.Rendering.OpenGL.GL.Antialiasing sampleBuffers :: GettableStateVar GLsizei samples :: GettableStateVar GLsizei multisample :: StateVar Capability subpixelBits :: GettableStateVar GLsizei -- | This module corresponds to section 2.9 (Buffer Objects) of the OpenGL -- 2.1 specs. module Graphics.Rendering.OpenGL.GL.BufferObjects data BufferObject data BufferTarget ArrayBuffer :: BufferTarget AtomicCounterBuffer :: BufferTarget CopyReadBuffer :: BufferTarget CopyWriteBuffer :: BufferTarget DispatchIndirectBuffer :: BufferTarget DrawIndirectBuffer :: BufferTarget ElementArrayBuffer :: BufferTarget PixelPackBuffer :: BufferTarget PixelUnpackBuffer :: BufferTarget QueryBuffer :: BufferTarget ShaderStorageBuffer :: BufferTarget TextureBuffer :: BufferTarget TransformFeedbackBuffer :: BufferTarget UniformBuffer :: BufferTarget bindBuffer :: BufferTarget -> StateVar (Maybe BufferObject) arrayBufferBinding :: ClientArrayType -> GettableStateVar (Maybe BufferObject) vertexAttribArrayBufferBinding :: AttribLocation -> GettableStateVar (Maybe BufferObject) data BufferUsage StreamDraw :: BufferUsage StreamRead :: BufferUsage StreamCopy :: BufferUsage StaticDraw :: BufferUsage StaticRead :: BufferUsage StaticCopy :: BufferUsage DynamicDraw :: BufferUsage DynamicRead :: BufferUsage DynamicCopy :: BufferUsage bufferData :: BufferTarget -> StateVar (GLsizeiptr, Ptr a, BufferUsage) data TransferDirection ReadFromBuffer :: TransferDirection WriteToBuffer :: TransferDirection bufferSubData :: BufferTarget -> TransferDirection -> GLintptr -> GLsizeiptr -> Ptr a -> IO () data BufferAccess ReadOnly :: BufferAccess WriteOnly :: BufferAccess ReadWrite :: BufferAccess data MappingFailure MappingFailed :: MappingFailure UnmappingFailed :: MappingFailure -- | Convenience function for an exception-safe combination of -- mapBuffer and unmapBuffer. withMappedBuffer :: BufferTarget -> BufferAccess -> (Ptr a -> IO b) -> (MappingFailure -> IO b) -> IO b mapBuffer :: BufferTarget -> BufferAccess -> IO (Maybe (Ptr a)) unmapBuffer :: BufferTarget -> IO Bool bufferAccess :: BufferTarget -> GettableStateVar BufferAccess bufferMapped :: BufferTarget -> GettableStateVar Bool data MapBufferUsage Read :: MapBufferUsage Write :: MapBufferUsage InvalidateRange :: MapBufferUsage InvalidateBuffer :: MapBufferUsage FlushExplicit :: MapBufferUsage Unsychronized :: MapBufferUsage type Offset = GLintptr type Length = GLsizeiptr mapBufferRange :: BufferTarget -> Offset -> Length -> [MapBufferUsage] -> IO (Maybe (Ptr a)) flushMappedBufferRange :: BufferTarget -> Offset -> Length -> IO () type BufferIndex = GLuint type RangeStartIndex = GLintptr type RangeSize = GLsizeiptr type BufferRange = (BufferObject, RangeStartIndex, RangeSize) data IndexedBufferTarget IndexedAtomicCounterBuffer :: IndexedBufferTarget IndexedShaderStorageBuffer :: IndexedBufferTarget IndexedTransformFeedbackBuffer :: IndexedBufferTarget IndexedUniformBuffer :: IndexedBufferTarget bindBufferBase :: IndexedBufferTarget -> BufferIndex -> StateVar (Maybe BufferObject) bindBufferRange :: IndexedBufferTarget -> BufferIndex -> StateVar (Maybe BufferRange) indexedBufferStart :: IndexedBufferTarget -> BufferIndex -> GettableStateVar RangeStartIndex indexedBufferSize :: IndexedBufferTarget -> BufferIndex -> GettableStateVar RangeSize instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.BufferObjects.IndexedBufferTarget instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.BufferObjects.IndexedBufferTarget instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.BufferObjects.IndexedBufferTarget instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.BufferObjects.MapBufferUsage instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.BufferObjects.MapBufferUsage instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.BufferObjects.MapBufferUsage instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.BufferObjects.MappingFailure instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.BufferObjects.MappingFailure instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.BufferObjects.MappingFailure instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.BufferObjects.TransferDirection instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.BufferObjects.TransferDirection instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.BufferObjects.TransferDirection instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.BufferObjects.BufferAccess instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.BufferObjects.BufferAccess instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.BufferObjects.BufferAccess instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.BufferObjects.BufferUsage instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.BufferObjects.BufferUsage instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.BufferObjects.BufferUsage instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.BufferObjects.BufferTarget instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.BufferObjects.BufferTarget instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.BufferObjects.BufferTarget instance GHC.Show.Show Graphics.Rendering.OpenGL.GL.BufferObjects.BufferObject instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GL.BufferObjects.BufferObject instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GL.BufferObjects.BufferObject instance Data.ObjectName.ObjectName Graphics.Rendering.OpenGL.GL.BufferObjects.BufferObject instance Data.ObjectName.GeneratableObjectName Graphics.Rendering.OpenGL.GL.BufferObjects.BufferObject instance Graphics.Rendering.OpenGL.GL.DebugOutput.CanBeLabeled Graphics.Rendering.OpenGL.GL.BufferObjects.BufferObject -- | A Haskell binding for OpenGL, the industry's most widely used and -- supported 2D and 3D graphics API. module Graphics.Rendering.OpenGL.GL -- | This module corresponds to chapter 2 (Initialization) of the GLU -- specs. module Graphics.Rendering.OpenGL.GLU.Initialization gluVersion :: GettableStateVar String gluExtensions :: GettableStateVar [String] -- | This module corresponds to chapter 4 (Matrix Manipulation) of the GLU -- specs. module Graphics.Rendering.OpenGL.GLU.Matrix ortho2D :: GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO () perspective :: GLdouble -> GLdouble -> GLdouble -> GLdouble -> IO () lookAt :: Vertex3 GLdouble -> Vertex3 GLdouble -> Vector3 GLdouble -> IO () pickMatrix :: (GLdouble, GLdouble) -> (GLdouble, GLdouble) -> (Position, Size) -> IO () project :: Matrix m => Vertex3 GLdouble -> m GLdouble -> m GLdouble -> (Position, Size) -> IO (Vertex3 GLdouble) unProject :: Matrix m => Vertex3 GLdouble -> m GLdouble -> m GLdouble -> (Position, Size) -> IO (Vertex3 GLdouble) unProject4 :: Matrix m => Vertex4 GLdouble -> m GLdouble -> m GLdouble -> (Position, Size) -> GLclampd -> GLclampd -> IO (Vertex4 GLdouble) -- | This module corresponds to chapter 3 (Mipmapping) of the GLU specs. module Graphics.Rendering.OpenGL.GLU.Mipmapping scaleImage :: Size -> PixelData a -> Size -> PixelData b -> IO () build1DMipmaps :: TextureTarget1D -> PixelInternalFormat -> GLsizei -> PixelData a -> IO () build2DMipmaps :: TextureTarget2D -> PixelInternalFormat -> GLsizei -> GLsizei -> PixelData a -> IO () -- | This module corresponds to chapter 7 (NURBS) of the GLU specs. module Graphics.Rendering.OpenGL.GLU.NURBS type NURBSObj = Ptr GLUnurbs withNURBSObj :: a -> (NURBSObj -> IO a) -> IO a type NURBSBeginCallback = PrimitiveMode -> IO () withNURBSBeginCallback :: NURBSObj -> NURBSBeginCallback -> IO a -> IO a type NURBSVertexCallback = Vertex3 GLfloat -> IO () withNURBSVertexCallback :: NURBSObj -> NURBSVertexCallback -> IO a -> IO a type NURBSNormalCallback = Normal3 GLfloat -> IO () withNURBSNormalCallback :: NURBSObj -> NURBSNormalCallback -> IO a -> IO a type NURBSColorCallback = Color4 GLfloat -> IO () withNURBSColorCallback :: NURBSObj -> NURBSColorCallback -> IO a -> IO a type NURBSEndCallback = IO () withNURBSEndCallback :: NURBSObj -> NURBSEndCallback -> IO a -> IO a checkForNURBSError :: NURBSObj -> IO a -> IO a nurbsBeginEndCurve :: NURBSObj -> IO a -> IO a nurbsCurve :: ControlPoint c => NURBSObj -> GLint -> Ptr GLfloat -> GLint -> Ptr (c GLfloat) -> GLint -> IO () nurbsBeginEndSurface :: NURBSObj -> IO a -> IO a nurbsSurface :: ControlPoint c => NURBSObj -> GLint -> Ptr GLfloat -> GLint -> Ptr GLfloat -> GLint -> GLint -> Ptr (c GLfloat) -> GLint -> GLint -> IO () class TrimmingPoint p nurbsBeginEndTrim :: NURBSObj -> IO a -> IO a pwlCurve :: TrimmingPoint p => NURBSObj -> GLint -> Ptr (p GLfloat) -> GLint -> IO () trimmingCurve :: TrimmingPoint c => NURBSObj -> GLint -> Ptr GLfloat -> GLint -> Ptr (c GLfloat) -> GLint -> IO () data NURBSMode NURBSTessellator :: NURBSMode NURBSRenderer :: NURBSMode setNURBSMode :: NURBSObj -> NURBSMode -> IO () setNURBSCulling :: NURBSObj -> Capability -> IO () data SamplingMethod PathLength :: GLfloat -> SamplingMethod ParametricError :: GLfloat -> SamplingMethod DomainDistance :: GLfloat -> GLfloat -> SamplingMethod ObjectPathLength :: GLfloat -> SamplingMethod ObjectParametricError :: GLfloat -> SamplingMethod setSamplingMethod :: NURBSObj -> SamplingMethod -> IO () loadSamplingMatrices :: (Matrix m1, Matrix m2) => NURBSObj -> Maybe (m1 GLfloat, m2 GLfloat, (Position, Size)) -> IO () data DisplayMode' Fill' :: DisplayMode' OutlinePolygon :: DisplayMode' OutlinePatch :: DisplayMode' setDisplayMode' :: NURBSObj -> DisplayMode' -> IO () instance GHC.Show.Show Graphics.Rendering.OpenGL.GLU.NURBS.DisplayMode' instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GLU.NURBS.DisplayMode' instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GLU.NURBS.DisplayMode' instance GHC.Show.Show Graphics.Rendering.OpenGL.GLU.NURBS.SamplingMethod instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GLU.NURBS.SamplingMethod instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GLU.NURBS.SamplingMethod instance GHC.Show.Show Graphics.Rendering.OpenGL.GLU.NURBS.NURBSMode instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GLU.NURBS.NURBSMode instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GLU.NURBS.NURBSMode instance Graphics.Rendering.OpenGL.GLU.NURBS.TrimmingPoint Graphics.Rendering.OpenGL.GL.Tensor.Vertex2 instance Graphics.Rendering.OpenGL.GLU.NURBS.TrimmingPoint Graphics.Rendering.OpenGL.GL.Tensor.Vertex3 -- | This module corresponds to chapter 6 (Quadrics) of the GLU specs. module Graphics.Rendering.OpenGL.GLU.Quadrics type QuadricNormal = Maybe ShadingModel data QuadricTexture NoTextureCoordinates :: QuadricTexture GenerateTextureCoordinates :: QuadricTexture data QuadricOrientation Outside :: QuadricOrientation Inside :: QuadricOrientation data QuadricDrawStyle PointStyle :: QuadricDrawStyle LineStyle :: QuadricDrawStyle FillStyle :: QuadricDrawStyle SilhouetteStyle :: QuadricDrawStyle data QuadricStyle QuadricStyle :: QuadricNormal -> QuadricTexture -> QuadricOrientation -> QuadricDrawStyle -> QuadricStyle type Radius = GLdouble type Height = GLdouble type Angle = GLdouble type Slices = GLint type Stacks = GLint type Loops = GLint data QuadricPrimitive Sphere :: Radius -> Slices -> Stacks -> QuadricPrimitive Cylinder :: Radius -> Radius -> Height -> Slices -> Stacks -> QuadricPrimitive Disk :: Radius -> Radius -> Slices -> Loops -> QuadricPrimitive PartialDisk :: Radius -> Radius -> Slices -> Loops -> Angle -> Angle -> QuadricPrimitive renderQuadric :: QuadricStyle -> QuadricPrimitive -> IO () instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricPrimitive instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricPrimitive instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricStyle instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricStyle instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricTexture instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricTexture instance GHC.Show.Show Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricOrientation instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricOrientation instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricOrientation instance GHC.Show.Show Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricDrawStyle instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricDrawStyle instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GLU.Quadrics.QuadricDrawStyle -- | This module corresponds to chapter 5 (Polygon Tessellation) of the GLU -- specs. module Graphics.Rendering.OpenGL.GLU.Tessellation -- | The basic building block in tessellation is a 3D vertex with an -- associated property, e.g. color, texture coordinates, etc. data AnnotatedVertex v AnnotatedVertex :: Vertex3 GLdouble -> v -> AnnotatedVertex v -- | A complex contour, which can be self-intersecting and/or concave. newtype ComplexContour v ComplexContour :: [AnnotatedVertex v] -> ComplexContour v -- | A complex (possibly concave) polygon, represented by one or more -- complex and possibly intersecting contours. newtype ComplexPolygon v ComplexPolygon :: [ComplexContour v] -> ComplexPolygon v -- | Four vertex properties (cf. AnnotatedVertex) with associated -- weigths summing up to 1.0. data WeightedProperties v WeightedProperties :: (GLfloat, v) -> (GLfloat, v) -> (GLfloat, v) -> (GLfloat, v) -> WeightedProperties v -- | A function combining given vertex properties into a property for a -- newly generated vertex type Combiner v = Vertex3 GLdouble -> WeightedProperties v -> v data TessWinding TessWindingOdd :: TessWinding TessWindingNonzero :: TessWinding TessWindingPositive :: TessWinding TessWindingNegative :: TessWinding TessWindingAbsGeqTwo :: TessWinding -- | The relative tolerance under which two vertices can be combined (see -- Combiner). Multiplication with the largest coordinate magnitude -- of all polygon vertices yields the maximum distance between two -- mergeable vertices. -- -- Note that merging is optional and the tolerance is only a hint. type Tolerance = GLdouble -- | A general tessellator type. -- -- Before tessellation of a complex polygon, all its vertices are -- projected into a plane perpendicular to the given normal. If the given -- normal is Normal3 0 0 0, a fitting plane of all vertices is -- used. type Tessellator p v = TessWinding -> Tolerance -> Normal3 GLdouble -> Combiner v -> ComplexPolygon v -> IO (p v) -- | A simple, non-self-intersecting contour newtype SimpleContour v SimpleContour :: [AnnotatedVertex v] -> SimpleContour v -- | The contours of a complex polygon, represented by one or more -- non-intersecting simple contours newtype PolygonContours v PolygonContours :: [SimpleContour v] -> PolygonContours v extractContours :: Storable v => Tessellator PolygonContours v -- | A triangle vertex with additional information about the edge it begins type TriangleVertex v = AnnotatedVertex (v, EdgeFlag) -- | A triangle, represented by three triangle vertices data Triangle v Triangle :: TriangleVertex v -> TriangleVertex v -> TriangleVertex v -> Triangle v -- | A triangulation of a complex polygon newtype Triangulation v Triangulation :: [Triangle v] -> Triangulation v triangulate :: Storable v => Tessellator Triangulation v data Primitive v Primitive :: PrimitiveMode -> [AnnotatedVertex v] -> Primitive v newtype SimplePolygon v SimplePolygon :: [Primitive v] -> SimplePolygon v tessellate :: Storable v => Tessellator SimplePolygon v instance GHC.Classes.Ord v => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GLU.Tessellation.SimplePolygon v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GLU.Tessellation.SimplePolygon v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GLU.Tessellation.Primitive v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GLU.Tessellation.Primitive v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GLU.Tessellation.Triangulation v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GLU.Tessellation.Triangulation v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GLU.Tessellation.Triangle v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GLU.Tessellation.Triangle v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GLU.Tessellation.PolygonContours v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GLU.Tessellation.PolygonContours v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GLU.Tessellation.SimpleContour v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GLU.Tessellation.SimpleContour v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GLU.Tessellation.WeightedProperties v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GLU.Tessellation.WeightedProperties v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GLU.Tessellation.ComplexPolygon v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GLU.Tessellation.ComplexPolygon v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GLU.Tessellation.ComplexContour v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GLU.Tessellation.ComplexContour v) instance GHC.Classes.Ord v => GHC.Classes.Ord (Graphics.Rendering.OpenGL.GLU.Tessellation.AnnotatedVertex v) instance GHC.Classes.Eq v => GHC.Classes.Eq (Graphics.Rendering.OpenGL.GLU.Tessellation.AnnotatedVertex v) instance GHC.Show.Show Graphics.Rendering.OpenGL.GLU.Tessellation.TessWinding instance GHC.Classes.Ord Graphics.Rendering.OpenGL.GLU.Tessellation.TessWinding instance GHC.Classes.Eq Graphics.Rendering.OpenGL.GLU.Tessellation.TessWinding instance Foreign.Storable.Storable v => Foreign.Storable.Storable (Graphics.Rendering.OpenGL.GLU.Tessellation.AnnotatedVertex v) -- | A Haskell binding for GLU, OpenGL's accompanying utility library. module Graphics.Rendering.OpenGL.GLU -- | A convenience module, combining the Haskell bindings for GL and GLU. module Graphics.Rendering.OpenGL