Fix use of glVertexPointer and glNormalPointer to happen outside of the (possible) implied glBegin glEnd of glfw. Also fixed the normal offset calculation to use correct stride. Added an initial CPP version that still needs a lot of work.