Îõ³h&{²Ð      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO:(c) 2023 IC Rainbow (c) 2014-2019 Edward KmettBSD-2-Clause OR Apache-2.0"IC Rainbow  experimental non-portable Safe-Inferred01689:;<ÁÂÃÊÌÙÚÜ4 gl-blockÃAutomatically derive Std140 and Std430 alignment using GHC Generics gl-block€This describes how to load and store primitives through a uniform/shader storage blocks according to OpenGL Std140 and Std430.9There are lots of fiddly little constants around, beware.gl-blockAs per P Q, but matching OpenGL Std140.gl-blockAs per P R, but matching OpenGL Std140.gl-blockÆStructures get smashed up to a minimum of a vec4 alignment in 140 modegl-blockAs per P Q, but matching OpenGL Std430.gl-blockAs per P R, but matching OpenGL Std430.gl-blockAs per P R&, but without padding and no alignment$gl-block roundUp k n, rounds up k up to an integral multiple of n%    !"#$%   !"# $ Safe-Inferred¥STUVWXYZÛ       !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRPQSPQTUVWXYZ[\Ý#gl-block-1.0-9KxWvhJL6MZ4sPMBjpKfRAGraphics.Gl.BlockPaths_gl_blockGBlock GPackedSize galignment140 galignment430 gsizeOf140 gsizeOf430 gsizeOfPackedgread140gread430 greadPacked gwrite140 gwrite430 gwritePackedBlock PackedSize alignment140 sizeOf140isStructread140write140 alignment430 sizeOf430read430write430 sizeOfPacked readPacked writePackedStd430 getStd430Std140 getStd140Packed getPackedroundUp $fGBlockkM1 $fGBlockkM10 $fGBlockkM11 $fGBlockk:*: $fGBlockkU1 $fBlock(,,) $fBlock(,) $fBlockDouble $fBlockFloat $fBlockWord32 $fBlockInt32 $fBlockBool $fGBlockkK1$fStorableStd430$fStorableStd140$fStorablePacked $fDataStd430$fGenericStd430$fFunctorStd430$fFoldableStd430$fTraversableStd430 $fEqStd430 $fOrdStd430 $fShowStd430 $fReadStd430 $fDataStd140$fGenericStd140$fFunctorStd140$fFoldableStd140$fTraversableStd140 $fEqStd140 $fOrdStd140 $fShowStd140 $fReadStd140 $fDataPacked$fGenericPacked$fFunctorPacked$fFoldablePacked$fTraversablePacked $fEqPacked $fOrdPacked $fShowPacked $fReadPackedbaseForeign.StorableStorable alignmentsizeOfversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir