Package

purescript-webgl2-raw

Repository
chrismshelton/purescript-webgl2-raw
License
MIT
Uploaded by
chrismshelton
Published on
2018-11-10

Low-level bindings for WebGL, WebGL2, and all of the approved/ratified extensions.

Usage

This module follows the WebGL spec pretty closely, although there are a few differences worth pointing out.

  • Instead of a single getExtension function that returns a mystery object, each extension provides its own getExtension{$EXTENSION_NAME} function.
  • All of the GLenum constants are top-level values instead of class constants. The names have been prefixed with gl_. The core WebGL enums are in the appropriate Enums module, and any extension-specific enums are defined in that extension's module.
  • WebGLRenderingContext and WebGL2RenderingContext have been implemented as type-classes instead of distinct interfaces. There are a lot of functions which changed between WebGL1 and WebGL2; this way you can still use the WebGL1 versions with a WebGL2 context.
  • WebGL makes pretty heavy use of multiple dispatch, with functions like bufferData, readPixels, and texImage2D. I've provided renamed versions for overlapping function names; each one contains the original idl source in the doc comment so you can easily find the original definition in the WebGL spec.
  • There are a lot of functions (like getParameter, getBufferParameter, etc) that return different types based on the provided arguments. I've provided a different version (getParameterBoolean, getParameterInt...) for each possible return type. The comments for each function will list which combinations of arguments should be used for that version. These functions will throw an exception when the value returned isn't of the expected type.

Installation

bower install purescript-webgl2-raw

Documentation

Module documentation is published on Pursuit.

Modules
WebGL.Raw.Extensions.ANGLE.InstancedArrays
WebGL.Raw.Extensions.EXT.BlendMinmax
WebGL.Raw.Extensions.EXT.ColorBufferFloat
WebGL.Raw.Extensions.EXT.ColorBufferHalfFloat
WebGL.Raw.Extensions.EXT.DisjointTimerQuery
WebGL.Raw.Extensions.EXT.DisjointTimerQueryWebgl2
WebGL.Raw.Extensions.EXT.FragDepth
WebGL.Raw.Extensions.EXT.SRGB
WebGL.Raw.Extensions.EXT.ShaderTextureLod
WebGL.Raw.Extensions.EXT.TextureFilterAnisotropic
WebGL.Raw.Extensions.OES.ElementIndexUint
WebGL.Raw.Extensions.OES.StandardDerivatives
WebGL.Raw.Extensions.OES.TextureFloat
WebGL.Raw.Extensions.OES.TextureFloatLinear
WebGL.Raw.Extensions.OES.TextureHalfFloat
WebGL.Raw.Extensions.OES.TextureHalfFloatLinear
WebGL.Raw.Extensions.OES.VertexArrayObject
WebGL.Raw.Extensions.WEBGL.ColorBufferFloat
WebGL.Raw.Extensions.WEBGL.CompressedTextureAstc
WebGL.Raw.Extensions.WEBGL.CompressedTextureEtc
WebGL.Raw.Extensions.WEBGL.CompressedTextureEtc1
WebGL.Raw.Extensions.WEBGL.CompressedTexturePvrtc
WebGL.Raw.Extensions.WEBGL.CompressedTextureS3tc
WebGL.Raw.Extensions.WEBGL.CompressedTextureS3tcSrgb
WebGL.Raw.Extensions.WEBGL.DebugRendererInfo
WebGL.Raw.Extensions.WEBGL.DebugShaders
WebGL.Raw.Extensions.WEBGL.DepthTexture
WebGL.Raw.Extensions.WEBGL.DrawBuffers
WebGL.Raw.Extensions.WEBGL.LoseContext
WebGL.Raw.Types
WebGL.Raw.WebGL1
WebGL.Raw.WebGL1.Enums
WebGL.Raw.WebGL1.Uniforms
WebGL.Raw.WebGL1.VertexAttributes
WebGL.Raw.WebGL1.WebGLActiveInfo
WebGL.Raw.WebGL1.WebGLBuffer
WebGL.Raw.WebGL1.WebGLContextEvent
WebGL.Raw.WebGL1.WebGLFramebuffer
WebGL.Raw.WebGL1.WebGLProgram
WebGL.Raw.WebGL1.WebGLRenderbuffer
WebGL.Raw.WebGL1.WebGLRenderingContext
WebGL.Raw.WebGL1.WebGLShader
WebGL.Raw.WebGL1.WebGLShaderPrecisionFormat
WebGL.Raw.WebGL1.WebGLTexture
WebGL.Raw.WebGL2
WebGL.Raw.WebGL2.Enums
WebGL.Raw.WebGL2.UniformBufferObjects
WebGL.Raw.WebGL2.Uniforms
WebGL.Raw.WebGL2.VertexAttributes
WebGL.Raw.WebGL2.WebGL2RenderingContext
WebGL.Raw.WebGL2.WebGLActiveInfo
WebGL.Raw.WebGL2.WebGLBuffer
WebGL.Raw.WebGL2.WebGLContextEvent
WebGL.Raw.WebGL2.WebGLFramebuffer
WebGL.Raw.WebGL2.WebGLProgram
WebGL.Raw.WebGL2.WebGLQuery
WebGL.Raw.WebGL2.WebGLRenderbuffer
WebGL.Raw.WebGL2.WebGLSampler
WebGL.Raw.WebGL2.WebGLShader
WebGL.Raw.WebGL2.WebGLShaderPrecisionFormat
WebGL.Raw.WebGL2.WebGLSync
WebGL.Raw.WebGL2.WebGLTexture
WebGL.Raw.WebGL2.WebGLTransformFeedback
WebGL.Raw.WebGL2.WebGLVertexArrayObject
Dependencies