All Projects → tobbebex → Gpipe Core

tobbebex / Gpipe Core

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

Programming Languages

haskell
3896 projects

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 .

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].