この関数を使用すると奇妙な結果が得られるので、glGetString(GL_VERSION)が返すものを理解しようとしています。これは、私のGPUでサポートされている最大OpenGLバージョンまたは作成された現在のコンテキストのoepnglバージョンを返しますか? Which version does glGetString(GL_VERSION) get?によると、これは作成された現在のコンテキストのOpenGLバージョンを返しますが、私はそうではないと思います。 OpenGLコンテキスト3.1(順方向互換)、OpenGLコンテキスト2.0、およびOpenGLコンテキスト1.1を強制的に作成したい。以下は私の所見ですglGetString(GL_VERSION)が要求されたバージョンと一致しません
ケース1:wglCreateContextAttribsARBを使ってコンテキストを作成する。
int attribs[] =
{
WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
WGL_CONTEXT_MINOR_VERSION_ARB, 3,
WGL_CONTEXT_PROFILE_MASK_ARB, WGL_CONTEXT_CORE_PROFILE_BIT_ARB,
0
};
//glGetString(GL_VERSION) returns "4.3.0 - Build 10.18.14.4264"
サブケース2:
int attribs[] =
{
WGL_CONTEXT_MAJOR_VERSION_ARB, 3,
WGL_CONTEXT_MINOR_VERSION_ARB, 1,
WGL_CONTEXT_FLAGS_ARB, WGL_CONTEXT_FORWARD_COMPATIBLE_BIT_ARB,
0
};
//glGetString(GL_VERSION) returns "4.3.0 - Build 10.18.14.4264"
サブケース3:
int attribs[] =
{
WGL_CONTEXT_MAJOR_VERSION_ARB, 2,
WGL_CONTEXT_MINOR_VERSION_ARB, 0,
0
};
//glGetString(GL_VERSION) returns "4.3.0 - Build 10.18.14.4264"
サブケース4:
int attribs[] =
{
WGL_CONTEXT_MAJOR_VERSION_ARB, 1,
WGL_CONTEXT_MINOR_VERSION_ARB, 1,
0
};
//glGetString(GL_VERSION) returns "4.3.0 - Build 10.18.14.4264"
私はそれが最高のOpenGLコンテキストのバージョン サブケース1を返していると思います
ケース2:使用
glutInitContextVersion (3, 1);
glutInitContextFlags (GLUT_FORWARD_COMPATIBLE);
//glGetString(GL_VERSION) returns "3.1.0 - Build 10.18.14.4264"
サブケース2:
glutInitContextVersion (2, 0);
//glGetString(GL_VERSION) returns "4.3.0 - Build 10.18.14.4264"
サブケース3:
glutInitContextVersion (1, 1);
//glGetString(GL_VERSION) returns "4.3.0 - Build 10.18.14.4264"
誰かがこの動作を説明でき
にサブケース1をOpenGLのコンテキストを作成するための供給過剰。コンテキストを作成する場所に完全なコードを投稿できます。 誰かが私に案内してくれますか?glglとwglCreateContextAttribsARBの両方を使ってOpenGL 3.1(フォワード互換コンテキスト)、OpenGL 2.0コンテキスト、およびOpenGL 1.1コンテキストを作成するにはどうしたらいいですか?
。0)あなたのビデオカードの最大OpenGLバージョンを返します。しかし、最新のOpenGLでは、プロファイルを設定できます。つまり、最新の機能のみを使用することも、選択したOpenGLバージョンの機能だけを使用することもできます。この場合、選択したバージョンが返されます。 – Unick
しかし、私はwglCreateContextAttribsARB属性を3.1前方互換性のあるコンテキストで使用すると、 "4.3.0 - Build 10.18.14.4264"を出力します。あなたが言ったことは、opengl 2.0とopengl 1.1にとって理にかなっています。私はまた、OpenGL 3.3のコアコンテキストを作成しようとしましたが、OpenGLバージョン4.3を示しています。私は私の質問を更新しました。どうぞご覧ください –
ケース1ではwglCreateContextAttribsが間違っていると思います。私は glutが正しく3.1を作成するのを見ているので。コードを追加してください。 – Unick