úÎ5<1e/      !"#$%&'()*+,-. Safe-Infered Short alias. AA vertex array object captures OpenGL state needed for drawing a E vertex array. It encapsulates the binding of an array buffer and an 4 element buffer, as well as vertex attribute setup.  Allocate a , and initialize it with the A provided action. This action should bind the buffer data, index 3 data (if necessary), and setup vertex attributes.  Delete a #. Do not use the VAO after running  this action! Bind a ", or ensure that no VAO is bound.  Safe-Infered%An exception type for OpenGL errors. +Check OpenGL error flags and print them on /. +Check OpenGL error flags and print them on / with the given B message as a prefix. If there are no errors, nothing is printed. 0Throw an exception if there is an OpenGL error. =Throw an exception if there is an OpenGL error. The exception's - error message is prefixed with the supplied 0.  12    12 Safe-Infered Wrapper whose  ( instance treats the pointer underlying  a 3 as an array of 4s. &Class for containers of texture data. 1Open mapping from Haskell types to OpenGL types. $A basic texture information record. Pixel format of image data. Helper for constructing a  using Haskell 5 s for image  dimensions. )Create a new 2D texture with data from a . Replace a 2D texture's pixel data with data from a .  6789:;<=>?@     6789:;<=>?@ Safe-Infered#Load a shader program from a file. (Link vertex and fragment shaders into a A. !AWork with a named uniform shader parameter. Note that this looks A up the variable name on each access, so uniform parameters that = will be accessed frequently should instead be resolved to a  B. "Set a B to a scalar value. #Set a B! from a list representation of a  low-dimensional vector of C s. Only 2, 3, and 4 dimensional  vectors are supported. $?Set a named uniform shader parameter from a nested list matrix : representation. Only 3x3 and 4x4 matrices are supported. %8Set a uniform shader location from a nested list matrix : representation. Only 3x3 and 4x4 matrices are supported. &)Set a uniform shader location with a 4x4 D.  !"#$%& !"#$%& !"#%$& !"#$%& Safe-Infered'Allocate and fill a E from a list of Fs. (Allocate and fill a E from a list of Fs C whose length is explicitly given. This is useful when the list is ? of known length, as it avoids a traversal to find the length. )Allocate and fill a E with the given number of bytes  from the supplied pointer. *Fill a buffer with a 3. +Fill a buffer with data from a G. The application  fromForeignPtr target len fptr fills a target H  with len elements starting from fptr. ,Fill a buffer with data from a I. - Produce a J3 value to be used as an offset of the given number  of bytes. .A zero-offset J. '()*+,-.'()*+,-.'()*+,-.'()*+,-. Safe-Infered/  !"#$%&'()*+,-.K      !"#$%&'()*+,-./01234536789:;<3=>?@ABCDEFGHIJKLMNOMNPQRSMTUMVW3XY3Z[MV\]^_3`ab GLUtil-0.2"Graphics.GLUtil.VertexArrayObjectsGraphics.GLUtil.GLErrorGraphics.GLUtil.TexturesGraphics.GLUtil.ShadersGraphics.GLUtil.BufferObjectsGraphics.GLUtilVAOVertexArrayObjectmakeVAO deleteVAObindVertexArrayGLError printError printErrorMsg throwError throwErrorMsg ShortString IsPixelDataElem withPixels HasGLTypeglTypeTexInfotexWidth texHeighttexColortexDataTexColorTexBGRTexRGBTexMonotexInfo loadTexture reloadTexture loadShaderlinkShaderProgram namedUniform uniformScalar uniformVecnamedUniformMat uniformMat uniformGLMat4 makeBuffer makeBufferLenfromPtrfromByteStringfromForeignPtr fromVector offsetPtroffset0baseGHC.IO.Handle.FDstderrGHC.BaseString $fShowGLError$fExceptionGLErrorbytestring-0.9.2.1Data.ByteString.Internal ByteStringGHC.WordWord16ghc-prim GHC.TypesInt$fIsPixelDataShortString$fIsPixelDataByteString$fIsPixelDataVector$fIsPixelDataStorableArray$fIsPixelDataForeignPtr$fIsPixelDataPtr$fIsPixelData[]$fHasGLTypeFloat$fHasGLTypeWord16$fHasGLTypeWord8$fHasGLTypeIntOpenGL-2.5.0.0$Graphics.Rendering.OpenGL.GL.ShadersProgramUniformLocationOpenGLRaw-1.2.0.02Graphics.Rendering.OpenGL.Raw.Core31.TypesInternalGLfloat'Graphics.Rendering.OpenGL.GL.CoordTransGLmatrix*Graphics.Rendering.OpenGL.GL.BufferObjects BufferObjectForeign.StorableStorableGHC.ForeignPtr ForeignPtr BufferTarget vector-0.9.1Data.Vector.StorableVectorGHC.PtrPtr