C++ 某些窗口大小的OpenGL图像显示不正确

C++ 某些窗口大小的OpenGL图像显示不正确,c++,opengl,glut,C++,Opengl,Glut,我是OpenGL新手,正在尝试显示图像。我已经完成了从文件部分加载图像,现在正试图将其绑定到我的形状GL_三角形。有时图像显示正确,但有时不正确。我意识到这取决于窗口大小,所以如果我调整窗口大小,我可以得到清晰的图像。以下是屏幕外观的一些截图: 工作: 破碎的: 这是我的绘图循环: 空白显示{ //勾选帧计数器 frame++; 开始时间=时钟; //更新屏幕 int width=GLUTGEGLUT\u窗口\u宽度; int height=GLUTGEGLUT\u窗口\u高度; 更新屏幕宽

我是OpenGL新手,正在尝试显示图像。我已经完成了从文件部分加载图像,现在正试图将其绑定到我的形状GL_三角形。有时图像显示正确,但有时不正确。我意识到这取决于窗口大小,所以如果我调整窗口大小,我可以得到清晰的图像。以下是屏幕外观的一些截图:

工作:

破碎的:

这是我的绘图循环:

空白显示{ //勾选帧计数器 frame++; 开始时间=时钟; //更新屏幕 int width=GLUTGEGLUT\u窗口\u宽度; int height=GLUTGEGLUT\u窗口\u高度; 更新屏幕宽度、高度; //清屏 glClearColor0,0,0,1; glClearGL\u颜色\u缓冲\u位; GLP矩阵; glClearGL\u颜色\u缓冲\u位; glEnableGL_纹理_2D; glBindTextureGL_纹理_2D,png::get_纹理[1]; glEnableGL_纹理_GEN_S; glEnableGL_纹理_GEN_T; glTexEnvfGL_纹理_环境,GL_纹理_环境模式,GL_替换; glTexGeniGL_S、GL_纹理_GEN_模式、GL_对象_线性; glTexGeniGL\u T、GL\u纹理\u GEN\u模式、GL\u对象\u线性; glBeginGL_三角形; glVertex2f1000,1000; glVertex2f0,1000; glVertex2f0,0; glVertex2f1000,1000; glVertex2f1000,0; glVertex2f0,0; 格伦德; glDisableGL_纹理_2D; GLPOP矩阵; glFlush; 狼吞虎咽; 已用时间=时钟-开始时间/双时钟/秒/10000; //勾选所有实体 player.ticked_时间; 再发现; } 此外,如果我删除了glEnableGL_纹理或glEnableGL_纹理;或者两者兼而有之,图像会完全变为蓝色或灰色

编辑:哦,我用的是PNG文件,以防万一。嗯,我觉得不好意思

我忘了添加glTexCoord2f

这是我的新文件,以防别人把脑子忘在什么地方了

空白显示{ //勾选帧计数器 frame++; 开始时间=时钟; //更新屏幕 int width=GLUTGEGLUT\u窗口\u宽度; int height=GLUTGEGLUT\u窗口\u高度; 更新屏幕宽度、高度; //glMatrixModeGL_模型视图; //glLoadIdentity; //清屏 glClearColor0,0,0,1; glClearGL\u颜色\u缓冲\u位; GLP矩阵; glClearGL\u颜色\u缓冲\u位; glEnableGL_纹理_2D; glBindTextureGL_纹理_2D,png::get_纹理[3]; glTexEnvfGL_纹理_环境,GL_纹理_环境模式,GL_替换; glBeginGL_QUADS; glTexCoord2f0,0;glVertex2f0,0; glTexCoord2f1,0;glVertex2f1000,0; glTexCoord2f1,1;glvertex2f1,1000; glTexCoord2f0,1;glVertex2f0,1000; 格伦德; glDisableGL_纹理_2D; GLPOP矩阵; glFlush; 狼吞虎咽; 已用时间=时钟-开始时间/双时钟/秒/10000; //勾选所有实体 player.ticked_时间; 再发现; }
我假设图像是1000x1000像素?@TreytenCarey 1024×1024@TreytenCarey现在我尝试了一个1000×1000的图像,效果还是一样的