Changes to the shader interface, and more Direct3D stuff