Added shader switching. Added ViewPorts and ScissorClipping.
Lots of minor changes especially to geometry package.