2012-01-10 22 views
2

我想知道是否有辦法繪製gl::texture文件,而不必在每個循環中使用gl::draw命令。有沒有辦法讓我畫一次,然後不用擔心。Cinder中的繪圖文本

draw()的每個循環中繪製圖像會減慢我的應用程序,所以我只想在屏幕上繪製一次,然後在需要時更新它們。

回答

2

從煤渣的教程引用:

「當你創建一個新的煤渣的項目,你會發現有申報您的一些功能每個煤渣項目是由三個主要功能,您在初始化變量。在你的程序開始時調用setup()方法,你可以在update()方法中對這些變量進行修改,最後在程序窗口中繪製()內容,更新和繪製是任何Cinder項目的心跳。UpdateSetup,然後更新並繪製,更新並繪製,更新和繪製,直到您退出應用程序爲止。「

雖然有一種方法可以在OpenGL中永久繪製對象,並且在Cinder中很常見,但我不會推薦它。在繪圖函數中禁用gl :: clear()。你不能有選擇地刪除任何不需要的對象。你將不得不從頭開始渲染你的場景。更多地考慮OpenGL的幀緩衝區。每次調用gl :: clear()時,都會刷上畫筆,並將畫布塗成黑色或者使用gl :: clear()指定的顏色。在那之後,幀緩衝區是「tabula rasa」,你必須畫出你想要從頭開始顯示的所有東西。如果您在繪製新對象時沒有聲明任何gl :: clear()命令,就像您的畫布保持不動,並將您的對象繪製在已繪製的頂部。