2011-05-08 61 views
4

我正在使用FPSAnimator和jogl在GLCanvas上繪製旋轉四邊形。通常圖形不閃爍,旋轉平滑,但當我調整窗口大小或將其從屏幕的不可見區域移動到可見區域時,會添加額外的重繪請求。我怎樣才能過濾出這些額外的請求,因爲所有繪圖都是由FPSAnimator完成的在整形期間閃爍

回答

3

您可以嘗試在命令行上將參數-Dsun.awt.noerasebackground=true傳遞給JVM。這應該減少/消除閃爍。

問題是在JoglUserGuide

具體描述:

,偶爾出現在Windows的另一個問題時GLCanvas中的現場調整大小閃爍。這是由AWT重新繪製Canvas背景引起的,不能在每個Canvas基礎上重寫,例如將Canvas劃分爲GLCanvas時。通過指定系統屬性-Dsun.awt.noerasebackground = true,可以禁用在Windows上重新繪製Canvases的背景。是否指定此標誌取決於應用程序,不應該普遍地完成,而應該根據具體情況進行。在JOGL論壇的主題「TIP:JOGL + Swing flicker」中提供了更多細節。

+1

刪除了不必要的背景清除,但刪除額外的繪畫請求我不得不將下面的代碼放在paint方法中:if(first){first = false; super.paint(g)}否則返回;現在super.paint只被調用一次,而現在所有的繪畫都是由FPSAnimator完成的 – 2011-05-09 09:08:45