Brickout Invaders Astroids Information

OpenGL is a library for sending instructions to the GPU. DashGL is a small library for managing Vectors and Matrices to pass into OpenGL. To create an OpenGL context, you will need a window library to open a window and start an OpenGL context. I have tried a few of them, these are my thought.


Freeglut is quick and effective. It's a very small window library that provided a few very basic functionality for giving you a window and getting into an OpenGL context. If you are on the Raspberry Pi, or just want somewhere to get started with OpenGL then this is a good library to go with.


Glfw is the window library currently used in the OpenGL red book. It's a simple library, similar to Freeglut with a few more controls on window hints. There are a lot of resources to work with between their site and RedBook examples on OpenGL. While the library is written in C a lot of the examples are written in C++ and use GLM. One note is that depending on your environment, this is not the easiest library to compile and run.


SDL is definitely one of the most seductive and compelling libraries out there. It's a full fledged library which includes api's for audio, video, controls and the library is supported to cross compile to a lot of different platforms. It's also easy to install the tools required to compile and run programs in it. The downside is that for the wide adoption of emulators and games that use SDL, I can't for the life of me find any resources in C or Linux to figure out how to get a handle on this library.


GTK is the standard this site uses. The most difficult part is figuring out the syntax for creating and looping a GTKGLArea, but once you get the basics down, it's a pretty versitile toolkit to work with with a lot of options for expansion. The XML and approach for layouts is kind of confusing if you want to branch out, but in terms of creating applications in C, on Linux, you'd be hard pressed to find better tools than this.

Math Libraries


Link - The "Dash Graphics Library" is still very much a work in progress as I'm only added in new functions instead of just throwing a bunch of matrix and quaternion methods in that I don't know are working correctly or not. If you want a fully featured linear math library in C now, then mathc is the way to go. It offers and extremely full featured set of functions that's pretty much everything I want to have in DashGL.


Link - Linmath is another option for a matrix and vector math library. It's a tiny library that uses macros inside a single header file to cover most of the math mathmatical functions you could want.

Shader Libraries


Link - SOIL is the the "Simple OpenGL Image Library". Right now DashGL only offers a single function for loading a small subset of png encoded images. If you want or need a more complete library for managing textures with OpenGL in C then this is probably the library to use.