我编写了一个代码,用于创建窗口并在其中绘制形状:
#include<glew.h>
#include<iostream>
#include<GL\freeglut.h>
#include<Windows.h>
#include<stdlib.h>
#include<math.h>
#pragma once
void Render_All()
{
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_POLYGON);
glColor3f(1, 0, 0); glVertex2f(0.5, 0.5);
glColor3f(1, 0, 0); glVertex2f(0.5, -0.5);
glColor3f(1, 0, 0); glVertex2f(-0.5, -0.5);
glColor3f(1, 0, 0); glVertex2f(-0.5, 0.5);
glEnd();
glFlush();
}
int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(300, 300);
glutCreateWindow("Square");
//glutFullScreen();
glutDisplayFunc(Render_All);
GLenum Error = glewInit();
if(GLEW_OK != Error)
{
fprintf(stderr, "GLEW Error");
return EXIT_FAILURE;
}
glutMainLoop();
return 0;
}
代码编译得很好。输出按预期出现。唯一的问题是,我在控制台窗口中收到此消息:
fghInitialize: CreateDC failed, Screen size info may be incorrect. This is quite likely caused by a bad '-display' parameter.
在互联网上嗅探,我发现这是从 freeglut_init.c 文件调用的。除此之外,我找不到任何解决方法。我该如何解决这个问题?
P.S。 :这是在Visual Studio 10中完成的。我在相同的条件下在另一台PC(笔记本电脑)中执行了相同的程序,并且没有出现此消息。因此,这可能是一个硬件问题。但是,它并没有解释如何解决它。
答案 0 :(得分:1)
这是因为您正在向程序传递-display参数,或者更有可能定义了DISPLAY环境变量。 Under windows, FreeGLUT will use the DISPLAY variable调用CreateDC(),期望为NULL,&#34; DISPLAY&#34;或有效的显示设备名称。