I think OpenGL at least supports setting viewport multiple times per frame effortlessly. Maybe the UnDelphiX implementation of it is unfinished. Alternative is to render into a surface/texture and then draw that, but it could be slower.