y+O      !"#$%&'()*+,-./0123456 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N NonewithViewport pos sz m runs the action m after setting the  viewport with the given O and P. The viewport is E reset to its original state after the action is run, and the result  of the action is returned. None=A type class for things we can write to uniform locations in  shader programs. QRSTUVWXYZ[\]^_`abcdefghijkQRSTUVWXYZ[\]^_`abcdefghijkNone1Open mapping from Haskell types to OpenGL types. *A mapping from Haskell types to values of l. This @ defines how Haskell values may be mapped to values that may be  bound to GLSL variables.  Maps each l to its corresponding  m9. Typically this indicates the element type of composite  variable types (e.g. "variableDataType FloatVec2 = Float). Note C that this is a partial mapping as we are primarily supporting the C use of these types as inputs to GLSL programs where types such as  Bool are not supported. %nopqrstuvwxyz{|}~#nopqrstuvwxyz{|}~NoneShort alias for .  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. Run an action with the given  bound.     None %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. 'Prefix each of a list of messages with GL: . 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 .      None Wrapper whose ( instance treats the pointer underlying  a  as an array of s. &Class for containers of texture data. $A basic texture information record. Pixel format of image data. Helper for constructing a  using Haskell  s for image  dimensions. !)Create a new 2D texture with data from a . "Replace a 2D texture's pixel data with data from a . #5Set texture coordinate wrapping options for both the  and   dimensions of a 2D texture. $0Set texture coordinate wrapping options for the , , and   dimensions of a 3D texture. %?Bind each of the given textures to successive texture units at  the given . &@Bind each of the given 2D textures to successive texture units. ';Generate a complete set of mipmaps for the currently bound  texture object.  !"#$%&' !"#$%&' !"#$%&' !"#$%&'None(Load a . value from an image file, and supply it to a 9 user-provided function. Supported image formats include png,  jpeg, bmp, and gif. See ) for most uses. )Load a ' from an image file. Supported formats  include png, jpeg, bmp, and gif. ()()()()None *#Load a shader program from a file. +@Specialized loading for geometry shaders that are not yet fully * supported by the Haskell OpenGL package. ,(Link vertex and fragment shaders into a . -(Link vertex and fragment shaders into a . The supplied  9 action is run after attaching shader objects to the new 7 program, but before linking. This supports the use of  ! to map fragment shader outputs. .3Link vertex, geometry, and fragment shaders into a . /3Link vertex, geometry, and fragment shaders into a . The  supplied 5 action is run after attaching shader objects to the ; new program, but before linking. This supports the use of  ! to map fragment shader outputs. 0AWork 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  . 1Set a  to a scalar value. 2Set a ! from a list representation of a  low-dimensional vector of  s. Only 2, 3, and 4 dimensional  vectors are supported. 3?Set a named uniform shader parameter from a nested list matrix : representation. Only 3x3 and 4x4 matrices are supported. 48Set a uniform shader location from a nested list matrix : representation. Only 3x3 and 4x4 matrices are supported. 5)Set a uniform shader location with a 4x4 . *+,-./012345 *+,-./012345 *+,-./012435*+,-./012345 None6CRepresentation of a GLSL shader program that has been compiled and  linked. ;Load a 6* from a vertex and fragment shader source A files. the third argument is a tuple of the attribute names and C uniform names that will be set in this program. If all attributes * and uniforms are desired, consider using <. <Load a 6( from a vertex shader source file and a D fragment shader source file. The active attributes and uniforms in ( the linked program are recorded in the 6. =Load a 6% from a vertex shader source file, a E geometry shader source file, and a fragment shader source file. The C active attributes and uniforms in the linked program are recorded  in the 6. >Load a 6( from a vertex shader source file and a D fragment shader source file. The active attributes and uniforms in ( the linked program are recorded in the 6. The  supplied 5 function is applied to the new program after shader ? objects are attached to the program, but before linking. This  supports the use of  to map fragment shader  outputs. ?Load a 6% from a vertex shader source file, a E geometry shader source file, and a fragment shader source file. The C active attributes and uniforms in the linked program are recorded  in the 6. The supplied  function is applied to C the new program after shader objects are attached to the program, . but before linking. This supports the use of  ! to map fragment shader outputs.  Helper for  load*Program* variants. =Get all attributes and uniforms used by a program. Note that E unused parameters may be elided by the compiler, and so will not be  considered as active. BGet the attribute and uniform locations associated with a list of  the names of each. @BSet a named uniform parameter associated with a particular shader  program. AGet the ! associated with a named uniform  parameter. BSet a named vertex attribute's  and  . CGet the  associated with a named vertex  attribute. D!Enable a named vertex attribute. 6789:;<=>?@ABCD6789:;<=>?@ABCD6789:<>=?;CDB@A6789:;<=>?@ABCD None EAllocate and fill a  from a list of s. FAllocate and fill a  from a list of s 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. GreplaceBuffer target elements# replaces the buffer data attached ) to the buffer object currently bound to target with the supplied % list. Any previous data is deleted. HAllocate and fill a  with the given number of bytes  from the supplied pointer. IFill a buffer with a . JFill a buffer with data from a . The application  fromForeignPtr target len fptr fills a target   with len elements starting from fptr. KFill a buffer with data from a . LreplaceVector target v* replaces the buffer data attached to the " buffer object currently bound to target with the supplied   . Any previous data is deleted. M Produce a 3 value to be used as an offset of the given number  of bytes. NA zero-offset . EFGHIJKLMN EFGHIJKLMN EFGHIJKLMN EFGHIJKLMN NoneN  !"#$%&')*+,-./0123456789:;<=>?@ABCDEFGHIJKLMN)    !"#$%&'()*+,-./0123456789:;<=>? @ @ A B C D E F G H I J K L M N O P Q R S T U V WXYZXY[\]^_`abcdefghijklmnopqrstuvXwxXyz{|}~XXYXYXYXXXXXXY XXXXXGLUtil-0.6.1.2Graphics.GLUtil.ViewportGraphics.GLUtil.LinearGraphics.GLUtil.TypeMapping"Graphics.GLUtil.VertexArrayObjectsGraphics.GLUtil.GLErrorGraphics.GLUtil.TexturesGraphics.GLUtil.JuicyTexturesGraphics.GLUtil.ShadersGraphics.GLUtil.ShaderProgramGraphics.GLUtil.BufferObjectsGraphics.GLUtil withViewport AsUniform asUniform HasGLTypeglTypeHasVariableType variableTypevariableDataTypeVAOmakeVAOwithVAOGLError printError printErrorMsg throwError throwErrorMsg ShortString IsPixelDataElem withPixelsTexInfotexWidth texHeighttexColortexDataTexColorTexRGBATexBGRTexRGBTexMonotexInfo loadTexture reloadTexture texture2DWrap texture3DWrap withTextureswithTextures2DgenerateMipmap' readTexInfo readTexture loadShader loadGeoShaderlinkShaderProgramlinkShaderProgramWithlinkGeoProgramlinkGeoProgramWith namedUniform uniformScalar uniformVecnamedUniformMat uniformMat uniformGLMat4 ShaderProgramattribsuniformsprogramloadShaderExplicitloadShaderProgramloadGeoProgramloadShaderProgramWithloadGeoProgramWith setUniform getUniform setAttrib getAttrib enableAttrib makeBuffer makeBufferLen replaceBufferfromPtrfromByteStringfromForeignPtr fromVector replaceVector offsetPtroffset0OpenGL-2.8.0.0'Graphics.Rendering.OpenGL.GL.CoordTransPositionSizegetULcastVecComponentcastMatComponent $fAsUniform[]$fAsUniform[]0$fAsUniform[]1$fAsUniform[]2$fAsUniform[]3$fAsUniform[]4$fAsUniform[]5$fAsUniform[]6$fAsUniform[]7 $fAsUniformV4 $fAsUniformV3 $fAsUniformV2$fAsUniformV40$fAsUniformV41$fAsUniformV42$fAsUniformV30$fAsUniformV31$fAsUniformV32$fAsUniformV20$fAsUniformV21$fAsUniformV22$fAsUniformCFloat$fAsUniformCUInt$fAsUniformCInt.Graphics.Rendering.OpenGL.GL.Shaders.Variables VariableType%Graphics.Rendering.OpenGL.GL.DataTypeDataType$fHasGLTypeCFloat$fHasGLTypeFloat$fHasGLTypeCUInt$fHasGLTypeWord32$fHasGLTypeWord16$fHasGLTypeWord8$fHasGLTypeCInt$fHasGLTypeInt$fHasVariableTypeV4$fHasVariableTypeV3$fHasVariableTypeV2$fHasVariableTypeV40$fHasVariableTypeV30$fHasVariableTypeV20$fHasVariableTypeV41$fHasVariableTypeV31$fHasVariableTypeV21$fHasVariableTypeV42$fHasVariableTypeV32$fHasVariableTypeV22$fHasVariableTypeV43$fHasVariableTypeV33$fHasVariableTypeV23$fHasVariableTypeV44$fHasVariableTypeV34$fHasVariableTypeV24$fHasVariableTypeCUInt$fHasVariableTypeWord32$fHasVariableTypeInt32$fHasVariableTypeCInt$fHasVariableTypeCFloat$fHasVariableTypeFloat/Graphics.Rendering.OpenGL.GL.VertexArrayObjectsVertexArrayObjectbaseGHC.IO.Handle.FDstderr printGLErrorsGHC.BaseString $fShowGLError$fExceptionGLErrorbytestring-0.10.0.2Data.ByteString.Internal ByteStringGHC.WordWord16ghc-prim GHC.TypesIntSTR4Graphics.Rendering.OpenGL.GL.Texturing.TextureTarget TextureTarget$fIsPixelDataShortString$fIsPixelDataByteString$fIsPixelDataVector$fIsPixelDataStorableArray$fIsPixelDataForeignPtr$fIsPixelDataPtr$fIsPixelData[].Graphics.Rendering.OpenGL.GL.Texturing.Objects TextureObject,Graphics.Rendering.OpenGL.GL.Shaders.ProgramProgramIObindFragDataLocation,Graphics.Rendering.OpenGL.GL.Shaders.UniformUniformLocationOpenGLRaw-1.3.0.0*Graphics.Rendering.OpenGL.Raw.Core31.TypesGLfloatGLmatrixGeometryShadergeometryShaderID withHMatrixunUL$fObjectNameGeometryShaderloadProgramWithAux getActives getExplicits'Graphics.Rendering.OpenGL.GL.VertexSpecIntegerHandling)Graphics.Rendering.OpenGL.GL.VertexArraysVertexArrayDescriptor4Graphics.Rendering.OpenGL.GL.QueryUtils.VertexAttribAttribLocation*Graphics.Rendering.OpenGL.GL.BufferObjects BufferObjectForeign.StorableStorableGHC.ForeignPtr ForeignPtr BufferTargetvector-0.10.0.1Data.Vector.StorableVectorGHC.PtrPtr