我使用GLEW和freeglut。出于某种原因,在调用glewInit()之后,glGetError()返回错误代码1280,即使使用glewExperimental=GL_FALSE。
我无法编译着色器,glGetProgram InfoLog()返回“在调用glLinkProgram()之前,顶点着色器未成功编译。链接失败。”我之前能够编译着色器。
重新安装驱动程序没有帮助。
这是我的代码:
int main(int argc, char* argv[])
{
GLenum GlewInitResult, res;
InitWindow(argc, argv);
res = glGetError(); // res = 0
glewExperimental = GL_TRUE;
GlewInitResult = glewInit();
fprintf(stdout, "ERROR: %s\n", glewGetErrorString(GlewInitResult)); // "No error"
res = glGetError(); // res = 1280
glutMainLoop();
exit(EXIT_SUCCESS);
}
void InitWindow(int argc, char* argv[])
{
glutInit(&argc, argv);
glutInitContextVersion(4, 0);
glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
glutInitContextProfile(GLUT_CORE_PROFILE);
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,
GLUT_ACTION_GLUTMAINLOOP_RETURNS);
glutInitWindowPosition(0, 0);
glutInitWindowSize(CurrentWidth, CurrentHeight);
glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);
WindowHandle = glutCreateWindow(WINDOW_TITLE);
GLenum errorCheckValue = glGetError();
if (WindowHandle < 1)
{
fprintf(stderr, "ERROR: Could not create new rendering window.\n");
exit(EXIT_FAILURE);
}
glutReshapeFunc(ResizeFunction);
glutDisplayFunc(RenderFunction);
glutIdleFunc(IdleFunction);
glutTimerFunc(0, TimerFunction, 0);
glutCloseFunc(Cleanup);
glutKeyboardFunc(KeyboardFunction);
}
我做错了什么?
对我来说,最简单的解决方案是使用libepoxy。它不需要任何初始化。只需更换您的
#include <GL/glew.h>
具有
#include <epoxy/gl.h>
#include <epoxy/glx.h>
并删除所有glew代码。如果您使用gcc,您还必须将“-lGLEW”替换为“-lepoxy”。就是这样。例如,我有这样的东西:
g++ main.cpp -lepoxy -lSDL2 -lSDL2_image -lSDL2_mixer -lglut -lGLU -o main
在别人面前保持领先似乎很重要。
你看到这个维基页面上的评论了吗?
http://www.opengl.org/wiki/OpenGL_Loading_Library
它提到了为什么会出现这种情况,并说“在某些情况下,根据您的glew版本指定glew实验后,您可能仍然会GL_INVALID_ENUM”。
听起来,只要你没有看到任何其他问题,就可以安全地忽略。
我正在Linux上运行一些OpenGL程序。无法理解初始化glew时收到错误的原因。(错误1.5.2) 由以下人员管理:
我在网上搜索了很长时间。但没用。请帮助或尝试给出一些想法如何实现这一点。 提前谢了。 我有以下代码: 使用winhttp API访问服务,获取springboot错误信息 我试了很多办法,还是没用。 例如,将springboot端口和winhttp API请求端口修改为8089。
问题内容: 我遇到一个问题: org.hibernate.MappingException:JDBC类型的No Dialect映射:1111 尝试使用JPA创建本机查询时调用postgres函数。 我在启动单例中创建了一个EJB计时器,以每6小时运行一次Postgres函数。该函数返回void并检查过期的记录,将其删除并更新某些状态。它不接受任何参数,并且返回void。 如果我使用PgAdmin查
如果我在Wildfly中使用默认的安全域设置,我可以成功调用远程EJB。我访问此安全域根本没有检查任何用户凭据。在实现或使用检查数据库中用户名和密码的安全域后,我遇到了下面的异常。 我不知道我错过了什么。我希望这里有人能给我指出一个正确的方向。 例外情况: jboss-ejb3。xml: 独立。xml TestRemote。Java语言 谢谢,贝尔
我在Jaspersoft Studio 6.4.0中编译时遇到异常。我该如何解决这个问题? 我创建了一个包含子报表的报表,我想从中返回值。为此,我有: 在子报告中创建了一个变量,名为“log总”,设置为另一个变量的值,这是报告中计算的求和。没有重置类型,没有计算功能。 在主报表中创建了一个名称和类型相同的变量。没有重置类型,没有计算函数。 在主报表中,在计算类型为“System”的两个变量之间创建