mvl      !"#$%&'()*+,-./0123456789:;<=>?@A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k  Safe-Inferred A 7 may be translated and rotated to provide a coordinate 0 frame into which 3D points may be transformed. ;Pan a camera view (turn side-to-side) by an angle given in $ radians. Panning is about the world's up-axis as captured by the 4 initial camera state (e.g. the positive Y axis for ). ;Pan a camera view (turn side-to-side) by an angle given in $ degrees. Panning is about the world's up-axis as captured by the 4 initial camera state (e.g. the positive Y axis for ). 6Tilt a camera view (up-and-down) by an angle given in % radians. Tilting is about the camera's horizontal axis (e.g. the  positive X axis for ). ?Tilt a camera view (up-and-down) by an angle given in degrees.  Tilting is about the camera''s horizontal axis (e.g. the positive X  axis for ). ARoll a camera view about its view direction by an angle given in % radians. Rolling is about the camera's forward axis (e.g. the  negative Z axis for ). ARoll a camera view about its view direction by an angle given in % degrees. Rolling is about the camera's forward axis (e.g. the  negative Z axis for ). Translate a camera' s position by the given vector. Convert degrees to radians. <A camera at the origin with its up-axis coincident with the B positive Z axis. This is the convention used by the ROS robotics  platform. <A camera at the origin with its up-axis coincident with the 1 positive Y axis. This is the convention used by first-person shooter (fps) video games. $projectionMatrix fov aspect near far produces a perspective D projection matrix with the specified vertical field of view (FOV), C given in radians, aspect ratio, and near and far clipping planes. 'Produce a transformation matrix from a . This matrix - transforms homogenous points into the camera's coordinate frame.       Safe-Inferred&Initialize a camera for 2D rendering. CMove the camera side-to-side or up-and-down as in a tracking shot. ?Produce a matrix that transforms homogenous 2D points into the  camera's coordinate frame. ARoll a camera view about its view direction by an angle given in  degrees. ARoll a camera view about its view direction by an angle given in  radians.   NonewithViewport pos sz m runs the action m after setting the  viewport with the given l and m. 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. #nopqrstuvwxyz{|}~"nopqrstuvwxyz{|}~None1Open mapping from Haskell types to OpenGL types. *A mapping from Haskell types to values of . This @ defines how Haskell values may be mapped to values that may be  bound to GLSL variables.  Maps each  to its corresponding  9. 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. +)None Short 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. 3Pixel format of image data. 8Helper for constructing a - using Haskell  s for image  dimensions. 9)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  starting with texture unit 0. >?Bind each of the given 2D textures to successive texture units  starting with texture unit 0. ?=Bind each of the given textures to the texture unit they are D paired with. The given action is run with these bindings, then the ' texture bindings are reset. If you don't care which texture units  are used, consider using = or >. @;Generate a complete set of mipmaps for the currently bound  texture object. ()*+,-./0123456789:;<=>?@()*+,-./0123456789:;<=>?@37654-./0128*+,()9:;<=>?@()*+,-./0123765489:;<=>?@ NoneALoad 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 B for most uses. BLoad a ' from an image file. Supported formats  include png, jpeg, bmp, and gif. ABABABAB None C#Load a shader program from a file. D@Specialized loading for geometry shaders that are not yet fully * supported by the Haskell OpenGL package. E(Link vertex and fragment shaders into a . F(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. G3Link vertex, geometry, and fragment shaders into a . H3Link 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. IAWork 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  . JSet a  to a scalar value. KSet a ! from a list representation of a  low-dimensional vector of  s. Only 2, 3, and 4 dimensional  vectors are supported. L?Set a named uniform shader parameter from a nested list matrix : representation. Only 3x3 and 4x4 matrices are supported. M8Set a uniform shader location from a nested list matrix : representation. Only 3x3 and 4x4 matrices are supported. N)Set a uniform shader location with a 4x4 . CDEFGHIJKLMN CDEFGHIJKLMN CDEFGHIJKMLNCDEFGHIJKLMN NoneOCRepresentation of a GLSL shader program that has been compiled and  linked. TLoad a O* 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 U. ULoad a O( 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 O. VLoad a O% 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 O. WLoad a O( 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 O. 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. XLoad a O% 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 O. 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. YBSet a named uniform parameter associated with a particular shader  program. ZGet the ! associated with a named uniform  parameter. [Set a named vertex attribute's  and  . \Get the  associated with a named vertex  attribute. ]!Enable a named vertex attribute. OPQRSTUVWXYZ[\]OPQRSTUVWXYZ[\]OPQRSUWVXT\][YZOPQRSTUVWXYZ[\] None^drawIndexedTris n draws n  using vertex data from  the currently bound # and indices from the beginning of  the currently bound . Note that there must be  at least n * 3 indices in the ! ^^^^ None _;A class for things we know how to serialize into an OpenGL  buffer. aAllocate and fill a  from a list of s. bAllocate 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. creplaceBuffer target elements# replaces the buffer data attached ) to the buffer object currently bound to target with the supplied % list. Any previous data is deleted. dAllocate and fill a  with the given number of bytes  from the supplied pointer. eFill a buffer with a . fFill a buffer with data from a . The application  fromForeignPtr target len fptr fills a target   with len elements starting from fptr. gFill a buffer with data from a . hreplaceVector target v* replaces the buffer data attached to the " buffer object currently bound to target with the supplied   . Any previous data is deleted. i Produce a 3 value to be used as an offset of the given number  of bytes. jA zero-offset . k Create an  from a source of s. _`abcdefghijk _`abcdefghijk abcdefghij_`k_`abcdefghijkNoneS !"#$%&'()*+,-./0123456789:;<=>?@BCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijkB !" #$%&'()*+,-./012334567789:;<=>?@ABCDEFGHI J K L M N O P Q R S T U V W X X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r stuvtuwxyz{|}~ttt.tutututtttttu   tttttttt      GLUtil-0.6.4Graphics.GLUtil.Camera3DGraphics.GLUtil.Camera2DGraphics.GLUtil.ViewportGraphics.GLUtil.LinearGraphics.GLUtil.TypeMapping"Graphics.GLUtil.VertexArrayObjectsGraphics.GLUtil.GLErrorGraphics.GLUtil.TexturesGraphics.GLUtil.JuicyTexturesGraphics.GLUtil.ShadersGraphics.GLUtil.ShaderProgramGraphics.GLUtil.DrawingGraphics.GLUtil.BufferObjectsGraphics.GLUtilCameraforwardupward rightward orientationlocationpanRadpantiltRadtiltrollRadrolldollydeg2rad rosCamera fpsCameraprojectionMatrix camMatrixcamera2Dtrack withViewport AsUniform asUniform HasGLTypeglTypeHasVariableType variableTypevariableDataTypeVAOmakeVAOwithVAOGLError printError printErrorMsg throwError throwErrorMsg ShortString IsPixelDataElem withPixelsTexInfotexWidth texHeighttexColortexDataTexColorTexRGBATexBGRTexRGBTexMonotexInfo loadTexture reloadTexture texture2DWrap texture3DWrap withTextureswithTextures2DwithTexturesAtgenerateMipmap' readTexInfo readTexture loadShader loadGeoShaderlinkShaderProgramlinkShaderProgramWithlinkGeoProgramlinkGeoProgramWith namedUniform uniformScalar uniformVecnamedUniformMat uniformMat uniformGLMat4 ShaderProgramattribsuniformsprogramloadShaderExplicitloadShaderProgramloadGeoProgramloadShaderProgramWithloadGeoProgramWith setUniform getUniform setAttrib getAttrib enableAttribdrawIndexedTris BufferSource fromSource makeBuffer makeBufferLen replaceBufferfromPtrfromByteStringfromForeignPtr fromVector replaceVector offsetPtroffset0 bufferIndicesOpenGL-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$fAsUniform[]8$fAsUniform[]9$fAsUniform[]10 $fAsUniformV4 $fAsUniformV3 $fAsUniformV2$fAsUniformV40$fAsUniformV41$fAsUniformV42$fAsUniformV30$fAsUniformV31$fAsUniformV32$fAsUniformV20$fAsUniformV21$fAsUniformV22 $fAsUniformV1$fAsUniformV10$fAsUniformV11$fAsUniformCFloat$fAsUniformCUInt$fAsUniformCInt.Graphics.Rendering.OpenGL.GL.Shaders.Variables VariableType%Graphics.Rendering.OpenGL.GL.DataTypeDataType$fHasGLTypeCFloat$fHasGLTypeFloat$fHasGLTypeCUInt$fHasGLTypeWord32$fHasGLTypeWord16$fHasGLTypeWord8$fHasGLTypeCInt$fHasGLTypeInt$fHasVariableType[]$fHasVariableTypeV4$fHasVariableTypeV3$fHasVariableTypeV2$fHasVariableTypeV40$fHasVariableTypeV30$fHasVariableTypeV20$fHasVariableTypeV1$fHasVariableTypeV41$fHasVariableTypeV31$fHasVariableTypeV21$fHasVariableTypeV10$fHasVariableTypeV42$fHasVariableTypeV32$fHasVariableTypeV22$fHasVariableTypeV11$fHasVariableTypeV43$fHasVariableTypeV33$fHasVariableTypeV23$fHasVariableTypeV12$fHasVariableTypeV44$fHasVariableTypeV34$fHasVariableTypeV24$fHasVariableTypeV13$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.PrimitiveMode Triangles*Graphics.Rendering.OpenGL.GL.BufferObjects ArrayBufferElementArrayBuffer BufferObjectForeign.StorableStorableGHC.ForeignPtr ForeignPtr BufferTargetvector-0.10.0.1Data.Vector.StorableVectorGHC.PtrPtrWord32$fBufferSourceVector$fBufferSource[]