我使用Apple的示例应用程序GLPaint作为OpenGL ES绘画应用程序的基础,但是我不知道如何在其中实现撤消功能。

我不想拍摄每个笔画的图像并将其存储。有什么方法可以使用不同的帧缓冲区对象来实现撤消?您是否还有其他建议可以更好地做到这一点?

最佳答案

使用顶点缓冲区对象(VBO)呈现您的内容。在每个新笔划上,将最后一个VBO复制到一些最近最少使用(LRU)列表。如果您的LRU已满,请删除最近最少使用的VBO。要恢复(撤消)最后的笔划,只需使用最近使用的LRU的VBO并进行渲染即可。

VBO:
http://developer.apple.com/iphone/library/documentation/3DDrawing/Conceptual/OpenGLES_ProgrammingGuide/TechniquesforWorkingwithVertexData/TechniquesforWorkingwithVertexData.html

LRU:
http://en.wikipedia.org/wiki/Cache_algorithms#Least_Recently_Used

关于iphone - 如何在iPhone的OpenGL ES绘画应用程序中实现撤消?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3474252/

10-12 01:24