Вы вызываете glViewport (), чтобы сообщить OpenGL, какая часть окна (в пикселях) будет в конечном итоге отрисована OpenGL. Вы используете метод, такой как glFrustum (), glOrtho () или glOrtho2D (), чтобы установить параметры «мира», в котором вы рисуете.
Если вы обрабатываете событие, сообщающее вам, когда размер окна изменяется, то вы можете снова вызвать glViewport (), чтобы соответствующим образом обновить размер окна просмотра.
Итак, если ваш мир в квадрате (например), а ваш видовой экран прямоугольный, он будет иметь тот эффект, на который вы ссылаетесь (он соответственно растянется, как на самом деле текстура).