Clean up include files.
Move #include <vector> into basic.h.
Don't duplicate most of glTexSubImage2D call here.