t`      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNO P Q R S T U V W X Y Z [ \ ] ^ _ ` 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 { | } ~       SafeNone+ZDetectable errors.Enum argument out of range.Integer argument out of range.#Operation illegal in current state.Framebuffer is not complete.jCheck for a GL Error. This call has the semantics of a dequeue. If an error is returned, then calling getGLError again may return more errors that have "stacked up." When it returns Nothing then there are no more errors to report. An error indicates that a bug in your code caused incorrect ussage of the API or that the implementation has run out of memory.*It has been suggested that using this after every single GL command may adversely affect performance (not to mention be very tedious). Since there is no reasonable way to recover from a GL error, a good idea might be to check this once per frame or even less often, and respond with a core dump.Throws an exception if  returns non-Nothing. Safe-./INJA type to pick one of the sides of a cube. See the accessors of the type  . Six values, one on each side.       NoneNoneEnable the depth test. Attempting to render pixels with a depth value greater than the depth buffer at those pixels will have no effect. Otherwise the depth in the buffer will get updated to the new pixel's depth.0Disable the depth test and depth buffer updates.4Clear the depth buffer with the maximum depth value.NonePAllow rendering commands to modify the color buffer of the current framebuffer."Disable rendering to color buffer.Clear the color buffer of the current framebuffer with the specified color. Has no effect if writing to the color buffer is disabled.None&All GL objects have some numeric name.Mappable to GL enums.Framebuffers can be bound to the framebuffer binding target. There is a default framebuffer and the client may create an arbitrary number of new framebuffer objects.!Textures are GL objects."@The allowed attachment point for images with an internal format.$OpenGL internal image formats.  !"#$%&  !"#$% $%"#! & !"#$%&None '<The size and interpretation of a vertex attribute component.( 4-byte float) signed byte* unsigned byte+2-byte signed integer,2-byte unsigned integer-4-byte signed integer.4-byte unsigned integer/The name of a vertex input to a program combined with the component format and number of components for that attribute in the vertex data. Alternatively the size of an unused section of the data in bytes.0AName, component count and component format of a vertex attribute.16Size in bytes of an unused section of the vertex data.2gThis configures the currently bound VAO. It calls glVertexAttribPointer and glEnableVertexAttribArray.'()*+,-./012 ! '()*+,-./012 2/01'()*+,-.'()*+,-./012 !None3Blending factors.BBlending functions.C the defaultFBlending parameters.L7Enable blending with the specified blending parameters.MDisable alpha blending.NZThis blending configuration is suitable for ordinary alpha blending transparency effects. mBlending { sFactor = BlendSourceAlpha , dFactor = BlendOneMinusSourceAlpha , blendFunc = FuncAdd } "bThe default blending parameters have no effect if enabled. The result will be no blending effect. 3456789:;<=>?@ABCDEFGHIJKLMN#$%"3456789:;<=>?@ABCDEFGHIJKLMNLMNFGHIJK3456789:;<=>?@ABCDE 3456789:;<=>?@ABCDEFGHIJKLMN#$%" None O,Modification action for the stencil buffer. P Do nothing.Q Set to zero.R,Write the ref value passed to enableStencil.UBitwise complement.X-The stencil test passes under what condition.aIConfiguration of the stencil test and associated stencil buffer updating.i;Enable the stencil test with a set of operating parameters.jJDisable the stencil test and updates to the stencil buffer, if one exists.k(Clear the stencil buffer with all zeros.l In this basic configuration of the stencil, anything rendered will create a silhouette of 1s in the stencil buffer. Attempting to render a second time into the silhouette will have no effect because the stencil test will fail (ref=1 isn't greater than buffer=1). @def { func = Greater , ref = 1 , onBothPass = Replace } &The default state of the stencil, if it were simply enabled, would be to always pass and update nothing in the buffer. It would have no effect on rendering.!OPQRSTUVWXYZ[\]^_`abcdefghijkl'(&OPQRSTUVWXYZ[\]^_`abcdefghijklijklabcdefghXYZ[\]^_`OPQRSTUVW OPQRSTUVWXYZ[\]^_`abcdefghijkl'(& None m8How indices are packed in an ElementArray buffer object.n Each index is one unsigned byte.o&Each index is a two byte unsigned int.p'Each index is a four byte unsigned int.q$A rectangular section of the window.wFacet culling modes.PEnable the scissor test. Graphics outside the scissor box will not be rendered.Disable the scissor test.Enable facet culling. The argument specifies whether front faces, back faces, or both will be omitted from rendering. If both front and back faces are culled you can still render points and lines.ADisable facet culling. Front and back faces will now be rendered.GSet the viewport. The default viewport simply covers the entire window.%mnopqrstuvwxyz{|}~)*+,!mnopqrstuvwxyz{|}~!{|}~wxyzqrstuvmnopmnopqrstuvwxyz{|}~)*+, None%Combination depth and stencil format.24-bit depth format.,4-byte true color plus alpha channel format.3-byte true color pixel format.*2-byte luminance and alpha channel format.1-byte grayscale pixel format.1-byte alpha channel only. None+C Handle to a VAO.A cubemap texture is just six 2D textures. A program can sample a cubemap texture if it has been bound to the appropriate texture unit.cA 2D texture. A program can sample a texture if it has been bound to the appropriate texture unit.sAn RBO is a kind of image object used for rendering. The only thing you can do with an RBO is attach it to an FBO.A framebuffer object is an alternative rendering destination. Once an FBO is bound to framebuffer binding target, it is possible to attach images (textures or RBOs) for color, depth, or stencil rendering.)Handle to an element array buffer object.Handle to a VBO.Handle to a shader object.Handle to a shader program.0$0 NonefCreate a new VAO. The only thing you can do with a VAO is bind it to the vertex array binding target. Delete a VAO.cAssign the VAO to the vertex array binding target. The VAO already bound will be replaced, if any.NoneN 3Usage hint for allocation of buffer object storage.Data will seldomly change.Data will change.Data will change very often.mCreate a buffer object from a blob of bytes. The usage argument hints at how often you will modify the data.Delete a VBO or ElementArray.WModify the data in the currently bound VBO starting from the specified index in bytes.gBind a VBO to the array buffer binding target. The buffer object bound there will be replaced, if any.Create a new ElementArray buffer object from the blob of packed indices. The usage argument hints at how often you plan to modify the data.^Modify contents in the currently bound ElementArray starting at the specified index in bytes.Assign an ElementArray to the element array binding target. It will replace the ElementArray already bound there, if any. Note that the state of the element array binding target is a function of the current VAO.-./ -./None+RThe error message emitted by the driver when shader compilation or linkage fails.0,Either a vertex shader or a fragment shader.Same as  but does not throw exceptions.Delete a program.Compile the code for a vertex shader and a fragment shader, then link them into a new program. If the compiler or linker fails it will throw a ProgramError.\Install a program into the rendering pipeline. Replaces the program already in use, if any.012vertex shader source codefragment shader source code34560123456NoneThe size of an image in pixels.Texture wrapping modes.#Tile the texture past the boundary.-Tile the texture but mirror every other tile.2Use the edge color for anything past the boundary.Texture filtering modes.No interpolation.Linear interpolation.Create a new 2D texture from a blob and its dimensions. Dimensions should be powers of two. The internal format type determines how the data is interpreted.rCreate a new cube map texture from six blobs and their respective dimensions. Dimensions should be powers of two.ACreate an empty texture with the specified dimensions and format. ^Create a cubemap texture where each of the six sides has the specified dimensions and format. Delete a texture. ZBind a 2D texture to the 2D texture binding target and the currently active texture unit. dBind a cubemap texture to the cubemap texture binding target and the currently active texture unit. 1Set the active texture unit. The default is zero.WSet the filtering for the 2D texture currently bound to the 2D texture binding target.aSet the filtering for the cubemap texture currently bound to the cubemap texture binding target.[Set the wrapping mode for the 2D texture currently bound to the 2D texture binding target.Set the wrapping mode for the cubemap texture currently bound to the cubemap texture binding target. Because no blending occurs between cube faces you probably want ClampToEdge.7     89          7     89NoneIN The default framebuffer.yBinds an FBO or the default framebuffer to the framebuffer binding target. Replaces the framebuffer already bound there.yCreate a new framebuffer object. Before the framebuffer can be used for rendering it must have a color image attachment.Delete an FBO.RAttach a 2D texture to the FBO currently bound to the framebuffer binding target.kAttach one of the sides of a cubemap texture to the FBO currently bound to the framebuffer binding target.LAttach an RBO to the FBO currently bound to the framebuffer binding target.8Create a new renderbuffer with the specified dimensions.Delete an RBO. :;   :;None  !"#$%'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~     2/01'()*+,-.      {|}~qrstuvwxyzmnopijklabcdefghXYZ[\]^_`OPQRSTUVWLMNFGHIJK3456789:;<=>?@ABCDE$% !"#< !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYYZ[\]^_` a b c d e f g h i j k l m n o p q r s s t u v w x y z { | } ~                                                      ! " # $ % & ' ()*+,-./0123456788ANDWoFgds49shJuveuJ6PGraphics.GL.Low.ErrorGraphics.GL.Low.CubeGraphics.GL.Low.CommonGraphics.GL.Low.DepthGraphics.GL.Low.ColorGraphics.GL.Low.ClassesGraphics.GL.Low.VertexAttribGraphics.GL.Low.BlendingGraphics.GL.Low.StencilGraphics.GL.Low.RenderGraphics.GL.Low.ImageFormatGraphics.GL.Low.Internal.TypesGraphics.GL.Low.VAOGraphics.GL.Low.BufferObjectGraphics.GL.Low.ShaderGraphics.GL.Low.TextureGraphics.GL.Low.Framebuffer$Graphics.GL.Low.EntirePictureUpFrontGraphics.GL.LowGLError InvalidEnum InvalidValueInvalidOperationInvalidFramebufferOperation OutOfMemory getGLErrorassertNoGLErrorSideCube cubeRightcubeLeftcubeTop cubeBottom cubeFrontcubeBack $fMonoidCube$fApplicativeCube cubeSideCodesenableDepthTestdisableDepthTestclearDepthBufferenableColorWritingdisableColorWritingclearColorBufferGLObject glObjectNameToGLtoGL BufferObject FramebufferframebufferNameTexture Attachable attachPointInternalFormatinternalFormat $fToGLBoolDataTypeGLFloatGLByteGLUnsignedByteGLShortGLUnsignedShortGLInt GLUnsignedInt VertexLayoutAttribUnusedsetVertexLayout BlendFactorBlendOne BlendZeroBlendSourceColorBlendOneMinusSourceColorBlendDestColorBlendOneMinusDestColorBlendSourceAlphaBlendOneMinusSourceAlphaBlendDestAlphaBlendOneMinusDestAlphaBlendConstantColorBlendOneMinusConstantColorBlendConstantAlphaBlendOneMinusConstantAlpha BlendEquationFuncAdd FuncSubtractFuncReverseSubtractBlendingsFactordFactor blendFunc blendColorenableBlendingdisableBlending basicBlending StencilOpKeepZeroReplace Increment DecrementInvert IncrementWrap DecrementWrap StencilFuncNeverLess LessOrEqualGreaterGreaterOrEqualEqualNotEqualAlwaysStencilfuncrefmask onStencilFail onDepthFail onBothPass enableStencildisableStencilclearStencilBuffer basicStencil IndexFormat UByteIndices UShortIndices UIntIndicesViewport viewportX viewportY viewportW viewportHCulling CullFrontCullBackCullFrontAndBack drawPoints drawLines drawLineStrip drawLineLoop drawTrianglesdrawTriangleStripdrawTriangleFandrawIndexedPointsdrawIndexedLinesdrawIndexedLineStripdrawIndexedLineLoopdrawIndexedTrianglesdrawIndexedTriangleStripdrawIndexedTriangleFanenableScissorTestdisableScissorTest enableCullingdisableCulling setViewportDepth24Stencil8Depth24RGBARGBLuminanceAlphaLuminancealpha LuminanceAlpha$fAttachableDepth24Stencil8$fAttachableDepth24$fAttachableAlpha$fAttachableLuminanceAlpha$fAttachableLuminance$fAttachableRGBA$fAttachableRGB$fInternalFormatDepth24Stencil8$fInternalFormatDepth24$fInternalFormatLuminanceAlpha$fInternalFormatLuminance$fInternalFormatAlpha$fInternalFormatRGBA$fInternalFormatRGBVAOfromVAOCubeMap fromCubeMapTex2D fromTex2DRBOunRBOFBOfromFBO ElementArrayfromElementArrayVBOfromVBOShader fromShaderProgram fromProgramUniformLocationfromUniformLocationAttribLocationfromAttribLocation TextureUnitfromTextureUnit $fGLObjectVAO$fGLObjectCubeMap$fTextureCubeMap$fGLObjectTex2D$fTextureTex2D $fGLObjectRBO $fGLObjectFBO$fFramebufferFBO$fBufferObjectElementArray$fGLObjectElementArray$fBufferObjectVBO $fGLObjectVBOnewVAO deleteVAObindVAO UsageHint StaticDraw DynamicDraw StreamDrawnewVBOdeleteBufferObject updateVBObindVBOnewElementArrayupdateElementArraybindElementArray ProgramErrorVertexShaderErrorFragmentShaderError LinkErrornewProgramSafe deleteProgram newProgram useProgram setUniform1f setUniform2f setUniform3f setUniform4f setUniform1i setUniform2i setUniform3i setUniform4i setUniform44 setUniform33 setUniform22 Dimensions imageWidth imageHeightWrappingRepeatMirroredRepeat ClampToEdge FilteringNearestLinear newTexture2D newCubeMapnewEmptyTexture2DnewEmptyCubeMap deleteTexture bindTexture2DbindTextureCubeMapsetActiveTextureUnitsetTex2DFilteringsetCubeMapFilteringsetTex2DWrappingsetCubeMapWrappingDefaultFramebufferbindFramebuffernewFBO deleteFBO attachTex2D attachCubeMap attachRBOnewRBO deleteRBO $fShowGLError$fExceptionGLErrorelaborateLayout totalLayout sizeOfType$fToGLDataType$fDefaultBlending$fToGLBlendFactor$fToGLBlendEquation$fDefaultBlendEquation$fDefaultStencil$fToGLStencilOp$fToGLStencilFunc drawArrays drawIndexed$fToGLIndexFormat $fToGLCullingnewBufferObjectupdateBufferObject$fToGLUsageHint ShaderType VertexShaderFragmentShader compileShader setUniform$fExceptionProgramError$fToGLShaderTypeloadCubeMapSide$fToGLWrapping$fToGLFiltering$fFramebufferDefaultFramebuffer$fDefaultDefaultFramebuffer