start building a nicer API around SDL using GL StateVars and actual error handling