-- | 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