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.
There is a series of five tutorials for learning the features of GPipe 2 hosted at http://tobbebex.blogspot.se (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.
Clone GPipe-Test
and build it with Haskell Stack $ stack build
.
This is the example from Part 1, below.
- 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, https://github.com/tobbebex/GPipe-Core .