start on a unified vertex/fragment program translation function