Renderer resource initialisation now takes a descriptor rather than function params. Allows more flexibility without changing the API every time a new feature goes in.