ShaderGeneratorInterface does not have virtual function members, so we have to implement each type explicitly.