gpt4 book ai didi

c++ - glGetError 无限返回 1282

转载 作者:搜寻专家 更新时间:2023-10-31 01:39:17 24 4
gpt4 key购买 nike

这是我记录错误的函数:

void check_error(const char* st)
{
GLenum err(glGetError());

while (err != GL_NO_ERROR)
{
cerr << "OpenGL error: " << err << " "<<st<<endl;
err = glGetError();
}
cerr << "?\n";
}

这样称呼:

int _tmain(int argc, char* argv[])
{
check_error("start");
...
}

它不会在其他任何地方调用。

它产生:OpenGL 错误 1282 开始无限循环。

这是我的包括:

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <stdio.h>
#include <stdlib.h>
#include <fstream>
#include <gl/glew.h>
#include <gl/glut.h>
#include <GL/glfw3.h>
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>

Visual Studio 2013

最佳答案

这不是一个直接的答案;但是代替您的评论,我的 GL 库中有一个函数:

GLenum
G0::glFlushError () // noexcept
{
GLenum ret = glGetError();

if (ret != GL_NO_ERROR)
{
GLuint finite = 255; // (watchdog count)
GLenum gl_err = ret;

while (gl_err != GL_NO_ERROR && finite--)
gl_err = glGetError();

if (gl_err != GL_NO_ERROR)
G0::terminate("glGetError: reset failed\n");
}

return ret;
}

G0 是我的库的 namespace 。当您想测试最近的 GL 错误并清除它时,需要在 loop 中调用 glGetError .这是一个“昂贵”的调用,因为它会使管道停滞,因此只能在“设置”代码中或在调试期间使用。

关于c++ - glGetError 无限返回 1282,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31462770/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com