我制作了一个简单的 OpenGL 程序,将 2D 纹理绘制到屏幕上。当您调整窗口大小时,它不能正确调整,所以要解决这个问题,我只需再次运行投影矩阵代码:
if (windowSizeChange)
{
std::cout << "Window resized." << std::endl;
std::cout << windowWidth << " " << windowHeight << std::endl;
windowSizeChange = false;
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, windowWidth, windowHeight, 0.0, -1.0, 1.0);
glMatrixMode(GL_MODELVIEW);
}
但是,运行此代码会扭曲图像。据我了解,为了让我可以在屏幕上绘制类似 2D 的图形,我的纹理是使用正交投影矩阵绘制的,这意味着有一个平面与窗口端口或类似我绘制的平面“平行” . 当我尝试重新制作以适应新的窗口大小时,它无法正确调整。这段代码出了什么问题?