1

私が使用しているOpenGLのバージョンのタイプを調べようとしている間、私はここの提案に従いました:リンク

次のコードがあります。

int major, minor, rev;
glfwGetGLVersion(&major, &minor, &rev);
fprintf(stderr, "OpenGL version recieved: %d.%d.%d", major, minor, rev);

そして、次の出力が得られます。

OpenGL version recieved: 2130567168.6.0

これはある種の初期化の問題であると考えたので、次のように調整しました。

int major=0, minor=0, rev=0;
glfwGetGLVersion(&major, &minor, &rev);
fprintf(stderr, "OpenGL version recieved: %d.%d.%d", major, minor, rev);

そして、次の出力を受け取りました:

OpenGL version recieved: 0.0.0

ここで何が間違っているのか、まったくわかりません。何か案は?

解決しました。GLFW によって OpenGL コンテキストが有効になった後に、バージョン クエリを配置する必要がありました。

それは理にかなっていますが、学習者の観点からは少しばかげています。上記のリンクの例では、最初にコンテキストを確立するためにそれを使用することが示唆されているためです。

4

1 に答える 1

0

使ってみてくださいglGetString(GL_VERSION):

const GLubyte *version = glGetString(GL_VERSION);
于 2012-10-18T17:15:28.457 に答える