2

私はここで基本的な指示に従いました:

http://www.opengl.org/wiki/Tutorial:_OpenGL_3.1_The_First_Triangle_%28C%2B%2B/Win%29#Rendering_Context_Creation

私が微調整した唯一のことは、コンテキストを 3.2 または 3.3 に作成することです。

const int attributes[] =
{
    WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
    WGL_CONTEXT_MINOR_VERSION_ARB, 2,
    WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB,
    0
};

そして、コンテキストの作成後 (成功の場合は TRUE を返します)、次の方法でバージョンを確認します。

// Double check the version (old way)
const GLubyte *const pszGLVersion = glGetString(GL_VERSION);

// Double check the version (new way)
GLint glVersion[2];
glGetIntegerv(GL_MAJOR_VERSION, &glVersion[0]);
glGetIntegerv(GL_MINOR_VERSION, &glVersion[1]);

ただし、pszGLVersion は NULL であり、glVersion[0] と glVersion[1] はどちらも初期化されていません。

OpenGL 3.2 & 3.3 コンテキストの作成は成功するのに、バージョン情報の取得に失敗するのはなぜですか?

4

2 に答える 2

2

コンテキストを最新にしましたか? glGetStringコンテキスト パラメーターを取らず、現在のコンテキストで動作することに注意してください。を呼び出すまでは使用できませんwglMakeCurrent。デフォルトでは、新しく作成されたコンテキストは現在の状態になりません。

于 2011-03-14T21:25:09.357 に答える
0

バージョン情報を取得できないのは、グラフィック カードが 3.2 または 3.3 をサポートしていないためだと思います。

于 2013-01-26T13:15:23.533 に答える