2012-02-13 20 views

回答

6

OpenGL是一個狀態機。一旦你設置了顏色,你不能收回。您可以使用的一種機制是glPushAttribglPopAttribglPushAttrib(GL_CURRENT_BIT)保存顏色和其他一些東西,glPopAttrib()恢復它。

您可能需要使用其他機制來執行您想要的操作。一直保存和恢復狀態是一個昂貴的解決方案。

+0

你能否提出一些替代方案?看看互聯網上可用的一些例子,對我來說會很好。你能指導我到任何鏈接。提前致謝。 – Rikki 2012-02-13 12:41:16

+0

沒有必要恢復顏色。當你想改變它時,你只需調用glColor *。如果你需要保留它,你可以通過在客戶端有一個浮點數組(例如你的RAM內存)來完成。 GLfloat master_color [4]; master_color [0] = x; master_color [1] = y; master_color [2] = z; master_color [3] = w; glColor *(...); /* Draw */ glColor4fv(master_color);/*恢復* / – 2012-02-13 12:50:04

0

如果通過「關閉」您的意思是「回到白色」,您可以將狀態設置回glColor3f(1,1,1)。在opengl中有很多調用可以做到這一點,所以根據需要進行修改。