by tobbebex

tobbebex / GPipe-Core

Core library of new GPipe, encapsulating OpenGl and providing a type safe minimal library

137 Stars 22 Forks Last release: Not found 186 Commits 0 Releases

Available items

No Items, yet!

The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:

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

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.