optimized the draw code to put all matrix updates in a single
global function, that way matrix math is only done on POV change
and geomodel updates