Fix viewport not being cached properly
Caching glEnable states