Core library of new GPipe, encapsulating OpenGl and providing a type safe minimal library
Clone or download
Latest commit d841e28 Sep 2, 2018
Type Name Latest commit message Commit time
Failed to load latest commit information.
GPipe-Core Fix GLSL for texelFetch Aug 5, 2018 add tutorial TOC and test-repo links to readme, tweak haddock wording… Feb 5, 2016

GPipe 2

This is the main repository for GPipe 2, a library which encapsulates OpenGL and provides a minimal type safe interface. Check out the release announcement, GPipe is dead, long live GPipe! or read on for the tutorials.

Examples and tutorials

There is a series of five tutorials for learning the features of GPipe 2 hosted at (see below for a table of contents). You'll start with a simple triangle example, and advance through all of the encapsulated features of OpenGL that GPipe exposes.

Example code

Clone GPipe-Test and build it with Haskell Stack $ stack build. This is the example from Part 1, below.

GPU programming in Haskell using GPipe

  • Part 1
    • Hello triangle!
    • The context
    • Rendering - This is what it's all about
    • Shader - A primer
    • Rasterization
    • Drawing and swapping
  • Part 2
    • Buffers
    • Vertex arrays
    • Primitive arrays
    • Index arrays
    • Instanced primitive arrays
  • Part 3
    • Welcome to the Shader!
    • Primitive streams
    • Error handling in Gpipe
    • Enough of that, back to the shader
    • Linear algebra in GPipe
    • Uniforms
    • Working with lifted S-values
    • Combining Shader monads
  • Part 4
    • FragmentStreams
    • Textures
    • Samplers
    • Colors
    • Sampling
  • Part 5
    • Window formats
    • Window drawing actions
    • Drawing colors
    • Depth test
    • Stencil test
    • Custom filtering of fragments
    • Drawing to texture images
    • Demo time!


Please submit bugs, questions, or suggestions for improvements to our documentation to our github repository, .