2012-11-25 65 views
0

我目前正在開發一個項目(C++),包括製作一個包含通過編譯和運行時使用fstream收集的一些信息的日誌文件。在使用glGetString()命令,分別與GL_VENDOR/GL_VERSION/GL_RENDERER一起使用時,流停止打印,因此我的日誌文件在使用這些命令之一處停止。信息直接打印在整個運行的文件中。 OpenGL版本是做日期。C++ OpenGL fstream問題

編輯:
樣品:
buildLog.open( 「釋放/ build.log」);
buildLog < <「\ n供應商:」< < glGetString(GL_VENDOR);

+2

這不足以提供足夠的信息來幫助解決這個問題。您需要提供證明問題的代碼。 –

+0

當你調用'glGetString()'時你有當前的GL上下文嗎? – genpfault

+0

@genpfault唉,看來我一直在嘗試在GL上下文之前這樣做。現在所有的作品發佈後都很棒。謝謝! – user203432

回答

0

glGetString()要求(與大多數OpenGL函數一樣)當前GL上下文正常工作。

1

我還沒有真正瞭解OpenGL,所以這是有點推測,但我看到它返回GLubyte *。也許是鑄造問題。我也會嘗試檢查fail/bad/eof以查看它是否顯示任何內容。

+0

我建議,例如glGet_String_(GL_VENDOR)將分別返回一個字符串值。 – user203432

+0

我不太確定你的意思,但字符串應該工作,我會想。使用流(如ostream)也可以設置bad/fail/eof標誌。根據我的經驗,一旦設置了一個,在你調用clear()之前,沒有讀/寫文件可以工作。 (在這種情況下, .clear())因此,它幫助後調用清除?此外,我會嘗試檢查標誌,這是所有想到的。如果沒有人回答這個問題,我不確定你的評論意味着什麼。我認爲這不是問題。 – 2012-11-25 23:03:18

+0

原來這是在GL上下文本身之前調用它的意圖。現在全部整理出來。謝謝! – user203432