4      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ Edge mode used in sampler state "Filter mode used in sampler state 0A structure describing how a texture is sampled ?9 aThis context is used to select which types can be used in a frame buffers color buffer, and also $ to restrict the type of a texture. A CPU format for 1 component =A CPU format for 2 components (i.e. a LuminanceAlpha color). 2A CPU format for 3 components (i.e. a RGB color). !3A CPU format for 4 components (i.e. a RGBA color). +)A GPU format for a stencil buffer value.  This is the associated type in  : CPUFormat StencilFormat  -'A GPU format for a depth buffer value.  This is the associated type in  : CPUFormat DepthFormat  1PA GPU format with color components for red, green and blue, and an alpha value. # These are the associated types in   and  : CPUFormat RGBAFormat ! Color RGBAFormat a RGBA (  a) a :<A GPU format with color components for red, green and blue. # These are the associated types in   and  : CPUFormat RGBFormat  Color RGBFormat a RGB (  a) C?A GPU format with a single color component and an alpha value. # These are the associated types in   and  : CPUFormat LuminanceAlphaFormat  Color LuminanceAlphaFormat a LuminanceAlpha a a K,A GPU format with a single color component. # These are the associated types in   and  : CPUFormat LuminanceFormat  Color LuminanceFormat a  Luminance a Q'A GPU format with only an alpha value. # These are the associated types in   and  : CPUFormat AlphaFormat  Color AlphaFormat a Alpha a X   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU    S      ! *)('&%$#""#$%&'()*+,,-0/../019876543223456789:BA@?>=<;;<=>?@ABCJIHGFEDDEFGHIJKPONMLLMNOPQUTSRRSTU R  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU   MQUTSRKPONMLCJIHGFED:BA@?>=<;198765432-0/.+,  !*)('&%$#"  V^Provides a common way to convert numeric types to integer and floating point representations. Y$Convert to a floating point number. Z>Convert to an integral number, using truncation if necessary. [AThis class provides the GPU functions either not found in Prelude'.s numerical classes, or that has wrong types. * Instances are also provided for normal  s and  s.  Minimal complete definition: _ and `. hLAn opaque type constructor for atomic values in a fragment on the GPU, e.g. h  . iJAn opaque type constructor for atomic values in a vertex on the GPU, e.g. i  . jhDenotes a type on the GPU, that can be moved there from the CPU (through the internal use of uniforms). J Use the existing instances of this class to create new ones. Note that l' should not be strict on its argument. < Its definition should also always use the same series of l= calls to convert values of the same type. This unfortunatly n rules out ordinary lists (but instances for fixed length lists from the Vec package are however provided). kThe type on the CPU. l*Converts a value from the CPU to the GPU. mFThe derivative in x using local differencing of the rasterized value. nFThe derivative in y using local differencing of the rasterized value. o`The sum of the absolute derivative in x and y using local differencing of the rasterized value. 8 !"#VWXYZ[\]^_`abcdefghijkl$%&'()*+mnoVWXYZWXYZ[ \]^_`abcdefg\]^_`abcdefghijklkl$%&'mnoS !"#,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSVWXYZ[\]^_`abcdefgjkljkl[\]^_`abcdefgVWXYZ{FA stream of fragments on the GPU, parameterized on the fragments type  (built up of atoms of type h). |jA stream of primitives built by vertices on the GPU. The first parameter is the primitive type (currently u, r or p) and the second the  the type of each primitives' vertices'! type (built up of atoms of type i). }FFilters out fragments in a stream where the provided function returns . pqrstuvwxyTUVWXYZ[\]z{^|_}`abcpqqrtsstuxwvvwxyTTUVWYXXYZ]\[[\]z{^^|__}`abc~<The context of types that can be converted into vertices in |s. ] Create your own instances in terms of the existing ones, e.g. convert your vertex data to  s,  turn them into i  s with ; and then convert them to your vertex data representation. 3Turns an ordinary value into a vertex value in the 3 monad. This should not be strict on its argument. < Its definition should also always use the same series of = calls to convert values of the same type. This unfortunatly o rules out ordinary lists (but instances for fixed length lists from the Vec package are however provided). 9A monad in which CPU data gets converted to vertex data.  Use  in the existing instances of ~ to operate in this monad. Converts a list of values to a |, using a specified y type. E This function is lazy in the aspect that if parts of the values aren't used on the GPU, they won't / get evaluated and transferred there either. Converts a list of values to a |, using a specified y type and an index list. i This will use index buffer objects on the GPU, and is recommended if several primitives share vertices. E This function is lazy in the aspect that if parts of the values aren't used on the GPU, they won't / get evaluated and transferred there either. ~~ipqrstuvwxy|~|i~uxwvrtspqynA polymorphic frame buffer. It is parameterized on the type of color buffer, depth buffer and stencil buffer.  Any instances of  " can be used for color buffer, or '()' to denote no color buffer.  For depth and stencil buffers, - and ,+& marks the existance of buffer, while '()'  marks the inexistance. ;Sets a test that should be performed on the stencil value. !The function used to compare the stencilReference% and the stencil buffers value with. ,The value to compare with the stencil buffer' s value. aA bit mask with ones in each position that should be compared and written to the stencil buffer. Sets the tests that should be performed on the stencil value, first for front facing triangles and other primitives, then for back facing triangles. 4Sets the operations that should be performed on the s stencil value 5Used for front faced triangles and other primitives. Used for back faced triangles. 1Sets how the painted colors are blended with the s previous value. Use a de2 to combine the fragment with the previous value. HUse blending equations to combine the fragment with the previous value.  The first f and g:s is used for front faced triangles and other primitives, * and the second for back faced triangles. ?The painted fragment completely overwrites the previous value. )The function used to compare the fragment'*s depth and the depth buffers depth with. h 1 if the depth component should be written to the . h 8 for each color component that should be written to the . ^Returns the byte size needed to store a certain format and size of a framebuffer. Use this to  allocate memory before using ,  or . Saves a s color buffer to main memory. Saves a s depth buffer to main memory. Saves a !s stencil buffer to main memory. xCretes and shows a new GPipe window. Use the last parameter to add extra GLUT callbacks to the window. Note that you can't register your own i and j. fklmnopqrsgtuvwxyz{|}~efd,eklmnopqrsgtuvwxyz{|}~efd+=The context of types that can be rasterized from vertices in |s to fragments in {s. ] Create your own instances in terms of the existing ones, e.g. convert your vertex data to i  s,  turn them into h  s with = and then convert them to your fragment data representation. The corresponding type in the { after rasterization. 2Turns a vertex value into a fragment value in the 3 monad. This should not be strict on its argument. < Its definition should also always use the same series of = calls to convert values of the same type. This unfortunatly o rules out ordinary lists (but instances for fixed length lists from the Vec package are however provided). >A monad in which vertex data gets converted to fragment data.  Use  in the existing instances of  to operate in this monad. xRasterize front side of all types of primitives with vertices containing canonical view coordinates into fragments. Rasterize both sides of triangles with vertices containing canonical view coordinates into fragments, also returning the primitives side in the fragments. iRasterize back side of triangles with vertices containing canonical view coordinates into fragments. hmnoz{}{hmno}zCThe textures that is instances of this class may be created from a s depth buffer. ] The texture will have the type of a color format and is sampled as such, but contains depth # component information internally. 3Create a texture of a specific depth format from a  and a size. CThe textures that is instances of this class may be created from a s color buffer. -Create a texture of a specific format from a  and a size. ]The formats that is instances of this class may be used as depth textures, i.e. created with  ,  and . TThe color format of the texture, affects the type of the samples from the texture. 5The type that is used for the dimension of texture. The sample coordinate in is. The sample coordinate in hs. bCalculates the byte size of all mipmaps for a specific format and size, which eases the useage of   and L. This adds padding for the row alignment of 4 bytes, even on the last row. 'Samples the texture using mipmaps in a h. 'Samples the texture using mipmaps in a h+, with a bias to add to the mipmap level. 1Samples the texture using a specific mipmap in a i. bA cube texture. The sides of the cube are always specified in this order: Positive X, negative X, 1 positive Y, negative Y, positive Z, negative Z.   f+ has the following associated types in its  instance: TextureFormat (TextureCube f) f TextureSize (TextureCube f) R    (The size of each side) "TextureVertexCoord (TextureCube f)   (i  ) $TextureFragmentCoord (TextureCube f)   (h  ) IA 1D texture. Assumes a frame buffer of height 1 when created from such.   f+ has the following associated types in its  instance: TextureFormat (Texture1D f) f TextureSize (Texture1D f)    TextureVertexCoord (Texture1D f) i   "TextureFragmentCoord (Texture1D f) h   A 2D texture.   f+ has the following associated types in its  instance: TextureFormat (Texture2D f) f TextureSize (Texture2D f) R     TextureVertexCoord (Texture2D f) R  (i  ) "TextureFragmentCoord (Texture2D f) R  (h  ) =A 3D texture. May only be created from main memory in GPipe.   f+ has the following associated types in its  instance: TextureFormat (Texture3D f) f TextureSize (Texture3D f)      TextureVertexCoord (Texture3D f)   (i  ) "TextureFragmentCoord (Texture3D f)   (h  ) bCreates a texture from color data in main memory. It lives in the IO monad for the sake of the Ptr',s, and could otherwise safely be wrapped in unsafePerformIO calls. Creates a depth texture from data in main memory. The texture will have the type of a color format and is sampled as such, but contains depth S component information internally. It lives in the IO monad for the sake of the Ptr',s, and could otherwise safely be wrapped in unsafePerformIO calls.  Create a O of a specific format and size from the the color buffers of six framebuffers.  Create a U of a specific depth format and size from the the depth buffers of six framebuffers. ] The texture will have the type of a color format and is sampled as such, but contains depth # component information internally. H !"#klmnopqrsgtuvwxyz{|}~efd,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRS  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTU   VWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !""#$%&'()*+,-./0123456789:;<=>?@ABCDEEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmn o p q r s t u v w x y z { | } ~      !        !"#$%&'()*+,-./0123456 7 8 9 : ; < = > ?@ ?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 d e fghijkjlmnopqrsttuvw xyz{|{}{~{{{{{{vvvvvvvvvvvvvvv  GPipe-1.1.2Graphics.GPipe.TextureGraphics.GPipe.FormatGraphics.GPipe.StreamGraphics.GPipe.Stream.FragmentGraphics.GPipe.Stream.PrimitiveGraphics.GPipe.FrameBuffer ResourcesFormats Vec-0.9.6 Data.Vec.BaseShaderghc-prim GHC.Types GPUStream Boolean-0.0.1 Data.BooleanInputAssembler OutputMergerOpenGL-2.4.0.1(Graphics.Rendering.OpenGL.GL.PerFragmentGHC.Bool GLUT-2.2.2.0!Graphics.UI.GLUT.Callbacks.Window RasterizerTexturesGraphics.GPipeEdgeModeClampMirrorWrapFilterLinearPointSamplerStencilDepth ColorFormatColor GPUFormat CPUFormatStorableCPUFormatCPUFormat1Comp FloatFormat IntFormatUnsignedIntFormat ShortFormatUnsignedShortFormat ByteFormat BitmapFormatUnsignedByteFormatCPUFormat2CompPerComp2CPUFormat3CompUnsignedShort5_6_5_RevUnsignedShort5_6_5UnsignedByte2_3_3_RevUnsignedByte3_3_2PerComp3CPUFormat4CompUnsignedInt2_10_10_10_RevUnsignedInt10_10_10_2UnsignedInt8_8_8_8_RevUnsignedInt8_8_8_8UnsignedShort1_5_5_5_RevUnsignedShort5_5_5_1UnsignedShort4_4_4_4_RevUnsignedShort4_4_4_4PerComp4 StencilFormat DepthFormatDepth32Depth24Depth16 RGBAFormatSRGBA8RGBA16RGBA12RGB10A2RGBA8RGB5A1RGBA4RGBA2 RGBFormatSRGB8RGB16RGB12RGB10RGB8RGB5RGB4R3G3B2LuminanceAlphaFormatSLuminance8Alpha8Luminance16Alpha16Luminance12Alpha12Luminance12Alpha4Luminance8Alpha8Luminance6Alpha2Luminance4Alpha4LuminanceFormat SLuminance8 Luminance16 Luminance12 Luminance8 Luminance4 AlphaFormatAlpha16Alpha12Alpha8Alpha4Convert ConvertFloat ConvertInttoFloattoIntReal'rsqrtexp2log2floor'ceiling'fract'mod'clampsaturatemixstep smoothstepFragmentVertexGPUCPUtoGPUdFdxdFdyfwidth PointListLineLineList LineStripTriangle TriangleFan TriangleList TriangleStrip PrimitiveVertexPositionFragmentStreamPrimitiveStreamfilterFragments VertexInputtoVertex toGPUStreamtoIndexedGPUStream FrameBuffer StencilTeststencilComparisionstencilReference stencilMask StencilTests StencilOpsfrontStencilOp backStencilOpBlending BlendLogicOpBlend NoBlending DepthFunction DepthMask ColorMask FragmentDepthnewFrameBufferColornewFrameBufferColorDepthnewFrameBufferColorDepthStencilnewFrameBufferColorStencilnewFrameBufferDepthnewFrameBufferDepthStencilnewFrameBufferStencil paintColor paintDepthpaintColorDepth paintStencilpaintDepthStencilpaintColorStencilpaintColorDepthStencilpaintRastDepthpaintColorRastDepthpaintRastDepthStencilpaintColorRastDepthStencilgetFrameBufferCPUFormatByteSizegetFrameBufferColorgetFrameBufferDepthgetFrameBufferStencil newWindow VertexOutput FragmentInput toFragmentrasterizeFrontrasterizeFrontAndBack rasterizeBackFromFrameBufferDepthfromFrameBufferDepthFromFrameBufferColorfromFrameBufferColorDepthColorFormatTexture TextureFormat TextureSizeTextureVertexCoordTextureFragmentCoordtextureCPUFormatByteSizesample sampleBias sampleLod TextureCube Texture1D Texture2D Texture3D newTexturenewDepthTexturefromFrameBufferCubeColorfromFrameBufferCubeDepth mtl-1.1.0.2Control.Monad.TransliftIOWinMappedTextureContextCacheIO ContextCache contextWindowcontextViewPortUniformUniformSampler UniformBool UniformInt UniformFloatConst ConstBoolConstInt ConstFloatOp ShaderKeyNode ShaderKeyOpShaderKeyInputShaderKeyConstantShaderKeyUniform ShaderKey ShaderInfo UniformSet SamplerType SamplerCube Sampler1D Sampler2D Sampler3DUniformLocationSet IndexBuffer VertexBuffernewContextCachesetContextWindowcreateProgramResourcecreateVertexBuffercreateIndexBufferuseProgramResource useUniformsdrawIndexVertexBufferdrawVertexBufferhiddenWindowContextCachegetContextCachesaveContextCachechangeContextSizegetCurrentOrSetHiddenContext evaluateDeep ioEvaluate evaluatePtrnewWinMappedTexturebindWinMappedTexturecubeMapTargetsVec3 fromColortoColortoGLInternalFormattoGLPixelFormat toGLDataTypeRGBARGBLuminanceAlpha LuminanceAlphaformatRowByteSizeFloatDoublemaxBminBcropcondboolean||*&&*notBfalsetrueBooleanifBIfB/=*==*EqB<=*>*>=*<*OrdBrasterizeVertex inputVertexfragmentFrontFacing getShadersvSampleBinFuncfSampleBinFuncvSampleTernFuncfSampleTernFuncData.Vec.LinAlgsolve invertAndDetinvert cramer'sRuledetidentitydiagonalscalerowcolumn translatemultmmmultmvmultvmprojecthomVechomPointcross normalizenormnormSqdot transpose Transpose setDiagonal SetDiagonal getDiagonal GetDiagonalnearZeroNearZero gaussElim GaussElimbackSubstituteBackSubstitutebackSubstitute'BackSubstitute':.Vec2Vec4getPrimitiveModeFragmentStreamDescPrimitiveStreamDesc VertexSetupIndexedVertexSetupCullModeCullBack CullFrontCullNoneloadFragmentColorStreamloadFragmentDepthStreamloadFragmentColorDepthStreamloadFragmentAnyStreamLogicOp BlendEquation+Graphics.Rendering.OpenGL.GL.BlendingFactorBlendingFactorTruedisplayCallbackreshapeCallback/Graphics.Rendering.OpenGL.GL.ComparisonFunctionComparisonFunctionAlwaysGequalNotequalGreaterLequalEqualLessNeverSrcAlphaSaturateOneMinusConstantAlpha ConstantAlphaOneMinusConstantColor ConstantColorOneMinusDstAlphaDstAlphaOneMinusSrcAlphaSrcAlphaOneMinusDstColorDstColorOneMinusSrcColorSrcColorOneZeroSetNand OrInverted CopyInverted OrReverseInvertEquivNorOrXorNoop AndInvertedCopy AndReverseAndClearMaxMinFuncReverseSubtract FuncSubtractFuncAdd StencilOpOpInvert OpDecrWrapOpDecr OpIncrWrapOpIncr OpReplaceOpKeepOpZerorunFrameBufferInContextInt