Not exactly related, but should we change ViewportQuad to allow you to specify a material in the constructor?  Everywhere we use this class we have to go through all this extra code to replace the material afterward.