Initial version using SDL and openGL shaders. Some refactoring needed.