glViewPort используется для установки размера окна для рисования, поэтому обычно вы всегда устанавливаете размер окна:
glViewport(0, 0, backingWidth, backingHeight);
Я не эксперт, я могу сделать это, используя glOrthof для преобразования матрицы проекции.
Скажем, например, что вы хотите, чтобы ширина была 0-100, а высота была 0-150, вы бы:
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrthof(0.0f, 100.0f, 150.0f, 0.0f, -1.0f, 1.0f);