1

私の新しいプロジェクトでは、OpenGL バージョン 3/4 を使用したいのですが、どのライブラリまたはヘッダー ファイルを使用する必要があるかについての参照が見つかりません。

公式のOpenGL ホームページを見ましたが、ライブラリが見つかりません。OpenGL の新しいバージョンはどこからダウンロードする必要がありますか?

4

2 に答える 2

0

OpenGL は、GPU ベンダーによって実装されたライブラリです。適切な GPU を使用している場合は、おそらく OpenGL 3 または 4 を使用しています。Windows では、デフォルトで OpenGL 1.1 しかありませんが、ベンダーは拡張機能を使用して「完全な」OpenGL を実装しています。一般に、これらの拡張機能を取得するには、いくつかのヘルパー ライブラリを使用する必要があります (または独自のコードを記述します:))。

「最新の」OpenGL を使用する場合。少なくとも OpenGL 3.3 のコア機能を使用してみてください。

優れた情報源: http://www.opengl.org/wiki/Main_Page

書籍: http://www.starstonesoftware.com/OpenGL/

于 2013-01-10T18:21:27.060 に答える
0

Pubby がコメントで述べたように、あなたはまだ OpenGL ライブラリを使用しています。ただし、おそらくhttp://www.opengl.org/registry/にあるライブラリ ヘッダーを使用する必要があり、別の方法でコンテキストを作成する必要があります。たとえば、GLFWでは、次のようにします。

GLenum init_window(int w, int h)
{
        int major, minor, rev;
        GLenum glewResult;

        if (glfwInit() != GL_TRUE) {
                fprintf(stderr, "error: could not init GLFW\n");
                return GL_FALSE;
        }
        glfwGetVersion(&major, &minor, &rev);
        printf("GLFW %d.%d.%d\n", major, minor, rev);

        glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 4);
        glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 3);
        glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
        glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
        if (!glfwOpenWindow(w, h, 0,0,0,0, 24,0, GLFW_WINDOW)) {
                fprintf(stderr, "Could not open window\n");
                glfwTerminate();
                return GL_FALSE;
        }

        glfwGetGLVersion(&major, &minor, &rev);
        fprintf(stderr, "Context: OpenGL %d.%d.%d\n", major, minor, rev);

        glewExperimental = GL_TRUE;
        glewResult = glewInit();
        if (glewResult != GLEW_OK) {
                fprintf(stderr, "error: could not init GLEW\n");
                fprintf(stderr, "error: %s\n", glewGetErrorString(glewResult));
                glfwTerminate();
                return GL_FALSE;
        }
        return GL_TRUE;
}

それが役立つことを願っています!

于 2013-01-10T01:16:03.483 に答える