OpenGL4

opengl4.png

OpenGL2と比較して、新しい機能と思われるOpenGL4の機能や概念についてこのページに書きます

OpenGL4.3以降の新機能

より親切なエラーメッセージ

OpenGL4.3以降の新機能 詳しいデバッグメッセージを得る

static void __stdcall  debugCallbackFunc(GLenum source, GLenum type, GLuint eid, GLenum severity, GLsizei length, const GLchar* message, const void* user_param)
{
    cout << "OpenGL error" << message << endl;
    if (severity == GL_DEBUG_SEVERITY_HIGH) {
        assert(!"!GL_DEBUG_SEVERITY_HIGH OpenGLError\n");
    }
}
int main(int argc, char **argv)
{
glfwWindowHint(GLFW_OPENGL_DEBUG_CONTEXT, true);
GLFWwindow* window = glfwCreateWindow(300, 300, "Hello OpenGL4", nullptr, nullptr);
glfwMakeContextCurrent(window);
glewInit();
glDebugMessageCallback(debugCallbackFunc,NULL);
glEnable(GL_DEBUG_OUTPUT);//Debug Context はデフォルトで glEnable( GL_DEBUG_OUTPUT ) になるので無くても構いません

たとえばこんなメッセージ
GL_INVALID_OPERATION error generated. No active program.

glUseProgram()で何も指定されてないのに、ユニフォーム変数を渡そうとした時に注意してくれた。

サポートサイト Wikidot.com