Add support for shader program generation