lowgl-0.4.0.0: Graphics/GL/Low.hs
-- | Basic low-level GL wrapper and reference.
module Graphics.GL.Low (
-- * Overview
-- | This library exposes a simplified subset of OpenGL that I hope is
-- complete enough for following tutorials and making simple games or demos.
--
-- For a whirlwind tour of the machinery behind GL see the module:
-- "Graphics.GL.Low.EntirePictureUpFront"
--
-- This library uses the `gl' package for raw bindings to OpenGL and the
-- `linear' package for matrices.
--
-- See submodules for specialized documentation of each subsystem.
--
-- @"Graphics.GL.Low.VAO"@
--
-- @"Graphics.GL.Low.BufferObject"@
--
-- @"Graphics.GL.Low.Shader"@
--
-- @"Graphics.GL.Low.VertexAttrib"@
--
-- @"Graphics.GL.Low.Texture"@
--
-- @"Graphics.GL.Low.Render"@
--
-- @"Graphics.GL.Low.Stencil"@
--
-- @"Graphics.GL.Low.Blending"@
--
-- @"Graphics.GL.Low.Framebuffer"@
-- * VAO
-- | See also "Graphics.GL.Low.VAO".
newVAO,
bindVAO,
deleteVAO,
VAO,
-- * Buffer Objects
-- | See also "Graphics.GL.Low.BufferObject".
newBufferObject,
bindVBO,
bindElementArray,
updateVBO,
updateElementArray,
deleteBufferObject,
BufferObject,
UsageHint(..),
-- * Shader Program
-- | See also "Graphics.GL.Low.Shader".
newProgram,
newProgramSafe,
useProgram,
deleteProgram,
setUniform1f,
setUniform2f,
setUniform3f,
setUniform4f,
setUniform1i,
setUniform2i,
setUniform3i,
setUniform4i,
setUniform22,
setUniform33,
setUniform44,
Program,
ProgramError(..),
-- ** Vertex Attributes
-- | See also "Graphics.GL.Low.VertexAttrib".
setVertexLayout,
LayoutElement(..),
DataType(..),
-- * Textures
-- | See also "Graphics.GL.Low.Texture".
Texture,
newTexture2D,
newCubeMap,
newEmptyTexture2D,
newEmptyCubeMap,
deleteTexture,
setActiveTextureUnit,
bindTexture2D,
bindTextureCubeMap,
setTex2DFiltering,
setCubeMapFiltering,
setTex2DWrapping,
setCubeMapWrapping,
Cube(..),
Filtering(..),
Wrapping(..),
-- * Rendering
--
-- ** Primitives
-- | See also "Graphics.GL.Low.Render".
drawPoints,
drawLines,
drawLineStrip,
drawLineLoop,
drawTriangles,
drawTriangleStrip,
drawTriangleFan,
drawIndexedPoints,
drawIndexedLines,
drawIndexedLineStrip,
drawIndexedLineLoop,
drawIndexedTriangles,
drawIndexedTriangleStrip,
drawIndexedTriangleFan,
setViewport,
enableScissorTest,
disableScissorTest,
enableCulling,
disableCulling,
Viewport(..),
Culling(..),
IndexFormat(..),
-- ** Color Buffer
enableColorWriting,
disableColorWriting,
clearColorBuffer,
-- ** Depth Test
enableDepthTest,
disableDepthTest,
clearDepthBuffer,
-- ** Stencil Test
-- | See also "Graphics.GL.Low.Stencil".
enableStencil,
disableStencil,
clearStencilBuffer,
basicStencil,
Stencil(..),
StencilFunc(..),
StencilOp(..),
-- ** Blending
-- | See also "Graphics.GL.Low.Blending".
enableBlending,
disableBlending,
basicBlending,
Blending(..),
BlendFactor(..),
BlendEquation(..),
-- * Framebuffers
-- | See also "Graphics.GL.Low.Framebuffer".
FBO,
newFBO,
bindFBO,
bindDefaultFramebuffer,
deleteFBO,
attachTex2D,
attachCubeMap,
attachRBO,
-- * Renderbuffers
RBO,
newRBO,
deleteRBO,
-- * Errors
GLError(..),
getGLError,
assertNoGLError,
-- * Image Formats
ImageFormat(..),
) where
import Graphics.GL.Low.Classes
import Graphics.GL.Low.VAO
import Graphics.GL.Low.BufferObject
import Graphics.GL.Low.Shader
import Graphics.GL.Low.VertexAttrib
import Graphics.GL.Low.Texture
import Graphics.GL.Low.Framebuffer
import Graphics.GL.Low.Blending
import Graphics.GL.Low.Stencil
import Graphics.GL.Low.Render
import Graphics.GL.Low.Cube
import Graphics.GL.Low.Error