GPipe-Core
GPipe-Core copied to clipboard
Core library of new GPipe, encapsulating OpenGl and providing a type safe minimal library
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 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.
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!
Feedback
Please submit bugs, questions, or suggestions for improvements to our documentation to our github repository, https://github.com/tobbebex/GPipe-Core .