如何实现撤销和恢复功能?

尊敬的各位,我想实现一个撤销和恢复的功能。
是关于纹理的,没错,就是OpenGLES中的那个纹理,是要作为渲染出来的图像使用的。
但是每个状态渲染出来的效果是不一样的。
现在要恢复到不同的状态,就不需要保存所有要被用到的纹理才行。
然后这极大地浪费了内存空间,很容易因为内存告急而崩溃。
因为图像处理可以采用记录数据的方式,但是有些只能记录纹理。
请问,各位有没有什么好的妙招?

用时间换空间,记录操作而不是渲染以后的结果,撤销的话,操作退回去,重新渲染。