2012-01-26 42 views
6

この1つはドゥーズです。
私はかなり大きなOpenGLソリューションを持っています.Windows 7にGLSL 1.5のバージョン3.2コアで書かれています。私はGLEWとGLMをヘルパーライブラリとして使用しています。私は3つのglfwOpenWindowHint機能を省略した場合、アプリケーションはglDrawArrays(GL_TRIANGLES、0、m_numIndices)への呼び出し時に私のビデオドライバがクラッシュGLFWを展開できません。3.2

// Initialize main window 
glewExperimental = GL_TRUE; 
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); // Use OpenGL Core v3.2 
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2); 
glfwOpenWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); 
if(!glfwOpenWindow(Game::WINDOW_X, Game::WINDOW_Y, 0, 0, 0, 0, 32, 0, GLFW_WINDOW)) 
{ ... 

;:私は、ウィンドウを作成するときに、私は次の行を使用しています

しかし、ここはキッカーです。グループ内の他の人がソリューションを更新して実行しようとすると、ジオメトリのない空白のウィンドウが表示されます。 3行をコメントアウトすると、プログラムは正常に実行されます。 3.2coreのヒントを使って作業するかどうかはかなり分かれています。私はNVIDIA、AMD、デスクトップ、またはラップトップの違いを判断できませんでした。

glewExperimental = GL_TRUEを追加することをおすすめします。 Glewはコアに問題があると言われています。違いはありませんでした。ソリューションはコードを投稿するには大きすぎますが、必要に応じてシェーダやレンダリングコードなどを配置することができます。

ありがとうございます!これは数日前から私たちを殺しています。

+0

最終的にはうまくいったのですか? – mlvljr

+1

Nope。 GLFWははるかに簡単なウィンドウソリューションですが、信頼性が全くありません。私のコンピュータ上での一斉射撃を無効にすることで、ほとんどの時間を走らせることができます。私たちの研究室ではまだnVidiaマシンで動作しません。私はIRCのGLFWの人に連絡し、Windowsデベロッパは1人しかいません。彼の答えは「私は知りません」でした。私はSDLに移行しようとしましたが、私たちのマシンの3.Xのコンテキストはまったく作成されませんでした。まだGLFWを使用して、ちょうど不安定です。 – AGuyInAPlace

+0

信頼できない動作をする例にリンクできますか?それはちょうど私がAMD Llano 3650に昨日(ナイトクラッカーの答えのヒントに続いて)GLFW + GL3Wを設定したことです。初歩的な例は100%OKですが、起こりうる障害点を知りたいと思います。 – mlvljr

答えて

10

は前方互換性GLFWウィンドウを求めてみてください。

GLFW_OPENGL_FORWARD_COMPAT - OpenGLは(すなわち、従来の機能を許可しない)上位互換性がありcontextshouldかどうかを指定します。これは、OpenGLバージョン3.0以上を要求する場合にのみ使用してください。

とプロファイルのヒントを設定ないを試してみて、システムが選択してみましょう:

// Use OpenGL Core v3.2 
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MAJOR, 3); 
glfwOpenWindowHint(GLFW_OPENGL_VERSION_MINOR, 2); 
glfwOpenWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); 

また、あなたが実際にあなたがしたいバージョンを取得していることを確認します

int major, minor, rev; 

glfwGetGLVersion(&major, &minor, &rev); 

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

Macでも動作するかどうかはわかりませんが、とにかくこれをお読みください:

A.4 OpenGLは3.0+のOpenGL 3.0用とMac OS X 10.7、 で導入された上記のMac OS X

サポートにも、その後、前方互換性のOpenGL 3.2コアプロファイルコンテキストは がサポートされており、そこにされていますデバッグコンテキストを要求するメカニズムはありません。 Mac OS Xの以前のバージョンは、ほとんどのOpenGLバージョン2.1をサポートしています。このため

、 3.2より上のバージョンを指定した場合はMac OS X 10.7上で、GLFW_OPENGL_VERSION_MAJORと GLFW_OPENGL_VERSION_MINORヒントは失敗し、GLFW_OPENGL_DEBUG_CONTEXTとGLFW_FORWARD_COMPATヒントは無視され、 ゼロまたはGLFW_OPENGL_CORE_PROFILE以外のものにGLFW_OPENGL_PROFILEヒントを設定していますglfwOpenWindowが失敗します。 2以上のバージョン与えられた場合

また、マックOS X 10.6および以下に、GLFW_OPENGL_VERSION_MAJORと GLFW_OPENGL_VERSION_MINORヒントは失敗します。1の場合、GLFW_OPENGL_DEBUG_CONTEXTヒントは無効になり、GLFW_OPENGL_PROFILEヒントまたはGLFW_FORWARD_COMPATヒントを0以外の値 に設定すると、glfwOpenWindowが失敗します。

+0

役立つフィードバック!ありがとうございました!私たちはMac用にも構築していますが、その正確な理由でOSX 10.7を撮影しています。私はあなたのヒントを試して、次を得ました:私のシステムでは、バージョン3.2.11318の結果とうまく動作します。他のコンピュータでは、バージョン3.2.0の結果が表示され、ジオメトリは描画されません。行を省略すると4.2.11318になり、通常のグラフィックスがクラッシュします。それらを省略すると4.2.0で完全なジオメトリが実行され、すべて正常に動作します。まだGoogleには当たっていませんが、リビジョン11318の重要性は何ですか?それはこの奇妙な行動の原因ですか? – AGuyInAPlace

+0

@AGuyInAPlace:私はOpenGLの専門家ではありませんので、私は知らないでしょう。いくつかの一般的なヒントは、各クライアントのOpenGLドライバが最新であることを確認することです。ここでOpenGLやGLFWの誰かを責めるべきか分からないだろうが、あなたはfreenodeの#glfwのGLFW開発者と連絡を取り合うことができる。 – orlp

+0

私たちはすべて最新バージョンを実行していますが、それはすぐれた次のステップのようです。ポインタありがとう! – AGuyInAPlace

0

同じ問題が発生しました。私はVBOの前にVAOを作成しなければならず、今はOS Xで動作します。

GLuint vertex_array; 
glGenVertexArrays(1, &vertex_array); 
glBindVertexArray(vertex_array); 
関連する問題