Only create the viewport as needed
So far, we were creating a model view with the complete scene rendered (even if we didn't render the windows themselves). This required us to have a big glPerspective spanning the entire scene and we were just cropping it as we rendered it into a smaller texture.
This changes our scenes so we have the correct matrix set up at all times.
Specifically in the case of the Pinephone, this solves the following issue where we were unable to connect external displays because it exceeded GL_MAX_VIEWPORT_DIMS: teams/plasma-mobile/issues#11 (closed)
--
There's no further known regressions
Edited by Aleix Pol Gonzalez