-----------------------------------------------------------------------------
--
-- Module      :  Graphics.GPipe
-- Copyright   :  Tobias Bexelius
-- License     :  MIT
--
-- Maintainer  :  Tobias Bexelius
-- Stability   :  Experimental
-- Portability :  Portable
--
-- |
-- A typesafe API based on the conceptual model of OpenGL, but without the
-- imperative state machine. GPipe aims to be as close to raw OpenGL performance
-- as possible, without compromising type safety or functional style. Includes
-- an embedded domain specific language for GLSL shaders which provides type
-- safety even when crossing into that domain. Uses the OpenGL 4.5 core profile
-- under the hood.
--
-- To learn GPipe, start with the <https://github.com/tobbebex/GPipe-Core#readme readme>
-- at the <https://github.com/tobbebex/GPipe-Core source repository>.
-- You could also go directly to <https://github.com/plredmond/GPipe-Test a working example>
-- or the tutorials:
-- <http://tobbebex.blogspot.se/2015/09/gpu-programming-in-haskell-using-gpipe.html    Part 1>,
-- <http://tobbebex.blogspot.se/2015/09/gpu-programming-in-haskell-using-gpipe_11.html Part 2>,
-- <http://tobbebex.blogspot.se/2015/10/gpu-programming-in-haskell-using-gpipe.html    Part 3>,
-- <http://tobbebex.blogspot.se/2015/10/gpu-programming-in-haskell-using-gpipe_21.html Part 4>,
-- <http://tobbebex.blogspot.se/2015/11/gpu-programming-in-haskell-using-gpipe.html    Part 5>.
--
-- This module reexports relevant GPipe modules and the external "Linear" and "Data.Boolean" modules.
-----------------------------------------------------------------------------

module Graphics.GPipe (
    module Graphics.GPipe.Context,
    module Graphics.GPipe.Format,
    module Graphics.GPipe.Buffer,
    module Graphics.GPipe.PrimitiveArray,
    module Graphics.GPipe.PrimitiveStream,
    module Graphics.GPipe.FragmentStream,
    module Graphics.GPipe.FrameBuffer,
    module Graphics.GPipe.GeometryStream,
    module Graphics.GPipe.Linear,
    module Graphics.GPipe.TransformFeedback,
    module Graphics.GPipe.Shader,
    module Graphics.GPipe.Expr,
    module Graphics.GPipe.Uniform,
    module Graphics.GPipe.Texture,
    module Graphics.GPipe.Sampler,
    module Data.Boolean
)
where

import           Data.Boolean
import           Graphics.GPipe.Buffer
import           Graphics.GPipe.Context
import           Graphics.GPipe.Expr
import           Graphics.GPipe.Format
import           Graphics.GPipe.FragmentStream
import           Graphics.GPipe.FrameBuffer
import           Graphics.GPipe.GeometryStream
import           Graphics.GPipe.Linear
import           Graphics.GPipe.Orphans           ()
import           Graphics.GPipe.PrimitiveArray
import           Graphics.GPipe.PrimitiveStream
import           Graphics.GPipe.Sampler
import           Graphics.GPipe.Shader
import           Graphics.GPipe.Texture
import           Graphics.GPipe.TransformFeedback
import           Graphics.GPipe.Uniform