我正試圖實現一個儘可能少佔用系統資源的跨平臺UI庫。我正在考慮使用我自己的軟件渲染器或opengl。經常閃爍的插入符號如何實現?
對於靜止控制一切都很好,我只能在需要時重新繪製。但是,在實現動畫時,特別是在崇高文本中使用'階段'插入符號的動畫閃爍插頁時,我沒有看到簡單的方法來平衡資源使用情況和性能。
對於一個閃爍的插入符號,它需要非常頻繁地重新繪製插入符號(至少每秒15-20次,我猜)。一方面,軟件渲染器支持部分重繪,但實際速度太慢(對於大型重繪區域爲3-4fps,例如1000x800,這使得無法實現動畫)。另一方面,據我所知,opengl並不支持部分重繪,這意味着整個屏幕需要不斷地以15-20fps的速度渲染。
所以我的問題是:
- 如何插入符號通常在不同的UI系統中實現?
- 有什麼辦法讓opengl渲染到只有一部分屏幕?
- 我知道glViewport使渲染成爲屏幕的一部分,但由於雙緩衝或其他東西,屏幕的其餘部分不會保持原樣。這樣我仍然需要再次渲染整個屏幕。
如果你每秒繪製15-20次,人眼無法感知到變化。這就是爲什麼15-20幀/秒是所需幀速率的基礎。閃爍的插入符號應該以0.3-0.6 fps提取。 – Ripi2
那麼,如果你看到崇高文本的插入符號,你可以注意到它實際上是平滑的動畫,所以我認爲這需要更高的fps,而不是動畫。 –