0
嗨,那裏我正在製作畫筆的一種東西,其中繪製了一些基本的形狀glcontrol
現在我想添加撤消選項,我真的不知道該如何工作,所以請給我任何提示在OpenTk項目中放置撤消選項
嗨,那裏我正在製作畫筆的一種東西,其中繪製了一些基本的形狀glcontrol
現在我想添加撤消選項,我真的不知道該如何工作,所以請給我任何提示在OpenTk項目中放置撤消選項
首先要理解的是:OpenGL只是一個繪圖API。您發送繪圖命令,它只會更改目標幀緩衝區中某些像素的顏色。 OpenGL中沒有高級功能將幾何抽象爲可操縱的對象。這是場景圖的功能。
A 撤銷/重做歷史要求將所有繪圖操作存儲在單獨的結構中,例如繪圖操作的鏈接列表。
每個新操作都附加到列表中。撤消將通過回退步驟來實施。在一些撤銷步驟之後的任何新操作都會丟棄尾部並建立一個新的操作。
在OpenGL方面,您可以在撤銷/重做之後重新繪製整個列表,或者爲每一步存儲幀緩衝區的狀態;然而這會佔用大量內存,因此僅僅存儲差異,並且使用一些簡單的壓縮方案(遊程長度和事先分割成瓦片)來節省內存。
好主意謝謝 – 2011-04-27 03:52:45