2011-09-21 22 views
1

我有一個程序可以執行一些使用可選OpenGL呈現的GPU計算。 使用動態如下:使用OpenGL無法呈現 - >上下文

  1. 初始化函數(初始GLEW是最相關的)。
  2. 從文件加載網格到GPU(使用glGenBuffers與VBO相關的函數)。
  3. 並行處理此網格(GPU計算API)。
  4. 將網格保存到文件中。

我的問題是,當網格加載我使用opengl調用和wihout上下文創建我只是 得到分段錯誤。

編輯:問題的演變:

  1. 我失蹤GL/glx.h我認爲GL/glxew.h包括它,這要歸功於得到固定的答案。
  2. 我失蹤了glXMakeCurrent;因此它沒有上下文。
  3. 修復後,它可以工作:)。

也感謝您的工具建議,我很樂意使用它們,這只是我需要這個特殊情況下的低級代碼。

+1

注意:這不是論壇;在接受解決方案後,我們不會放置「已解決」。我們可以看到解決方案只是從解決方案旁邊的綠色複選框被接受;) –

回答

2

我試圖使上下文與此代碼(我使用GLEW,所以我改變頭GL/glxew.h但是這個代碼的其餘部分保持不變)

Don'd做到這一點。 glxew用於加載glx函數。你可能不需要它。

如果要使用GLEW,請將替換爲GL/glew.h請保留GL/glx.h原樣。

X11和GLX相當複雜,請考慮使用glfwsdl來代替。

+0

感謝澄清,即使當我知道glew是一個gl的擴展wrangler,我假定glxew沒有什麼glx做和更多。 – labotsirc

+0

我改變了GL/glx.h頭文件,現在確實創建了上下文,但是在使用gl緩衝區函數時仍然出現錯誤。 – labotsirc

+0

@Cristobal:確保'glewInit'返回'GLEW_OK',並且你的OpenGL驅動實際上支持VBO。 –

1

只是瘋狂地猜測在這裏,但它可能是GLEW重新定義了一些自定義的glXChooseFBConfig? glXChooseFBConfig調用中的某些內容會將無效指針解引用。因此,glXChooseFBConfig本身無效,或者fbcount非常小,或者visual_attribs未正確終止。

+0

我認爲這是問題之一,我現在距離更近一步。更新了問題 – labotsirc

1

GLEW與上下文創建無關。它是一個OpenGL加載庫;它加載OpenGL函數。它需要你有一個OpenGL上下文才能運行。

由於您並未真正使用此上下文來繪製內容,因此我建議使用現成的工具來創建上下文。 GLFW或FreeGLUT將是最輕量級的選擇。只要使用它們來創建上下文,做你需要做的事情,然後銷燬它們創建的窗口。

+0

感謝澄清太多,我得到了更新的問題(也爲什麼我要避免高水平的工具) – labotsirc